天天看點

前饋神經網絡求解XOR問題1.1 神經網絡結構設計1.2 隐含層決策面的特點1.3 前饋神經網絡隐含層的作用1.4. 總結參考文獻

摘要

        前饋神經網絡是一種最簡單的神經網絡,各神經元分層排列。每個神經元隻與前一層的神經元相連。接收前一層的輸出,并輸出給下一層.各層之間沒有回報。是目前應用最廣泛、發展最迅速的人工神經網絡之一。研究從20世紀60年代開始,目前理論研究和實際應用達到了很高的水準[1]。本節通過設計包含輸入層、一個隐含層和輸出層的前饋神經網絡,實作XOR運算,并基于計算資料或實驗資料分析隐含層決策面的特點,進而總結前饋神經網絡隐含層的作用。

1.1 神經網絡結構設計

1.1.1 XOR問題描述

        異或是對兩個運算元的一種邏輯分析類型,當兩兩數值相同時為否,而數值不同時為真。異或的真值表見表1-1所示:

表1-1 異或的真值表

前饋神經網絡求解XOR問題1.1 神經網絡結構設計1.2 隐含層決策面的特點1.3 前饋神經網絡隐含層的作用1.4. 總結參考文獻

1.1.2 XOR運算的網絡結構設計

        為了采用前饋神經網絡解決XOR問題,首先我們通過引入其他邏輯運算與XOR問題進行對比分析,進而設計适合解決XOR運算的網絡結構模型。如圖1-1和圖1-2所示,圖中的直線是決策邊界。在邏輯運算與、或運算中我們總可以找到一條直線對它們進行準确的分類,它們屬于線性可分。然而在圖1-3所示的XOR問題中,我們無法找到一條直線将其進行準确的分類,XOR屬于一種線性不可分。由于單層神經網絡隻能解決線性問題,無法解決非線性問題,異或問題屬于非線性問題,是以感覺機無法解決異或問題[2]。要解決XOR運算問題,需要生成非線性的決策邊界。是以,我們使用多層感覺機進行求解,在單層前饋神經網絡的基礎上,加入一層隐含層,即二層的前饋神經網絡進行XOR的運算,這裡為什麼加入一層隐含層即可解決非線性問題,将在1.2節通過實驗較長的描述。網絡結構設計如圖1-4所示。從圖中可以看出我們設計了一個二層的前饋神經網絡對XOR運算進行求解。網絡結構由一個輸入層、一個隐含層和一個輸出層構成,其中輸入層有兩個神經元,隐含層有兩個神經元,輸出層有一個神經元構成。

前饋神經網絡求解XOR問題1.1 神經網絡結構設計1.2 隐含層決策面的特點1.3 前饋神經網絡隐含層的作用1.4. 總結參考文獻

圖1-1 AND                                         圖1-2 OR                                     圖1-3 XOR

隐含層的表達式見公式1和公式2所示。

                                                 h1 = w11*x1+w21*x2+b11                                                        (1)

                                                 h2= w12*x1+w22*x2+b12                                                         (2)

輸出層表達式如公式3所示。

                                                  y=w'11*x1+w'21*x2+b11                                                           (3)

前饋神經網絡求解XOR問題1.1 神經網絡結構設計1.2 隐含層決策面的特點1.3 前饋神經網絡隐含層的作用1.4. 總結參考文獻

圖1-4 XOR運算網絡結構圖

1.2 隐含層決策面的特點

        為了直覺地顯示隐含層決策面的特點,我們以解決XOR運算為例,當公式1到公式3參數分别為w11=1、w21=1、b11=0.5、w12=-1、w22=-1、b12=-1.5、w'11=1、w'21=1和b11=1.5時。我們可以得到表達式h1=1*x1+1*x2-0.5、h2=-1*x1+-1*x2+1.5和y=1*x1+1+x2-1.5,這樣所設計網絡的每個節點的計算結果如表1-2所示。

表1-2 求解XOR網絡各節點參數計算結果

前饋神經網絡求解XOR問題1.1 神經網絡結構設計1.2 隐含層決策面的特點1.3 前饋神經網絡隐含層的作用1.4. 總結參考文獻

        從表中可以看出所設計的網絡對于計算XOR結果都是正确的,其中隐含層h1所确定的直線可以識别一個半平面,隐含層h2所确定的直線可以識别另一個半平面,同時可以看出輸出層y所确定的直線相當于将隐含層h1和隐含層h2進行了與運算操作,是以它可識别由隐含層所識别的兩個半平面的交集所構成凸多邊形。是以,我們得到加入隐含層的神經網絡可以讓線性不可分的問題變得線性可分,詳細可視化描述見1.3節。為了進一步挖掘隐含層的特點,我們在神經網絡學習率相同的情況下,分别采用包含不同個數神經元的一個隐含層的神經網絡和使用包含不相同個數神經元的多個隐含層的神經網絡進行實驗對比,實驗結果如表1-5所示至圖1-7所示。對比圖1-5和圖1-6,從圖中對比我們可得随着神經網絡隐含層數的增多,網絡的非線性性能越強。但是從圖中可以看出随着隐含層的增加,程式運作的時間增大,參數也随之增多,網絡的複雜度變高。對比圖1-5和圖1-7可得,當隐含層的層數很大,神經元數量非常多時,對于較簡單的問題易出現過拟合現象。是以,對于不同的問題應适當加入隐含層個數和神經元個數以及其它參數的調整,使得網絡達到最優性能。

前饋神經網絡求解XOR問題1.1 神經網絡結構設計1.2 隐含層決策面的特點1.3 前饋神經網絡隐含層的作用1.4. 總結參考文獻

圖1-5 一個隐含層的可視化結果

前饋神經網絡求解XOR問題1.1 神經網絡結構設計1.2 隐含層決策面的特點1.3 前饋神經網絡隐含層的作用1.4. 總結參考文獻

圖1-6 兩個隐含層的可視化結果

前饋神經網絡求解XOR問題1.1 神經網絡結構設計1.2 隐含層決策面的特點1.3 前饋神經網絡隐含層的作用1.4. 總結參考文獻

圖1-7 八個隐含層的可視化結果

1.3 前饋神經網絡隐含層的作用

        為了直覺地看到隐含層的作用,我們分别采用一個沒有加入隐含層的前饋神經網絡和加入一個隐含層的神經網絡來求解XOR問題進行對比,并将其進行了3D可視化操作,實驗測試代碼見論文最後的github。實驗結果如圖1-9和圖1-10所示。

前饋神經網絡求解XOR問題1.1 神經網絡結構設計1.2 隐含層決策面的特點1.3 前饋神經網絡隐含層的作用1.4. 總結參考文獻

     圖1-8 XOR可視化         圖1-9 不含隐含層結果可視化             圖1-10 含隐含層結果可視化

        圖1-8是将XOR運算在3D圖中的呈現結果,x軸表示輸入x1,y軸表示輸入x2,z軸表示x1 XOR x2的運算結果。紅色圓表示輸出結果為0,為第一類,藍色圓表示輸出結果為1,為第二類。圖1-9表示不含隐含層網絡下可視化結果,我們可以看出,找不到一個平面可以使紅色樣本點和藍色樣本點同時落在該平面上,它無法使決策面成曲面形式。說明不含隐含層的單層感覺機不能解決異或這種非線性可分的問題。從圖1-10中可得四個坐标點全部落在了對應的曲面上,決策面成功地将結果進行了分類。

1.4. 總結

        通過實驗,我們可得隐含層的作用,隐含層隐藏層不直接接受外界的信号,也不直接向外界發送信号,它通過對輸入的資料進行權重求和處理,将其轉化為更能被輸出層接受的形式,加入隐含層可以提高神經網絡的非線性處理能力。

參考文獻

[1] 喬俊飛, 韓紅桂. 前饋神經網絡分析與設計 : Analysis and design of feedforward neural networks[M]. 科學出版社, 2013.

[2] 饒鋼. 非線性權重線性激發函數前饋神經網絡解XOR問題[C]// 中國神經網絡學術大會. 1991.

論文實驗代碼見github:https://github.com/luhongchun/Feedforward_neural_networks_solve_XOR_problems

繼續閱讀