[英]RBF and pseudoinverse XOR
我試圖理解的問題很容易,但我似乎無法在Matlab中獲得正確的結果。 實際的問題是我想僅使用平距作為函數來獲取2個隱藏層輸入RBF的權重向量,即沒有貝葉斯或高斯函數作為我的φ。 我將使用2個中心的函數,假設0,0和1,1。 因此,這將給我一個矩陣φ:
[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。
有人可以向我解釋為什么會這樣嗎?
我會為此贓物。 矩陣,我稱A
, A = [0 sqrt(2) ; 1 1; 1 1; sqrt(2) 0]
A = [0 sqrt(2) ; 1 1; 1 1; sqrt(2) 0]
A = [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
因此,這似乎是您的問題。 如果可能,我建議您查看φ矩陣,以提供一個更強大的系統。 希望這是有用的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.