2012-03-07 48 views
0

我想了解的問題很容易,但我似乎無法在matlab中得到正確的結果。實際的問題是,我想使用簡單距離作爲函數來獲得2隱藏層輸入RBF的權向量,即沒有Baysian或高斯函數作爲我的φ。我將使用2箇中心的函數,比如0,0和1,1。所以這會給我一個矩陣φ:RBF和僞逆XOR

[0 sqrt(2); 1 1; 1 1; sqrt(2)0] * [w1; w2] = [0; 1; 1; 0]如我所定義的XOR函數。

當我在matlab * [0; 1; 1; 0]中應用Φ的僞逆,雖然我得到[0.33; 0.33],這是不正確的值,這將使我得到正確的輸出值[0; 1; 1; 0]。

即.33 * sqrt(2)!= 0。

有人可以向我解釋爲什麼會出現這種情況嗎?

回答

0

我會對此置若罔聞。矩陣,我會打電話AA = [0 sqrt(2) ; 1 1; 1 1; sqrt(2) 0]有全列的排名,但不是全行的排名,即rank(A) = 2。那麼你基本上解決了系統Ax = b,其中x是你的加權向量。你也可以在Matlab中做x = A\b,這應該是一個更準確的答案。我得到了和你一樣的答案。這是一個非常粗略的解釋,當你的系統無法解決某個解決方案向量時,這意味着不存在可以爲Ax = b解決的這種向量x。 Matlab所做的是儘量接近估計的答案。我猜你使用pinv,如果你看一下Matlab的幫助下,它說:

如果A比列多行滿秩,那麼超定最小二乘問題

minimize norm(A*x-b) 

確實不沒有一個獨特的解決方案。在無窮多的解決方案中有兩個是

x = pinv(A)*b 

y = A\b 

所以,這似乎是你的問題。如果可能的話,我會建議看看你的φ矩陣來創建一個更強大的系統。希望這是有用的。

+0

哇,這真的很有幫助。做得好。 – Martinos 2012-03-07 18:28:08