6

有人請給我一個數學正確的解釋,爲什麼多層感知器可以解決異或問題?神經網絡:求解XOR

我的感知器的解釋如下:

具有兩個輸入和enter image description hereenter image description here感知器具有以下的線性函數,因此是能夠解決線性separateable問題,諸如AND和OR。

enter image description here

enter image description here是基本步驟的功能。

我認爲它的方式是,我內enter image description here兩份+號分隔作爲替代和enter image description hereenter image description here我得到enter image description here這是一條線。 通過應用階躍函數,我得到了關於輸入的一個集羣。我將其解釋爲由該行分隔的空格之一。

因爲MLP的功能仍然是線性的,我怎麼用數學的方式來解釋這個問題,更重要的是:爲什麼它能夠在線性時解決異或問題?是因爲它插入了一個多項式嗎?

回答

5

你正在尋找一個數學上的解釋,讓我們先來對感知器是如何工作的樣子:

Simple perceptron with two-dim input

輸入被加權和總結出來的。如果它超過閾值θ,則返回1,否則返回0。 在XOR情況X1X2可以是1或0,並且要搜索的權重W1W2,以及一個閾值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情況下,你需要兩行:

enter image description here

對於每一行,你需要一個隱藏的節點,然後結合東西放在一起,同時採取否定考慮在內。

這裏你可以看到一個解決方案:

How to solve XOR problem with MLP neural network?

因此,關鍵是不要讓非線性的,而是改寫XOR成類似:

X1 XOR X2 == NOT(x1 AND x2)AND(x1x2

+0

是的,我知道這一點。但是,如何通過添加隱藏層和壓縮函數來獲得解決異或問題的能力?我想到的方式是它能夠插入多項式,因爲它可以創建許多在某些點上互連的線路,因爲MLP的功能仍然是線性的。根本沒有指數,除了邏輯函數...這只是將值壓縮到子空間。 –

+0

這對我瞭解Perceptron以及處理異或問題的問題/可能性有很大的幫助,謝謝!什麼可以幫助更多,是包括一個圖形,如單層感知器的圖形,但是可以解決異或問題的多層感知器。 –

3

感知器真正在做的是將輸入空間(在XOR - 真實平面的情況下)劃分爲由較低維的仿射子空間(在異或 - 行的情況下)分隔的兩個部分,並將不同的類分配給不同的類部分。 (0,0),(1,1)與(1,0),(0,1)分開的方式沒有這樣劃分平面的線。

多層感知器也將輸入空間分成兩部分,但這種劃分不僅限於仿射分離,因此可以分離異或類。

5

嘗試繪製兩個變量 X和X 的XOR函數的樣本的空間。決策邊界,分離該正極(Ŷ = 1)和負的例子(Ŷ = 0)顯然不是直線而是非線性決策邊界如下:

enter image description here

由於,建模一個非線性決策邊界不能通過一個簡單的只包含輸入和輸出層的神經網絡來完成。因此,需要一個隱含層來模擬所需的非線性決策邊界。另一方面,像AND,OR這樣的函數不具有線性決策邊界,因此可以通過簡單的輸入輸出神經網絡進行建模。