深度學習中的預訓練

轉載自:http://blog.csdn.net/elwangeij/article/details/51352964

為什么預訓練:

深度網絡存在以下缺點:

1. 網絡越深,需要的訓練樣本數越多。若用監督則需大量標注樣本,不然小規模樣本容易造成過擬合。(深層網絡意味著特征比較多,機器學習里面臨多特征:1.多樣本 2.規則化 3.特征選擇)

2. 多層神經網絡參數優化是個高階非凸優化問題,常收斂較差的局部解

3. 梯度擴散問題。BP算法計算出的梯度隨著深度向前而顯著下降,導致前面網絡參數貢獻很小,更新速度慢。

解決方法:逐層貪婪訓練。無監督預訓練(unsupervised pre-training)即訓練網絡的第一個隱藏層,再訓練第二個,最后用這些訓練好的網絡參數值作為整個網絡參數的初始值。? 無監督學習--->參數初始值;監督學習--->fine-tuning,即訓練有標注樣本。經過預訓練最終能得到比較好的局部最優解。

常用預訓練方法

stacked RBM

stacked sparse-autoencoder

stacked denoise-autoencoder

預訓練的效果:

fine-tuning微調

預訓練類似于規則化權值(從測試誤差來說,預訓練對于多節點數和深層網絡效果更加)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容