機器學習技法筆記-Lecture 12 Neural network

介紹神經網絡的基本概念以及Backprop的推導。算法

 

輸入爲x, 首先對x作一個線性變換到s,而後對s作(一般是非線性的)變換,做爲下一層的輸入。若是對s也是線性的,那整個網絡就是線性的,就不須要那麼多層了。api

對 s 常常使用的一個是雙曲餘弦的變換tanh網絡

在離原點比較遠的地方,它比較像階梯函數,在接近原點的地方,接近線性函數。app

 

網絡的計算過程函數

能夠分兩步看,一個是算score,一個是作transform.學習

 

如何學習網絡中的權重呢?優化

學習的最終目標仍然是讓Ein最小,Ein能夠看作是關於所有的w_ij的函數,使用梯度降低法對w_ij進行迭代。url

如何計算spa

這裏的關鍵一點是對s_j的偏導能夠由後一層的全部s_k的偏導得來。orm

因此對w_ij的更新是從後向前進行的,叫作backpropagation

 

NN的最優化問題,首先不是凸優化,另外不一樣的初始值會讓結果收斂在不一樣的局部最優處,對初值是比較敏感的。

若是w_ij比較大,tanh函數就會在比較靠近+-1的地方,這時候梯度變化很是小,那麼更新很緩慢。

 

NN的VC維大體等於神經元乘以權重的個數.

只要神經元個數足夠多,就能擬合任何函數,固然也會overfit.

 

NN的正則化

L1正則不可微,一般選用L2正則,L2是一種weight decay的方法,一般會對大的weight進行更大的shrink,小的weight進行小的shrink。這裏但願能達到L1特徵稀疏的效果,就採用了一種 scaled L2,在小的weight上也進行一箇中等的shrink,最後這些小的weight就會消失掉。

 

另一個正則方法是 early stopping. 進行GD的步數能夠看作vc維的一個反映。可使用validation來選擇走多少步。

全部和GD有關的算法都能使用early stopping.

相關文章
相關標籤/搜索