NPL Stanford-4.神經網絡入門

NPL Stanford-4.NPL with DL

@(NPL)[閱讀筆記]

1. 從一個神經元開始

神經元是神經網絡最基本的組成成分,它接收n個輸入,產生單個輸出。不同的神經元有着不同的參數(或稱爲權重),但本質上來說它依然在計算,使用某個特定的計算公式。神經元的計算公式(被稱爲激活函數(activition function)),最常用的就比如下面的sigmoid函數,它接收了n維向量x ,產生了輸出a
注:w 是同樣n維的權重向量,b 是偏差(bias)。

a=11+exp((wTx+b))

圖示

這裏寫圖片描述)

2. 單層神經網絡

單層神經網絡就是多個神經元的排列,對每個神經元而言,他們接受一樣的輸入(注:不是全部模型都是接受相同的輸入,此處方便理解),卻可能產生完全不同的輸出。原因在於每一個神經元的權重向量和偏差不一樣,可以認爲這是對輸入向量不同特徵的考量。

這裏寫圖片描述

爲了表示方便,我們定義如下:

這裏寫圖片描述

其中z=wTx+b

圖示

這裏寫圖片描述

3. 前饋計算

從前面我們看到單層神經網絡每一個神經元都有一個輸出,如果有m個神經元就會輸出m維的向量。但是如果我們需要做一個分類,這樣的輸出是不合適的,因爲我們希望的是一個值。因此我們可以使用另一個矩陣URm×1 產生一個(非標準的)值:

s=UTa=UTf(wTx+b)

f 即爲激活函數。
注:如果輸入的xR20 ,而一層神經元個數爲8,那麼wR8×20 , bR8 , UR8×1sR .

4. Maximum Margin Objective Function

與大多數的機器學習模型一樣,神經網絡也需要一個最優化的目標函數。Maximum Margin Objective就是其中一種很流行的方式,背後的思想也很簡單:保證 "true" 標籤的樣本計算得到的得分高於"false"標籤的樣本得分

比如,帶有 “true” 標籤的句子 “Museums in Paris are amazing” 標記爲s ,而帶有 “false” 標籤的句子 “Not all museums in Paris” 標記爲sc . 當scs>0 時,即”false”樣本得到的分數大於”true”樣本,那麼此時error爲(scs) ,反之爲0。所以我們的最優化目標可以寫成:

minimize J=max(scs,0)

但是這樣的最優化是有風險的,比如”true”和”false”樣本得分都很接近,甚至相等。所以,我們希望提高一點門檻,兩者之差最好大於一定的值。所以在原式基礎上沒我們添加一個充當正數的 Δ (稱爲margin,間距):

minimize J=max(Δ+scs,0)

其中sc=UTf(wTxc+b),s=UTf(wTx+b)

如果學過SVM,應該知道max-margin objective function

5. 反向傳播(Backpropagation)

如果J計算的結果爲0,很顯然我們並不需要更改任何參數,因爲該模型表現得不錯。但是如果大於0,我們就需要去更新一些參數使得結果能夠儘可能符合我們的要求(保證 "true" 標籤的樣本計算得到的得分高於"false"標籤的樣本得分)。

那麼如何更新參數呢?梯度下降法(gradient descent)是最常用的方法,或者它的變體隨機梯度下降(SGD)

這部分本來寫了一堆,最後還是覺得這個網頁寫得更清晰:
http://neuralnetworksanddeeplearning.com/chap2.html

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