出處: Michael Nielsen的《Neural Network and Deep Learning》,點擊末尾“閱讀原文”即可查看英文原文。
本節譯者:哈工大SCIR本科生 王宇軒
聲明:我們將在每周一,周四 定期連載該書的中文翻譯,如需轉載請聯系wechat_editors@ir.hit.edu.cn,未經授權不得轉載。
-
使用神經網絡識別手寫數字
-
反向傳播算法是如何工作的
-
熱身:一個基於矩陣的快速計算神經網絡輸出的方法
-
關於損失函數的兩個假設
-
Hadamard積
-
反向傳播背后的四個基本等式
-
四個基本等式的證明(選讀)
-
反向傳播算法
-
什么時候反向傳播算法高效
-
反向傳播算法再理解
-
改進神經網絡的學習方法
-
神經網絡能夠計算任意函數的視覺證明
-
為什么深度神經網絡的訓練是困難的
-
深度學習
反向傳播算法的目標是計算代價函數C對神經網絡中出現的所有權重w和偏置b的偏導數∂C/∂w和∂C/∂b。為了使反向傳播工作,我們需要對代價函數的結構做兩個主要假設。在進行假設之前,在腦海中有一個代價函數的實例是很有用的。我們將會使用上一章講到的平方代價函數作為例子。上一章的平方代價函數具有以下形式:
其中n是訓練樣本總數;求和符號表示對每個獨立訓練樣本x求和;y=y(x)是對應的希望輸出;L是神經網絡層數;aL=aL(x)是輸入為x時激活函數的輸出向量。
那么,為了能夠使用反向傳播算法,我們需要對代價函數C進行怎樣的假設呢?第一條假設是代價函數能夠被寫成的形式,其中Cx是每個獨立訓練樣本x的代價函數。在代價函數為平方代價函數的情況下,一個訓練樣本的代價是
。該假設對於本書中涉及到的其它所有代價函數都成立。
我們需要上述假設的原因是,反向傳播實際上是對單個訓練數據計算偏導數∂Cx/∂w和∂Cx/∂b。然后通過對所有訓練樣本求平均值獲得∂C/∂w和∂C/∂b。事實上,有了這個假設,我們可以認為訓練樣本x是固定的,然后把代價Cx去掉下標表示為C。最終我們會重新把x加回公式,但目前為了簡便我們將它隱去。 我們對代價函數做的第二條假設是它可以寫成關於神經網絡輸出結果的函數:
平方代價函數滿足該要求,因為單一訓練樣本x的二次代價可以表示為:
這是一個關於輸出激活值的函數。顯然,該代價函數也依賴於期望的輸出y,所以你可能疑惑為什么我們不把代價視為關於y的函數。記住,輸入的訓練樣本x是固定的,因此期望的輸出y也是固定的。需要注意,我們不能通過改變權值或偏置來修改它,換句話說,它不是神經網絡所學習的東西。所以把C視為只關於輸出aL的函數是有道理的。在該函數中y只是幫助定義函數的參數。
下一節我們將介紹“Handmard積,s⊙t”,敬請關注!
-
“哈工大SCIR”公眾號
-
編輯部:郭江,李家琦,徐俊,李忠陽,俞霖霖
-
本期編輯:俞霖霖