Python深度學習讀書筆記-4.神經網絡入門

神經網絡剖析
 
訓練神經網絡主要圍繞如下四個方面:
  • 層,多個層組合成網絡(或模型)
  • 輸入數據和相應的目標
  • 損失函數,即用於學習的反饋信號
  • 優化器,決定學習過程如何進行
 
如圖 3-1 所示:多個層連接在一塊兒組成了網絡,將輸入數
據映射爲預測值。而後損失函數將這些預測值與目標進行比較,獲得損失值,用於衡量網絡預
測值與預期結果的匹配程度。優化器使用這個損失值來更新網絡的權重。
 
 
層:深度學習的基礎組件
層是一個數據處理模塊,將一個或多個輸入張量轉換爲一個或多個輸出張量。
有些層是無狀態的,但大多數的層是有狀態的,即層的權重。
權重是利用隨機梯度降低學到的一個或多個張量,其中包含網絡的知識。
 
不一樣的張量格式與不一樣的數據處理類型須要用到不一樣的層。
  1. 簡單的向量數據保存在形狀爲 (samples, features) 的 2D 張量中,一般用密集鏈接層[ 也
叫全鏈接層或密集層,對應於 Keras 的 Dense 類]來處理。
  1. 序列數據保存在形狀爲 (samples, timesteps, features) 的 3D 張量中,一般用循環
層( recurrent layer,好比 Keras 的 LSTM 層)來處理。
  1. 圖像數據保存在 4D 張量中,一般用二維卷積層( Keras 的 Conv2D)來處理。
 
模型:層構成的網絡
深度學習模型是層構成的有向無環圖。
常見的網絡拓撲結構:
1.線性堆疊
2.雙分支( two-branch)網絡
3.多頭( multihead)網絡
4.Inception 模塊
 
損失函數( 目標函數)
在訓練過程當中須要將其最小化。它可以衡量當前任務是否已成功完成。
 
優化器
決定如何基於損失函數對網絡進行更新。它執行的是隨機梯度降低( SGD)
的某個變體。
 
如何選擇損失函數
  • 對於二分類問題,你能夠使用二元交叉熵( binary crossentropy)損失函數;
  • 對於多分類問題,能夠用分類交叉熵( categorical crossentropy)損失函數;
  • 對於迴歸問題,能夠用均方偏差( mean-squared error)損失函數;
  • 對於序列學習問題,能夠用聯結主義時序分類( CTC, connectionist temporal classification)損失函數,
相關文章
相關標籤/搜索