1.3 机器学习基础-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
| 1.2 偏差/方差 | 回到目錄 | 1.4 正則化 |
機器學習基礎 (Basic “Recipe” for Machine Learning)
上節課我們講的是如何通過訓練誤差和驗證集誤差判斷算法偏差或方差是否偏高,幫助我們更加系統地在機器學習中運用這些方法來優化算法性能。
下圖就是我在訓練神經網絡用到的基本方法:(嘗試這些方法,可能有用,可能沒用)
這是我在訓練神經網絡時用到地基本方法,初始模型訓練完成后,我首先要知道算法的偏差高不高,如果偏差較高,試著評估訓練集或訓練數據的性能。如果偏差的確很高,甚至無法擬合訓練集,那么你要做的就是選擇一個新的網絡,比如含有更多隱藏層或者隱藏單元的網絡,或者花費更多時間來訓練網絡,或者嘗試更先進的優化算法,后面我們會講到這部分內容。你也可以嘗試其他方法,可能有用,也可能沒用。
一會兒我們會看到許多不同的神經網絡架構,或許你能找到一個更合適解決此問題的新的網絡架構,加上括號,因為其中一條就是你必須去嘗試,可能有用,也可能沒用,不過采用規模更大的網絡通常都會有所幫助,延長訓練時間不一定有用,但也沒什么壞處。訓練學習算法時,我會不斷嘗試這些方法,直到解決掉偏差問題,這是最低標準,反復嘗試,直到可以擬合數據為止,至少能夠擬合訓練集。
如果網絡足夠大,通常可以很好的擬合訓練集,只要你能擴大網絡規模,如果圖片很模糊,算法可能無法擬合該圖片,但如果有人可以分辨出圖片,如果你覺得基本誤差不是很高,那么訓練一個更大的網絡,你就應該可以……至少可以很好地擬合訓練集,至少可以擬合或者過擬合訓練集。一旦偏差降低到可以接受的數值,檢查一下方差有沒有問題,為了評估方差,我們要查看驗證集性能,我們能從一個性能理想的訓練集推斷出驗證集的性能是否也理想,如果方差高,最好的解決辦法就是采用更多數據,如果你能做到,會有一定的幫助,但有時候,我們無法獲得更多數據,我們也可以嘗試通過正則化來減少過擬合,這個我們下節課會講。有時候我們不得不反復嘗試,但是,如果能找到更合適的神經網絡框架,有時它可能會一箭雙雕,同時減少方差和偏差。如何實現呢?想系統地說出做法很難,總之就是不斷重復嘗試,直到找到一個低偏差,低方差的框架,這時你就成功了。
有兩點需要大家注意:
第一點,高偏差和高方差是兩種不同的情況,我們后續要嘗試的方法也可能完全不同,我通常會用訓練驗證集來診斷算法是否存在偏差或方差問題,然后根據結果選擇嘗試部分方法。舉個例子,如果算法存在高偏差問題,準備更多訓練數據其實也沒什么用處,至少這不是更有效的方法,所以大家要清楚存在的問題是偏差還是方差,還是兩者都有問題,明確這一點有助于我們選擇出最有效的方法。
第二點,在機器學習的初期階段,關于所謂的偏差方差權衡的討論屢見不鮮,原因是我們能嘗試的方法有很多。可以增加偏差,減少方差,也可以減少偏差,增加方差,但是在深度學習的早期階段,我們沒有太多工具可以做到只減少偏差或方差卻不影響到另一方。但在當前的深度學習和大數據時代,只要持續訓練一個更大的網絡,只要準備了更多數據,那么也并非只有這兩種情況,我們假定是這樣,那么,只要正則適度,通常構建一個更大的網絡便可以,在不影響方差的同時減少偏差,而采用更多數據通常可以在不過多影響偏差的同時減少方差。這兩步實際要做的工作是:訓練網絡,選擇網絡或者準備更多數據,現在我們有工具可以做到在減少偏差或方差的同時,不對另一方產生過多不良影響。我覺得這就是深度學習對監督式學習大有裨益的一個重要原因,也是我們不用太過關注如何平衡偏差和方差的一個重要原因,但有時我們有很多選擇,減少偏差或方差而不增加另一方。最終,我們會得到一個非常規范化的網絡。從下節課開始,我們將講解正則化,訓練一個更大的網絡幾乎沒有任何負面影響,而訓練一個大型神經網絡的主要代價也只是計算時間,前提是網絡是比較規范化的。
今天我們講了如何通過組織機器學習來診斷偏差和方差的基本方法,然后選擇解決問題的正確操作,希望大家有所了解和認識。我在課上不止一次提到了正則化,它是一種非常實用的減少方差的方法,正則化時會出現偏差方差權衡問題,偏差可能略有增加,如果網絡足夠大,增幅通常不會太高,我們下節課再細講,以便大家更好理解如何實現神經網絡的正則化。
課程PPT
| 1.2 偏差/方差 | 回到目錄 | 1.4 正則化 |
總結
以上是生活随笔為你收集整理的1.3 机器学习基础-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.2 偏差/方差-深度学习第二课《改善
- 下一篇: 1.4 正则化-深度学习第二课《改善深层