前馈神经网络介绍
轉自出處:
http://blog.csdn.net/walilk/article/details/50278697
符號說明:
以如下圖為例:
前面的網絡結構對應二分類問題
后面的網絡結構對應多分類問題
Layer層:
最左邊的層為輸入層(input layer),對應樣本特征
最右邊的層為輸出層(output layer),對應預測結果
Node:
輸入層節點:對應樣本的特征輸入,每一個節點表示樣本的特征向量x中的一個特征變量或特征項
輸出層節點:對應樣本的預測輸出,每個節點表示樣本在不同類別下的預測概率
隱藏層節點:對應中間的激活計算,稱為隱藏單元,在神經網絡中隱藏單元的作用可以理解為對輸入層的特征進行變換并將其進行層層轉換傳遞到輸出層進行類別預測
偏置單元:
它和線性方程y=wx+b中的b的意義是一致的,在y=wx+b中,b表示函數在y軸上的截距,控制著函數偏離原點的距離,在神經網絡中偏置單元起到的是相同的作用。因此神經網絡的參數表示為:(W,b),其中W表示參數矩陣,b表示偏置項或截距項
神經網絡對偏置單元的處理方式分如下2種:
1、設置偏置單元=1,并在參數矩陣Θ中設置第0列對應偏置單元的參數,對應神經網絡如下:
其中,x0是對應的偏置單元(設置1),表示對應偏置單元x0的參數,表示第二層的偏置單元,是對應的參數。
?計算激活函數以為例,按照如下來計算:
2、不在參數矩陣中設置偏置單元對應的參數,對應神經網絡如下:
其中,是對應的偏置單元向量,是對應的偏置單元向量,是所對應的偏置單元,因而激活值可以表示為如下:
其表示形式與上一部分原理相同。
激活函數:
?激活單元的計算過程稱為激活,指一個神經元讀入特征,執行計算并產生輸出的過程。
激活函數是非線性函數,用于為神經網絡模型加入非線性因素,使其能夠處理復雜的非線性任務。一般情況下激活函數有如下幾種方式:
(1)sigmoid函數(0~1):
(2)tanh函數(-1~1):
(3)ReLu函數()
目前ReLu函數在神經網絡模型研究及實際應用中較多,因為sigmoid或tanh作為激活函數做無監督學習時,遇到梯度消失問題導致無法收斂,而ReLu可以避免這個問題,此外基于ReLu這種現行激活函數的神經網絡計算開銷較低。
注:
激活函數額作用可以看作是從原始特征學習出新特征,或是將原始特征從低維空間映射到高維空間。引入激活函數是神經網絡具有優異性能的關鍵所在,多層級聯的結構加上激活函數令多層神經網絡可以逼近任意函數,從而學習出復雜的假設函數。
假設函數:
如果神經網絡采用sigmoid函數作為激活函數,那么其假設函數就與邏輯回歸模型一致,也是一個sigmoid函數,可以看作是一個條件概率:P(y=1|x;Θ)
對于神經網絡,預測值的計算是一個逐層遞進的過程,以神經網絡為例:
其預測值得計算過程如下:
計算隱藏單元的激活值:
計算得到下一層的某節點輸出:
可以發現,無論網絡結構中有多少個隱藏層,在最后計算假設函數的時候,其實是和邏輯回歸是一致的,只是邏輯回歸直接對樣本特征計算,而神經網絡中是對隱藏單元的激活值計算。
從計算過程可以發現,神經網絡在對樣本進行預測時,從輸入層開始,層層向前計算激活值,直觀上是一種層層向前傳播或是層層向前激活的過程,最終計算出,這個過程稱為前向傳播。
注:
神經網絡計算輸出的過程稱為前向傳播,無論多復雜的神經網絡,在前向傳播過程中也是在不斷的計算激活函數,從輸入層一直計算到輸出層,最后得到樣本的預測標簽。
模型對比:
1、基礎模型對比
只具有一層(一個輸入層)的神經網絡模型,其實就是標準的邏輯回歸模型(邏輯回歸就是激活函數是sigmoid的單層簡單神經網絡)
注:sigmoid函數的表示形式:
對比如下:
邏輯回歸:
神經網絡:
可以說,神經網絡就是由一個個邏輯回歸模型連接而成,它們彼此作為輸入和輸出。
2、多分類模型對比
在邏輯回歸中,決策邊界(用于對原始數據進行劃分)由決定,隨著參數項的增加,邏輯回歸可以在原始特征空間學習出一個非常復雜的非線性決策邊界(也就是一個復雜非線性方程);
在神經網絡中,決策邊界由決定(這只是一個象征性表達式,Θ表示所有權重矩陣,x表示特征加上所有隱藏單元),神經網絡并未直接在原始特征空間學習決策邊界,而是將分類問題映射到新的特征空間,通過新特征空間學習決策邊界,來解決原始特征空間的分類問題。
3、性能對比
在決策邊界對比部分可以發現,邏輯回歸和神經網絡都可以學習復雜非線性邊界,那么神經網絡的相對優勢在于:
如果給定基礎特征的數量為100,在利用邏輯回歸解決復雜分類問題時會遇到特征項爆炸增長,導致過擬合及運算量過大問題。
例:
在n=100情況下構建二次項特征變量,最終有5050個二次項,隨著特征個數n的增加,二次項的個數大約以n^2的量級增長,其中n是原始項的個數,二次項的個數大約為(n^2)/2個
這種無法再一開始就進行優化,因為難確定哪一個高次項是有用的,因此必須找到所有的二次項進行訓練,在訓練后通過不同權重來判別
對于神經網絡來說可以通過隱層數量和隱藏層單元數量來控制函數的復雜程度,并在計算時只計算一次項特征變量,本質上來說神經網絡是通過這樣一個網絡結構隱含的找到了所需要的高次特征項,來簡化計算。
?現有常用的神經網絡模型:
深度神經網絡:從某種程度來說就是以前n-1層對訓練樣本進行特征提取,最后一層進入全連接層得到最終結果。
?
轉載于:https://www.cnblogs.com/xiaochouk/p/8276761.html
總結
- 上一篇: 上传文本到hdfs上的一些命令
- 下一篇: 51Nod1230 幸运数