簡體   English   中英

神經網絡:求解XOR

[英]Neural Network: Solving XOR

有人可以給我一個數學正確的解釋,為什么多層感知器可以解決XOR問題?

我對感知器的解釋如下:

具有兩個輸入的感知器 在此輸入圖像描述 在此輸入圖像描述 具有以下線性函數,因此能夠解決線性可分離問題,例如AND和OR。

在此輸入圖像描述

在此輸入圖像描述 是基本步驟功能。

我想到的方式是我用這兩個部分代替 在此輸入圖像描述 用+號分隔為 在此輸入圖像描述 在此輸入圖像描述 我明白了 在此輸入圖像描述 這是一條線。 通過應用步進函數,我得到關於輸入的一個聚類。 我將其解釋為由該行分隔的空格之一。

因為MLP的功能仍然是線性的,我如何以數學方式解釋這一點,更重要的是:為什么它仍然是線性的時能夠解決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情況下, x1x2可以是1或0,並且您正在搜索權重w1w2以及閾值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案例,您需要兩行:

在此輸入圖像描述

對於每一行,您需要一個隱藏節點,然后將所有內容組合在一起,同時考慮到否定。

您可以在此處查看解決方案:

如何用MLP神經網絡解決XOR問題?

所以訣竅不是獲得非線性,而是將XOR重寫為:

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

感知器真正做的是將輸入空間(在XOR的情況下 - 實際平面)划分為由較低維度的仿射子空間分隔的兩個部分(在XOR的情況下 - 一條線)並且將不同的類分配給不同的部分。 沒有這樣的線以這樣的方式划分平面,即點(0,0),(1,1)與(1,0),(0,1)分開。

多層感知器還將輸入空間分為兩部分,但這種划分不僅限於仿射分離,因此可以將XOR類別分開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM