學習資料:
知乎專欄:無痛的機器學習第一季
神經元與神經網絡
說到神經網絡,我們第一個概念就是在高中生物學習到的神經元(neuro)的概念,神經元從樹突接收到刺激信號,經過神經元的傳導,再通過軸突將信號傳遞下去,我們將神經元的數據模型通過圖片的形式展現出來:
類比于上述的神經元數據模型,下面我們給出一個最基本的神經網絡(SNN):
在吳恩達的課程中,神經網絡分為淺層神經網絡和深層神經網絡
一個神經元被稱為logistic回歸。
隱層(hidden layer)較少的被稱為淺層,而隱層較多的被稱為深層。
基本上是層次越深越好,但是帶來的計算成本都會增加,有時候不知道個該用多少的時候,就從logistic回歸開始,一層一層增加。
此外,神經網絡還有卷積神經網絡(CNN)與循環神經網絡(RNN)。
剛才所說的只是大體上對神經網絡的介紹,現在我們來研究一下神經網絡具體模型。
神經網絡的簡單模型
上文說到一個神經元就是一個logistic回歸,那我們先來介紹一下logistic回歸:
logistic回歸是一種廣義上的線性回歸,因此與多重線性回歸分析有很多相同之處,它們的模型形式基本上相同,都具有z=w‘x+b。其中x是我們給出的數據,它可以是一個數,也可以是一個n維向量,w與b是我們的待求量。而logistic回歸中通過函數L將z對應一個隱狀態p,p =L(z),然后根據p 與1-p的大小決定因變量的值。如果L是logistic函數,就是logistic回歸。
其中logistic回歸的因變量可以是二分類的,也可以是多分類的,但是二分類的更為常用,也更加容易解釋。
在了解了logistics回歸之后我們來繼續研究神經網絡,我們采用的數據是二分類的,所以我們可以把它描述為(x,y),其中x是一個n維向量,y是0或1。
之后我們就要對輸入信號進行處理,信號處理函數分為兩部分,也就是logistic回歸的處理方法
1.權重加權 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
對每個輸入信號x1, x2, x3,乘以對應的權重分別為w1, w2, w3,然后加上內部強度 b
2.激活函數
z可以取到R中任意值,不利于處理,所以我們需要進行處理數據,這就要用到激活函數 a=σ(z) 。一般來講,我們經常采用sigmoid函數:
之前我們所說的是對單個神經元進行處理,一個神經元不可能只處理一組數據,而且神經網絡不可能只包含一個神經元,所以我們擴大我們的樣本數量:
其中每個xn都是n維的向量,y屬于{0,1}。
對第一層神經元而言,第一步計算z:
簡化一下,就是
第二步計算a:
抽象一下,第 l-1 層輸出到第 l 層的公式就是:
注意這里,用 a[l-1]替代了 x,因為,實際上而言a[0]就是輸入層x。
以上就是基本神經網絡的簡單模型,之后我們會介紹一下神經網絡的訓練。
神經網絡的訓練
對于神經網絡來說,我們不可能在一開始就給出神經網絡的最優解,所以我們需要足夠的樣本來訓練它。
簡單總結一下,對于單個神經元來說,其logistic回歸為:
其中?為我們計算的輸出標簽,實際上它會與實際值y有所偏差,所以我們需要引入函數來計算偏差的大小:
LOSS FUNCTION(損失函數):
一般來說,我們高數課上講的比較?與y的函數是:
可是上述函數的缺點為它會給出很多局部數據的最優解,在我們繪圖是它會出現類似波浪形狀的圖形,在整體上會有很多點是非凸的,無法用梯度下降法找到最優解,于是我們引入如下函數:
在這個公式中,當?越接近于y時,這個函數的值就越小,也就說明我們的神經網絡越好。我們簡單地代入兩個極限值0和1來證明這個函數的正確性。
1.如果 y=1,則 L(?, y)=-log(?),只有當?趨近于最大值1時,-log(?) 才達到最小
2.如果 y=0,則 L(?, y)=-log(1-?),只有當 ? 趨近于最小值0時,-log(1-?) 才達到最小
損失函數只是針對單個樣本數據的,當我們面對m個樣本時,我們就要引入成本函數。
COST FUNCTION(成本函數):
很簡單,對多個損失函數的解計算其數學期望(求平均值)
展開函數得:
很明顯,成本函數越小,證明我們的訓練效果越好,那我們如何減小成本函數呢,之后我們會介紹梯度下降法。
梯度下降法
我們都知道,對于一個多元函數來說,梯度即是某一點最大的方向導數,沿梯度方向函數有最大的變化率(正向增加,逆向減少)。(?u/?L)M0=n?l=|n|cosθ當θ=0時,該方向為函數的梯度方向,梯度表示為:
所以在我們求出成本函數值后,我們要對w進行修正,我們對損失函數L(?,y)取一個截面,假設我們在現有的數據在A點
其中,無論是在最小值的左右,每進行一次迭代都會是w點向最小值靠近,只要訓練樣本足夠多,我們就會找出一個成本函數在預期范圍內的神經網絡。