干货|吴恩达Coursera课程教你学习神经网络二!
上一周的課程中講了神經網絡的結構以及正向傳播(feed forward)過程,了解了神經網絡是如何進行預測的,但是預測的結果怎么和真是結果進行比較以及發現了錯誤如何修改還沒有提及。
這一周的課程中,介紹了cost function作為結果比較的標準以及backpropagation方法作為錯誤修改的方式。
1?Cost Function
Linear regression使用平方差來表示結果之間的差距:
Logistic regression使用negative log來表示結果之間的差距:
Neural network實際上就是k個Logistic regression的一個集合,所以其cost function也是negative log的一個集合。整個網絡產生的error其實就是每一個Logistic regression產生的error的和。
2?Backpropagation
在Logistic regression中,模型是向著error的負梯度方向更新的,所以需要計算cost function的梯度,這在Neural Networks中也是如此,只不過這次的權值θ多了一些,需要一層一層慢慢求解了。
假設神經網絡有4層:
先來回顧一下,一條訓練數據的正向傳播的情況,這次我們不把bias直接加到矩陣中去了,把它拿出來,令為b(i),是一個列向量:
至此,所有的偏導都求完了,總結一下:
3Gradient Checking
如果梯度計算不正確,那整個模型都錯了。最慘的是,在訓練了幾個小時之后發現梯度算錯了。所以梯度計算完之后,需要驗算一下對不對。
梯度可以如下約等于:
驗算過程如下:
4Random Initialization
模型中權重和偏置的初始值可以隨便設成任何數字,但是設置成什么樣直接決定了模型收斂的快慢和程度,進而影響模型的performance。
把權重和偏置初始化為0非常不好。因為在前向傳播過程中,全部初始化成0,則結果就是0,在得到殘差之后,反向傳播過程中,殘差根據權重進行分配,因為權重全部為0,所以隱藏層的殘差為0,即權重不更新,所以不能全部初始化成0,權重為0的神經元是死掉的,是不會更新的。
另外全部初始化成同樣的數字也是不好的,模型將一直以同樣的方式更新這些神經元。反向傳播過程中,殘差根據權重進行分配,因為權重都相同,所以權重的更新也是相同的,所以網絡中的每一個神經元都是一樣的。
一般從均勻分布中隨機初始化權重和偏置,比如:
總結
以上是生活随笔為你收集整理的干货|吴恩达Coursera课程教你学习神经网络二!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 扎克伯格做了26张PPT,员工效率提10
- 下一篇: 国内各大平台的推荐算法,看到360的时候