一、神經元模型
上圖是一個簡單的單神經元模型,它接收來自其它神經元傳遞而來的信號x[0]~x[3],這些信號附帶着權重w[0] ~ w[3]進行傳遞,神經元接收到的輸入值與神經元的閾值進行比較,最後經過激活函數產生輸出。
上圖對應的公式即: 其中,f()即爲激活函數。
常用的激活函數有如下幾種:
1、Sigmoid函數
Sigmoid函數常被用作神經網絡的閾值函數,將變量映射到0,1之間,公式:
2、Tanh函數
Tanh是雙曲函數中的一個,Tanh()爲雙曲正切。在數學中,雙曲正切“Tanh”是由基本雙曲函數雙曲正弦和雙曲餘弦推導而來。公式:
3、ReLU函數
Relu激活函數(The Rectified Linear Unit),用於隱層神經元輸出。公式如下
4、階躍函數
這是西瓜書中介紹的一個函數,將輸入值映射爲輸出值0 或者 1
二、感知機與多層網絡
感知機由兩層神經元組成,如下圖
感知機是二分類的線性模型,其輸入是實例的特徵向量,輸出的是事例的類別
若兩分類是可分的,即存在一個線性超平面能將它們分開,則感知機一定可以求得相應的權重向量;否則,感知機學習會發生振盪,無法求得合適解。
西瓜書對權重和閾值是給定了合適的初始值,但權重和閾值可以通過學習得到。權重和閾值先給定一隨機值,在得到結果後進行更新:如
其中 爲學習率
西瓜書中階躍函數讓感知機實現邏輯與、或、非運算。但對於異或問題,感知機是無法解決的,必須引入多層神經元,同樣的有輸入層和輸出層,位於兩層之間的叫做隱層。多層神經網絡結構模型如下:
三、誤差逆傳播算法
誤差逆傳播算法(error BackPropagation,簡稱BP),也成反向傳播算法,是很強大的神經網絡學習算法。以西瓜書給出的單隱層神經網絡模型爲例,給出權重、閾值的更新公式
變量符號意義參考西瓜書
以隱層到輸出層的權重爲例,權重的更新規則: ,其中
其它參數更新規則參考西瓜書。
誤差逆傳播算法:
輸出:訓練集,學習率
過程:
在(0,1)範圍內初始化所有權值和閾值
do:計算當前樣本的輸出,計算輸出層的梯度項,計算隱層的梯度項,更新權重和閾值 until 達到停止條件
輸出:多層前饋神經網絡