TensorFlow 深度學習筆記 從線性分類器到深度神經網絡


轉載請注明作者:夢里風林
Github工程地址:https://github.com/ahangchen/GDLnotes
歡迎star,有問題可以到Issue區討論
官方教程地址
視頻/字幕下載

Limit of Linear Model

  • 實際要調整的參數很多

如果有N個Class,K個Label,需要調整的參數就有(N+1)K個

  • Linear Model不能應對非線性的問題

  • Linear Model的好處

    • GPU就是設計用於大矩陣相乘的,因此它們用來計算Linear Model非常efficient
    • Stable:input的微小改變不會很大地影響output

    • 求導方便:線性求導是常數

  • 我們希望參數函數是線性的,但整個model是非線性的

  • 所以需要對各個線性模型做非線性組合

    • 最簡單的非線性組合:分段線性函數(RELU)

Neural network

  • 用一個RELU作為中介,一個Linear Model的輸出作為其輸入,其輸出作為另一個Linear Model的輸入,使其能夠解決非線性問題

  • 神經網絡並不一定要完全像神經元那樣工作
  • Chain Rule:復合函數求導規律

  • Lots of data reuse and easy to implement(a simple data pipeline)
  • Back propagation

  • 計算train_loss時,數據正向流入,計算梯度時,逆向計算
  • 計算梯度需要的內存和計算時間是計算train_loss的兩倍

Deep Neural Network

Current two layer neural network:

優化:

  • 優化RELU(隱藏層), wider

  • 增加linear層,layer deeper

    • Performance: few parameters by deeper
    • 隨層級變高,獲得的信息越綜合,越符合目標

About t-model

  • t-model只有在有大量數據時有效
  • 今天我們才有高效的大數據訓練方法:Better Regularization
  • 難以決定適應問題的神經網絡的規模,因此通常選擇更大的規模,並防止過擬合

Avoid Overfit

Early Termination

  • 當訓練結果與驗證集符合度下降時,就停止訓練

Regulation

  • 給神經網絡里加一些常量,做一些限制,減少自由的參數
  • L2 regularization

在計算train loss時,增加一個l2 norm作為新的損失,這里需要乘一個β(Hyper parameter),調整這個新的項的值

Hyper parameter:拍腦袋參數→_→

  • l2模的導數容易計算,即W本身

DropOut

最近才出現,效果極其好

  • 從一個layer到另一個layer的value被稱為activation

  • 將一個layer到另一個layer的value的中,隨機地取一半的數據變為0,這其實是將一半的數據直接丟掉

  • 由於數據缺失,所以就強迫了神經網絡學習redundant的知識,以作為損失部分的補充

  • 由於神經網絡中總有其他部分作為損失部分的補充,所以最后的結果還是OK的

  • More robust and prevent overfit

  • 如果這種方法不能生效,那可能就要使用更大的神經網絡了

  • 評估神經網絡時,就不需要DropOut,因為需要確切的結果

  • 可以將所有Activation做平均,作為評估的依據

  • 因為我們在訓練時去掉了一半的隨機數據,如果要讓得到Activation正確量級的平均值,就需要將沒去掉的數據翻倍

覺得得我的文章對您有幫助的話,就給個star吧~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM