一、神經(jīng)網(wǎng)絡(luò)是什么
- 神經(jīng)網(wǎng)絡(luò)起源于對生物神經(jīng)元的研究,如下圖所示生物神經(jīng)元包括細胞體、樹突、軸突等部分。
- 樹突是用于接收輸入信息,輸入信息經(jīng)過突觸處理,當達到一定條件時通過軸突傳出,此時神經(jīng)元處于激活狀態(tài)。
- 沒有達到相應(yīng)條件,神經(jīng)元處于抑制狀態(tài)。
[圖片上傳中...(image-432d8f-1641287520063-0)]
- 人工神經(jīng)元又稱為感知機,如下圖所示。輸入經(jīng)過加權(quán)和偏置后,由激活函數(shù)處理后決定輸出。
[圖片上傳中...(image-920083-1641287528230-0)] - 生物神經(jīng)元和人工神經(jīng)元對應(yīng)關(guān)系如下:
<colgroup><col style="width: 310px;"><col style="width: 310px;"></colgroup>
|
生物神經(jīng)元
|
人工神經(jīng)元
|
|
細胞核
|
神經(jīng)元
|
|
樹突
|
輸入
|
|
軸突
|
輸出
|
|
突觸
|
權(quán)重
|
- 由大量的人工神經(jīng)元互相連接而形成的復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)成為人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network, ANN)
二、神經(jīng)網(wǎng)絡(luò)的相關(guān)概念
- 輸入層、隱含層、輸出層
- 一般的神經(jīng)元網(wǎng)絡(luò)包含以下幾個部分,輸入層、隱含層和輸出層。下圖是一個含有隱層的神經(jīng)網(wǎng)絡(luò),隱層的層數(shù)越多,隱層的節(jié)點數(shù)目越多,在非線性的激活函數(shù)下,神經(jīng)網(wǎng)絡(luò)就可以學習更深層次的特征。
[圖片上傳中...(image-269e67-1641287555263-8)]
- 激活函數(shù)
- 激活函數(shù)是神經(jīng)網(wǎng)絡(luò)設(shè)計核心單元,激活函數(shù)是用來加入非線性因素的,因為線性模式的表達能力不夠。激活函數(shù)需要滿足一下幾個條件:
非線性(如果激活函數(shù)是線性的,那么不管引入多少隱層,其效果和單層感知機沒有任何差別)
可微信(訓練網(wǎng)路時使用的基于梯度的優(yōu)化方法需要激活函數(shù)必須可微)
單調(diào)性(單調(diào)性保證了神經(jīng)網(wǎng)絡(luò)模型簡單)
權(quán)重和偏置
[圖片上傳中...(image-ba78ce-1641287555263-7)]
- 如上圖所示,假設(shè)神經(jīng)元輸入是X = [x1,x2,x3],權(quán)重為w,偏置為b, 那么其輸出為:
[圖片上傳中...(image-5dedce-1641287555263-6)]
- 可以看出,w,b會影響感知機的輸出結(jié)果,正是因為此神經(jīng)網(wǎng)絡(luò)在迭代過程中修改的是權(quán)重w和偏置b。
- 損失函數(shù)
- 損失函數(shù)(loss function)也叫代價函數(shù)(cost function)。是神經(jīng)網(wǎng)絡(luò)優(yōu)化的目標函數(shù),神經(jīng)網(wǎng)絡(luò)訓練或者優(yōu)化的過程就是最小化損失函數(shù)的過程(損失函數(shù)值小了,對應(yīng)預(yù)測的結(jié)果和真實結(jié)果的值就越接近)。損失函數(shù)也有很多種,拿常用的交叉熵損失函數(shù)舉例,其單個樣本二分類的損失函數(shù)公式如下:
[圖片上傳中...(image-d4aadb-1641287555263-5)]
- 當樣本標簽為1時,
[圖片上傳中...(image-eef949-1641287555263-4)]
- ,此時希望損失函數(shù)盡量的小,那么
[圖片上傳中...(image-fcd341-1641287555263-3)]
- 就要接近1;
- 當樣本標簽為為0時,
[圖片上傳中...(image-d0711b-1641287555263-2)]
- ,此時希望損失函數(shù)盡量的小,那么
[圖片上傳中...(image-a37d38-1641287555263-1)]
- 就要接近0。
[圖片上傳中...(image-eb49a1-1641287555263-0)]
- 反向傳播(Back Propagation,BP)算法
- BP算法分為正向傳播和誤差的反向傳播兩個部分。
- 正向正向傳播時,輸入樣本從輸入層進入網(wǎng)絡(luò),經(jīng)隱層逐層傳遞至輸出層,如果輸出層的實際輸出與期望輸出(導(dǎo)師信號)不同,則轉(zhuǎn)至誤差反向傳播;如果輸出層的實際輸出與期望輸出(導(dǎo)師信號)相同,結(jié)束學習算法。
- 反向傳播時,將輸出誤差(期望輸出與實際輸出之差)按原通路反傳計算,通過隱層反向,直至輸入層,在反傳過程中將誤差分攤給各層的各個單元,獲得各層各單元的誤差信號,并將其作為修正各單元權(quán)值的根據(jù)。這一計算過程使用梯度下降法完成,在不停地調(diào)整各層神經(jīng)元的權(quán)值和閾值后,使誤差信號減小到最低限度。
- 權(quán)值和閾值不斷調(diào)整的過程,就是網(wǎng)絡(luò)的學習與訓練過程,經(jīng)過信號正向傳播與誤差反向傳播,權(quán)值和閾值的調(diào)整反復(fù)進行,一直進行到預(yù)先設(shè)定的學習訓練次數(shù),或輸出誤差減小到允許的程度。
- 如圖所示,其中藍色為正向傳播,紅色為反向傳播,反向傳播的導(dǎo)數(shù)為損失函數(shù)對各變量求導(dǎo)。