[英]Neural Network: Solving XOR
1 and 2 . 嘗試繪制兩個變量 1和 2的XOR函數的樣本空間。 =1) and negative examples( =0) is clearly not a straight line but a non-linear decision boundary as follows: 分離正( = 1)和負例( = 0)的決策邊界顯然不是直線,而是如下的非線性決策邊界:
因為,非線性決策邊界的建模不能通過僅由輸入和輸出層組成的簡單神經網絡來完成。 因此,需要隱藏層來模擬所需的非線性決策邊界。 另一方面,像AND,OR,NOT這樣的函數具有線性決策邊界,因此可以通過簡單的輸入輸出神經網絡來建模。
您正在尋找數學解釋,所以我們先來看看感知器的工作原理:
輸入被加權並總結。 如果它超過閾值θ,則返回1,否則為0.在XOR情況下, x1和x2可以是1或0,並且您正在搜索權重w1和w2以及閾值theta,以便在x1 XOR x2的情況下:
w1 * x1 + w2 * x2 > = theta
要么
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 =>不可能
通常,使用感知器,您只能定義線性可分離的函數,即線,平面,超平面等。
但對於XOR案例,您需要兩行:
對於每一行,您需要一個隱藏節點,然后將所有內容組合在一起,同時考慮到否定。
您可以在此處查看解決方案:
所以訣竅不是獲得非線性,而是將XOR重寫為:
x1 XOR x2 == NOT( x1和x2 )AND( x1或x2 )
感知器真正做的是將輸入空間(在XOR的情況下 - 實際平面)划分為由較低維度的仿射子空間分隔的兩個部分(在XOR的情況下 - 一條線)並且將不同的類分配給不同的部分。 沒有這樣的線以這樣的方式划分平面,即點(0,0),(1,1)與(1,0),(0,1)分開。
多層感知器還將輸入空間分為兩部分,但這種划分不僅限於仿射分離,因此可以將XOR類別分開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.