ML - 神經(jīng)網(wǎng)絡(luò)算法(Nerual Networks)

1. 背景:
  • 以人腦中的神經(jīng)網(wǎng)絡(luò)為啟發(fā),歷史上出現(xiàn)過很多不同版本

  • 最著名的算法是1980年的 backpropagation

2. 多層向前神經(jīng)網(wǎng)絡(luò)(Multilayer Feed-Forward Neural Network)
  • Backpropagation被使用在多層向前神經(jīng)網(wǎng)絡(luò)上

  • 多層向前神經(jīng)網(wǎng)絡(luò)由以下部分組成:

    輸入層(input layer), 隱藏層 (hidden layers), 輸入層 (output layers)

  • 每層由單元(units)組成
  • 輸入層(input layer)是由訓(xùn)練集的實例特征向量傳入
  • 經(jīng)過連接結(jié)點的權(quán)重(weight)傳入下一層,一層的輸出是下一層的輸入
  • 隱藏層的個數(shù)可以是任意的,輸入層有一層,輸出層有一層
  • 每個單元(unit)也可以被稱作神經(jīng)結(jié)點,根據(jù)生物學(xué)來源定義
  • 以上稱為2層的神經(jīng)網(wǎng)絡(luò)(輸入層不算)
  • 一層中加權(quán)的求和,然后根據(jù)非線性方程轉(zhuǎn)化輸出
  • 作為多層向前神經(jīng)網(wǎng)絡(luò),理論上,如果有足夠多的隱藏層(hidden layers) 和足夠大的訓(xùn)練集, 可以模擬出任何方程。

    3. 設(shè)計神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
  • 使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)之前,必須確定神經(jīng)網(wǎng)絡(luò)的層數(shù),以及每層單元的個數(shù)

  • 特征向量在被傳入輸入層時通常被先標(biāo)準(zhǔn)化(normalize)到0和1之間 (為了加速學(xué)習(xí)過程)

  • 離散型變量可以被編碼成每一個輸入單元對應(yīng)一個特征值可能賦的值

比如:特征值A(chǔ)可能取三個值(a0, a1, a2), 可以使用3個輸入單元來代表A。
如果A=a0, 那么代表a0的單元值就取1, 其他取0;
如果A=a1, 那么代表a1de單元值就取1,其他取0,以此類推。

  • 神經(jīng)網(wǎng)絡(luò)即可以用來做分類(classification)問題,也可以解決回歸(regression)問題

對于分類問題,如果是2類,可以用一個輸出單元表示(0和1分別代表2類),如果多余2類,每一個類別用一個輸出單元表示,所以輸入層的單元數(shù)量通常等于類別的數(shù)量

  • 沒有明確的規(guī)則來設(shè)計最好有多少個隱藏層,根據(jù)實驗測試和誤差,以及準(zhǔn)確度來實驗并改進(jìn)。

    4. 交叉驗證方法(Cross-Validation)
K-fold cross validation

把數(shù)據(jù)分成多份,每次取其中一份進(jìn)行測試,其余的進(jìn)行訓(xùn)練,然后求平均準(zhǔn)確值

5. Backpropagation算法(BP算法,反向傳播算法)
  • 通過迭代性的來處理訓(xùn)練集中的實例

  • 對比經(jīng)過神經(jīng)網(wǎng)絡(luò)后輸入層預(yù)測值(predicted value)與真實值(target value)之間的誤差

  • 反方向(從輸出層=>隱藏層=>輸入層)來以最小化誤差(error)來更新每個連接的權(quán)重(weight)

  • 算法詳細(xì)介紹

輸入:D:數(shù)據(jù)集,l 學(xué)習(xí)率(learning rate), 一個多層前向神經(jīng)網(wǎng)絡(luò)
輸入:一個訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)(a trained neural network)
初始化權(quán)重(weights)和偏向(bias): 隨機(jī)初始化在-1到1之間,或者-0.5到0.5之間,每個單元有一個偏向
對于每一個訓(xùn)練實例X,執(zhí)行以下步驟:

由輸入層向前傳送

sigmod激活函數(shù)
  • 根據(jù)誤差(error)反向傳送
    對于輸出層:



    對于隱藏層:



    權(quán)重更新:

    偏向更新:
  • 終止條件
    權(quán)重的更新低于某個閾值
    預(yù)測的錯誤率低于某個閾值
    達(dá)到預(yù)設(shè)一定的循環(huán)次數(shù)

6. Backpropagation 算法舉例

根據(jù)誤差反向傳播公式:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容