吳恩達神經(jīng)網(wǎng)絡(luò)課程里衬衬,反向傳播算法最難理解的是反向傳播階段怎樣調(diào)整各層次的權(quán)值婶肩,費用函數(shù)的雙層求和符號令人無限頭大左刽,于是費用函數(shù)的偏導(dǎo)數(shù)就更難證明腰埂。而課程此處略去一萬字歪架,最開始自己被攪得一頭霧水,不明白為什么每一層的誤差是這個值挺尾。直到讀了反向傳播推導(dǎo)超簡版一文才豁然開朗变勇。
這里寫下自己理解的思路:
1. 如何調(diào)整最后一層參數(shù)?
既然是反向傳播既荚,說明對于參數(shù)的調(diào)整是從最后一層開始的稚失,根據(jù)梯度下降算法:
問題在于如何計算。對于最后一層的某一個假設(shè)來說恰聘,神經(jīng)網(wǎng)絡(luò)會變化為如下的形狀:
由于只有一個輸出句各,最后一層神經(jīng)網(wǎng)絡(luò)退化為logistic模型,那么費用函數(shù)會退化為:
即:
而
根據(jù)鏈式法則得到:
由以上四式可得:
這里晴叨,課程中的被叫做偏差量凿宾,其實理解為為了求梯度下降的偏導(dǎo)數(shù)而引入的中間變量更為妥當。
于是最后一層輸出層的值被定義為
是因為每一層都可以推導(dǎo)類似的關(guān)系
2. 反向傳播的推導(dǎo)
對于中兼蕊,
是系數(shù)矩陣初厚,因此要求梯度,只需要求出
即可孙技。直接從費用函數(shù)求解太復(fù)雜产禾,于是從
和
的關(guān)系入手:
于是,
定義可得:
這樣就可以依次求解梯度下降的梯度向量