Loss函數,激活函數,規範化

最近在看深度學習時,一直很好奇,loss函數,激活函數,規範化到底是怎麼弄出來的。

一直以爲這個是固定不變的,然後收集了很多自戀,查看了很多博客。最後纔有點眉目。

以下是個人淺見,希望各位大神,各位大大門指正。


一般而言:機器學習可以分爲兩大類:迴歸、分類:

迴歸:根據離散樣本(xi,yi)歸納出一條平滑的曲線(或直線),並用這條曲線來預測事物的發展情況

分類:根據離散樣本(xi,yi)的某些性質,將該離散樣本分爲幾類,每類數據有不同的性質,並用分類的參數對新樣本進行分類預測:新樣本屬於哪個類別


我們要對未知情況進行預測,就必須建立一個切合實際的模型,用這樣的模型對新的數據進行預測。而要建立一個切合實際的模型,其實就是對樣本(xi,yi)進行處理的相關參數集的調試。即我們需要找到能夠使樣本(xi,yi)進行正確分類的最佳參數集,用另一句話說,就是使分類結果(實際輸出)和理想結果(我們的期望)的誤差越小越好(鑑於很多模型可能沒有最小值解,所以一般希望越小越好),而用來表示這個誤差的函數就是我們所謂的誤差函數/損失函數/成本函數

LOSS FUNCTION

一般而言,大多數神經網絡採用了3類損失函數:二次代價函數(均方差函數),交叉熵函數,softmax所用的函數

    1 均方差損失函數:在UFLDL中採用的就是均方差損失函數,其模型爲:

                                 

         其中 f( ) 是正個模型的的輸出函數,具體化即爲輸出層的函數,y 爲我們希望的輸出,或者說數據帶有的標籤;

         這樣,二者之間的差值自然是越小越滿足我們的要求,所以均方差損失函數可以作爲代價函數。

   2 交叉熵函數:熵起源於香農信息量的期望,可以參考下http://www.cnblogs.com/crackpotisback/p/6781872.html其模型爲:

                                   

        同樣的,f( )表示輸出,y表示期望的輸出或者標籤。

       我們可以計算,當 y  很接近  f( ) 時, 即表示模型對數據的預測很接近我們的期望時,此時 y = f( ) =1,或者y = f( ) = 0,代入上式均可以得到J = 0

                                   當 y  不等於或者遠離  f( ) 時, 即表示模型對數據的預測很不符合我們的期望時,此時 y =0, f( ) =1;或者y =1, f( ) = 0,代入上式均可以得到 J 趨近於無窮

       所以我們可以用交叉熵來判斷模型參數是否符合我們的期望,即作爲損失函數。

   3  softmax分類器所用的函數:  可以參考:http://blog.csdn.net/ture_dream/article/details/54948518,softmax是一個多分類器,是有一種特殊的交叉熵方法進行判斷的。

         softmax是個多分類器,其輸出層的函數爲:

                                         其中 j = 1,2,3,...K,表示K個類別,也就是說softmax輸出層輸出的是測試樣本是第 j 類的概率;

          此時採用的損失函數爲:(下面用 i 來代替 j 了)

                                

            這樣,當第 i 個樣本存在的概率越大,L 值越接近於0;相反。該概率越小,其值越大,表示和我們希望不符合

以上是我收集的損失函數。


THE ACTIVATION FUNCTION

激活函數是每個節點(不含輸入層)必須要有的功能,在這兒簡單地對激活函數做一個介紹:

  1 sigmoid函數以其導數:

                                              

  2 tanh函數:

                                           

  3 softplus函數:

                                         

  4 softsign:http://write.blog.csdn.net/postedit

                                           

  5 ReLu:

                                          

             此外,ReLu還有其他的類型:LReLu,PReLu,RReLu三種變形。

  6 softmax的輸出層,如上述。

規範化:

規範化,也稱爲正則化:

  1 L2正則化:在損失函數中加入1/2 * λω^2,L2正則化對大的權重有很高的懲罰度,以求讓權重分配的更均勻一些

  2 L1正則化:在損失函數中加入 λ|ω| ,L1正則化會在模型訓練過程中讓權重向量逐漸的稀疏化,即就是到最後只留下了對結果影響最大的一部分權重

  3 最大範數約束:限制了一個上行的權重邊界,然後約束每個神經元上的權重都要滿足這個約束,不添加懲罰項,要求每一個神經元的權重向量必須滿足:小於一給定的常數

  4 dropout正則化:設置以參數p,就是在訓練過程中,對每個神經元,都以概率p保持它是激活狀態,1-p的概率直接關閉它

可以參考:http://blog.csdn.net/han_xiaoyang/article/details/50451460


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章