你正在尋找一個數學上的解釋,讓我們先來對感知器是如何工作的樣子:
輸入被加權和總結出來的。如果它超過閾值θ,則返回1,否則返回0。 在XOR情況X1和X2可以是1或0,並且要搜索的權重W1和W2,以及一個閾值THETA,使得在X1 XOR X2的情況下:
W1 * X1 + W2 * X2> = THETA
OR
W1 * X1 + W2 * X2 - THETA> = 0
首先,可以看到該函數是線性的。這意味着它定義了一條線。但是當你看樣本空間時,沒有一條線可以將正面和負面的情況分開。
其次,你可以試試看。採取一個任意的θ,讓我們說0.5。
情況1:X1 = 1,X2 = 0 =>W1需要是> 0.5
情況2:X1 = 0,X2 = 1 =>W2需要是> 0.5
情況3:X1 = 1,X2 = 1 =>W1 + W2需要是< 0.5 =>不可能由於前2箱子
一般而言,具有感知只能定義是線性可分的,即線,平面,超平面等等的功能
但對於XOR情況下,你需要兩行:
對於每一行,你需要一個隱藏的節點,然後結合東西放在一起,同時採取否定考慮在內。
這裏你可以看到一個解決方案:
How to solve XOR problem with MLP neural network?
因此,關鍵是不要讓非線性的,而是改寫XOR成類似:
X1 XOR X2 == NOT(x1 AND x2)AND(x1或x2)
是的,我知道這一點。但是,如何通過添加隱藏層和壓縮函數來獲得解決異或問題的能力?我想到的方式是它能夠插入多項式,因爲它可以創建許多在某些點上互連的線路,因爲MLP的功能仍然是線性的。根本沒有指數,除了邏輯函數...這只是將值壓縮到子空間。 –
這對我瞭解Perceptron以及處理異或問題的問題/可能性有很大的幫助,謝謝!什麼可以幫助更多,是包括一個圖形,如單層感知器的圖形,但是可以解決異或問題的多層感知器。 –