首先,我們來深入研究一下明斯基和帕普特強調的感知器模型的問題。單層感知器無法實現一個很簡單的運算,被稱為“異或”(XOR)。我們先假設一個有兩個輸入的單層感知器,如下所示:
圖22 單層感知器,無法計算異或
而異或函數是這樣的:如果輸入1激活,或者輸入2激活,則觸發感知器輸出。而輸入1和輸入2同時激活或者同時不激活,都不觸發輸出。要理解為什麽單層感知器無法計算異或函數,首先,我們假設它可以計算,那麽,對於輸入1的權重值w1,輸入2的權重值w2,以及感知器的觸發閾值T,它們必須滿足如下要求:
·如果兩個輸入均未被激活,則神經元接收到的輸入權重為0,此時神經元要保持不被觸發,因此觸發閾值T必須大於0。
·如果隻有輸入1被激活,則感知器被觸發,因此w1必須大於觸發閾值T。
·如果隻有輸入2被激活,則感知器被觸發,因此w2必須大於觸發閾值T。
·如果輸入1和輸入2都被激活,則感知器不會被觸發,因此w1 + w2的值必須小於觸發閾值T。
但很容易就能看出,滿足上述所有要求的w1、w2和T值不存在,因此,感知器無法計算異或函數。
現在讓我們看看兩層感知器結構如何計算異或函數,如圖23所示。我可以肯定地說,這個感知器網絡能夠正確計算異或函數。它由三個神經元組成:當輸入1或者輸入2被激活時,神經元1會被觸發;當輸入1和輸入2沒有同時被激活,神經元2才會被觸發;最後,如果神經元1和神經元2都被觸發,神經元3才會被觸發。總而言之,輸入1和輸入2有一個被激活時,神經元3被觸發;而輸入1和輸入2同時被激活或者同時未被激活,神經元3都不會被觸發。
圖23 兩層感知器結構可以計算異或函數
更詳細地說,就是考慮如下四種情況: