神經網絡與深度學習習題解答
通過梯度下降法學習參數
最近在看 Michael Nielsen的Neural Networks and Deep Learning,這本書是以網頁的形式放在網上,非常合適入門,附上傳送地址:http://neuralnetworksanddeeplearning.com/chap1.html#learning_with_gradient_descent
國內哈工大社會計算與信息檢索研究中心將這本書翻譯成中文版放在網絡上,地址爲:https://hit-scir.gitbooks.io/neural-networks-and-deep-learning-zh_cn/content/chap1/c1s5.html
本節介紹了梯度下降的原理和具體過程。有一定的數學要求,不過大體是高等數學的範疇。
- Prove the assertion of the last paragraph. Hint: If you're not already familiar with the Cauchy-Schwarz inequality, you may find it helpful to familiarize yourself with it.
- I explained gradient descent when C is a function of two variables, and when it's a function of more than two variables. What happens when C is a function of just one variable? Can you provide a geometric interpretation of what gradient descent is doing in the one-dimensional case?
證明最後一段的斷言。提示:利用柯西-斯瓦茨不等式。
我已經解釋了當C是二元及其多元函數的情況。那如果C是一個單變量的函數呢?你能給出梯度下降法在一元函數的幾何解釋麼?
對於問題1,證明方法如下圖所示。證明利用了柯西不等式,大體思路是找到不等式等號成立時的條件,再根據已知條件推導出結果。
第二個問題如下圖所示,代價函數是一元函數的情況比較容易理解,幾何解釋感覺和高中學習導數那時候學習的差不多。
代價函數的改變量爲:,約等於是因爲這裏的和實際的並不相同,畢竟是根據直角三角形計算得到的,只有當函數是直線或者趨近於0的時候才和實際的相同。表示函數在該點的斜率,也就是直角三角形的對邊和鄰邊的比值。當時,C可以以最快的速度下降,這個時候,即可以更新變量v,不斷迭代,從而使C不斷靠近最低點。
下一個問題:
- 梯度下降一個比較極端的版本就是讓 mini-batch 的大小爲1。這就是說,給定一個輸入xx,我們通過規則wk→w′k=wk−η∂Cx/∂wk和 bl→b′l=bl−η∂Cx/∂bl更新權重和偏置。當我們選取另一個訓練數據時也做同樣的處理。其它的訓練數據也做相同的處理。這種處理方式就是在線學習(online learning)或增量學習(incremental learning)。在在線學習中,神經網絡在一個時刻只學習一個訓練數據(正如人類的做法)。說出 online learning 相比 mini-batch 爲 20 的 SGD 的一個缺點和一個優點。
由於自己也算個初學者,對這樣的問題缺少實戰經驗。經過查閱資料,總結以下幾點
online learning優點:1. 容易執行;2. 對於大規模和較難對分類問題能提供有效解;3. 隨機性使得不容易陷入局部極值點;4. 存儲量少;
SGD優點:1. 消除樣本順序對影響;2. 對梯度向量進行精確估計;3. 具有學習對並行性
由於個人能力有限,有錯誤和不足還請指正。