轉載自:【深度學習】神經網絡異或問題
在Rosenblatt單層感知機中已經對異或問題做了介紹,並論證說明了只適用於線性分類問題的Rosenblatt感知機無法對異或問題進行分類。然而非線性問題是普遍存在的,下面就使用帶隱藏節點的神經網絡來解決異或問題。
異或問題:
和
輸入模式(0,0)和(1,1)是單位正方形的兩個相對的角,但它們產生相同的結果是0。另一方面,輸入模式(0,1)和(1,0)是單位正方形另一對相對的角,但是它們屬於類1,即
和
很顯然,無法找出一條直線作爲決策邊界可以使(0,0)和(1,1)在一個區域,而(1,0)和(0,1)在另一個區域。然而,可以使用如下圖所示的一層有兩個隱藏神經元的隱藏層來解決異或問題。
這裏做如下假設:
1、每一個神經元都由一個McCulloch-Pitts模型(見第一講)表示,使用閾值函數作爲它的激活函數。
2、比特符號0和1,分別由0和+1表示。
隱藏層頂部的神經元標註爲“Neuron 1”,有
該隱藏神經元構造的決策邊界斜率等於-1,在下圖最上面的圖中給出器位置,隱藏層底部的神經元標註爲“Neuron 2”,有
隱藏元構造的決策邊界方向和位置由下圖中間的圖給出。
輸出層的神經元標註爲“Neuron 3”,有
輸出神經元的功能是對兩個隱藏神經元形成的決策邊界構造線性組合。這個計算結果由下圖中最下面的圖給出。底部隱藏神經元由一個興奮(正)鏈接到輸出神經元,而頂部隱藏神經元由一個更強的抑制(負)連接到輸出神經元。當兩個隱藏神經元都斷開時,這種情況當輸入信號(0,0)發生時,輸出神經元保持斷開。當兩個隱藏神經元都接通時,這種情況當輸入信號時(1,1)是發生,輸出神經元也保持斷開。當輸入模式是(0,1)或(1,0)時,輸出神經元是連通的,因爲正的權值連向了底部隱藏神經元。