《Scikit-Learn與TensorFlow機器學習實用指南》第11章 訓練深層神經網路

《Scikit-Learn與TensorFlow機器學習實用指南》第11章 訓練深層神經網路

來自專欄信數據得永生

來源:ApacheCN《Sklearn 與 TensorFlow 機器學習實用指南》翻譯項目

譯者:@akonwang @飛龍

校對:@飛龍 @Zeyu Zhong

第 10 章介紹了人工神經網路,並訓練了我們的第一個深度神經網路。 但它是一個非常淺的 DNN,只有兩個隱藏層。 如果你需要解決非常複雜的問題,例如檢測高解析度圖像中的數百種類型的對象,該怎麼辦? 你可能需要訓練更深的 DNN,也許有 10 層,每層包含數百個神經元,通過數十萬個連接來連接。 這不會是閑庭信步:

  • 首先,你將面臨棘手的梯度消失問題(或相關的梯度爆炸問題),這會影響深度神經網路,並使較低層難以訓練。
  • 其次,對於如此龐大的網路,訓練將非常緩慢。
  • 第三,具有數百萬參數的模型將會有嚴重的過擬合訓練集的風險。

在本章中,我們將依次討論這些問題,並提出解決問題的技巧。 我們將從解釋梯度消失問題開始,並探討解決這個問題的一些最流行的解決方案。 接下來我們將看看各種優化器,與普通梯度下降相比,它們可以加速大型模型的訓練。 最後,我們將瀏覽一些流行的大型神經網路正則化技術。

使用這些工具,你將能夠訓練非常深的網路:歡迎來到深度學習的世界!

閱讀全文?

github.com圖標
推薦閱讀:

黃哥說很多人的循環都寫不好, 請看。
如何讓你的Python 代碼一直運行著
python V.S c++ ? 該注重哪個?
用python的前輩們,pylab是matplotlib的一個模塊嗎,跟pyplot又是什麼關係呢?
數據城堡參賽代碼實戰篇(二)---使用pandas進行數據去重

TAG:機器學習 | Python | TensorFlow |