人工神經網絡關鍵核心知識點
神經網絡里面主要就是單層神經網絡學習和多層神經網絡學習,涉及到知識點主要就是感知器,線性分割,影藏層,權重校正,誤差的平方和等知識點。
感知器:是神經網絡最簡單的形式,單層雙輸入感知器的結構如下:
感知器的作用是將輸入分類,超平面有線性分割函數定義:
下圖是感知器的線性分割:兩輸入感知器和三輸入感知器的情形。
感知器如何學習分類任務
感知器通過細微的調節權值來減少感知器的期望輸出和實際輸出之間的差別可以完成這一任務。
下面我們來介紹下感知器分類任務的訓練算法
設Y(p)為實際輸出,Yd(p)為期望輸出,e(p)為誤差,
則:
如果e(p)為+,就需要增加感知器的輸出Y(p),如果為負,就減少感知器的的輸出Y(p),因此可以建立下面的感知器的學習規則:
算法1:
步驟一:初始化。
設置權重w1,w2,...Wn和閾值o的初值,取值范圍為[-0.5,+0.5]。
步驟二:激活。
通過用輸入 以及期望輸入Yd(p)來激活感知器,在迭代p=1上計算實際輸出
其中n為感知器輸入的數量,step為階躍激活函數。
步驟三:權重訓練。
修改感知器的權重。
其中為迭代p上的權重校正。
通過delta規則計算權重校正:
步驟四:迭代。
迭代p加1,回到步驟二,重復以上過程直至收斂。(完)
可以訓練感知器執行類似AND(a),OR(b),,但是不能通過訓練執行異或邏輯操作(c):
四個常用的激活函數------階躍、符號、線性、s形函數如下圖:
單感知器僅僅能分類線性分割模式,要處理非線性的問題就只能通過多層網絡來解決。
多層神經網絡:多感知器是有一個或者多個隱藏層的前饋網絡,如下圖有兩個隱藏層的多層感知器:
為什么需要隱藏層?
多層神經網絡的每一個層都有特定的功能,輸入層接受來自外部世界的輸入信號,重新將信號發送給隱藏層的所有神經元,
利用一個隱藏層,我們可以表示輸入信號的任何連續函數,利用兩個隱藏層甚至可以表示不連續的函數。
隱藏層到底隱藏了什么?
隱藏層隱藏期望的輸出值,隱藏層的神經元不能通過網絡的輸入和輸出行為來分析,換句話說就是隱藏層的期望輸出由層自己決定。
多層網絡如何學習?
后向傳送方法。
學習算法有兩個階段:
1、將訓練輸入模式提供給網絡的輸入端,輸入模式在網絡中一層一層的傳送,直到輸出層產生輸出模式為止。
2、從網絡的輸出端后向的傳送到輸入端,在傳送誤差是調整權重的值。
后向傳送方法和感知器的類似,只是在后向傳送方法中神經元使用的是S形的激活函數:
后向傳送方法的算法:
步驟一:初始化。
用很小的范圍均勻分布的隨機數設置網絡的權重和閾值
其中Fi是網絡中神經與的輸入的總數。
步驟二:激活。
通過應用輸入和期望的輸出
來激活后向傳送神經網絡。
(1)計算隱藏層神經網絡的實際輸出:
其中n是隱藏層神經元j輸入的個數。
(2)計算輸出層神經元的實際輸出:
其中m為輸出層神經元k的輸入個數。
步驟三:訓練權重。
修改后向傳送網絡的權重
(1)計算輸出層神經元的誤差斜率:
其中:
計算權重的校正:
更新輸出層的權重:
(2)計算隱藏層神經元的誤差斜率:
計算權重的校正:
更新隱藏層神經元的權重:
步驟四:迭代。
迭代p加1,回到步驟二,重復以上過程直至滿足誤差的平方和滿足要求為止。(完)
來自: http://blog.csdn.net//u011067360/article/details/22804175