1 緒論
1.1 深度學習與機器學習
1.2 深度學習的發展歷程
為了提升性能,人們提出了Dropout等過擬合的方法,為了使訓練過程順利收斂,人們又提出了激活函數和預訓練方法,這些方法對深度學習的性能提升起到了支撐作用。 ——P5
這是說,神經網絡如果沒有激活函數等,也是可以用來訓練的。(0024.py就沒有激活函數,神經元結點的輸入就是其輸出,順利完成了線性擬合)
1.3 為什么是深度學習
1.4 什么是深度學習
深度學習的起源包括感知器和玻爾茲曼機。起源于感知器的深度學習中,最基本的結構是把多個感知器組合到一起得到的多層感知器。在多層感知器的基礎上加入類似人類視覺皮質的結構而得到的卷積神經網絡被廣泛應用于圖像識別領域。起源于基于圖模型的玻爾茲曼機的深度學習中,深度玻爾茲曼機以及深度信念網絡是通過把多個受限玻爾茲曼機組合到一起而得到的。
起源于感知器的深度學習是一種有監督學習,根據期望輸出訓練網絡;而起源于受限玻爾茲曼機的深度學習是一種無監督學習,只根據特定的數據訓練網絡。
——P8
1.5 本書結構
2 神經網絡
2.1 神經網絡的歷史
三個階段
2.2 M-P模型
M-P模型是首個通過模仿神經元而形成的模型。
已通過電阻得到了物理實現。
2.3 感知器
與M-P模型需要人為確定參數不同,感知器能夠通過訓練自動確定參數。
- 有監督學習,誤差修正。
- 感知器訓練只能解決線性可分問題,不能解決線性不可分問題。
無法用一條直線將兩個類別區分開的就是線性不可分問題。
2.4 多層感知器 multilayer perception
- 多層感知器 = 前饋網絡 = 正向傳播網絡
多層網絡中應該如何訓練連接權重呢?人們提出了誤差反向傳播算法。
2.5 誤差反向傳播算法 ★
- 誤差的反向傳播,然后調整各層的連接權重
所以,多層感知器的訓練過程就是不斷調整連接權重w,以使最小二乘誤差函數趨近于0.
(sigmoid函數做激活函數的時候,如果自變量遠小于或者遠大于0的時候,函數導數趨近于0)此時,由于權重調整值趨近于0,所以無法調整連接權重。這就是誤差反向傳播算法中的梯度消失導致無法調整連接權重的問題。對于這個問題,需要在訓練過程中調整學習率以防止梯度消失。
2.6 誤差函數和激活函數
- 誤差函數
- 多分類問題:交叉熵代價函數
- 遞歸問題:最小二乘誤差函數
- 激活函數
- sigmoid
- tanh
- ReLU
2.7 似然函數
2.8 隨機梯度下降法
誤差反向傳播算法會先對誤差函數求導計算梯度,然后計算連接權重調整值。反復迭代訓練,直至獲得最優解。根據訓練樣本的輸入方式不同,誤差反向傳播算法又有不同的種類
- 批量學習 batch learning
- 全部樣本
- 抑制帶噪音樣本所帶來的劇烈變動
- 訓練用時長
- 在線學習 sequential learning / online learning
- 每輸入一個樣本就進行一次迭代
- 樣本的差異導致變動大
- 如果降低學習率則還可能出現收斂速度緩慢甚至無法收斂的情況
- 小批量梯度下降法 mini-batch learning
- 樣本分子集開始迭代,全部子集迭代完成開始調整權重;repeat
- 同時彌補前兩種方式的缺點
- 隨機梯度下降法 Stocastic Gradient Descent, SGD
- 只是用部分訓練樣本的方式。
- 每次迭代后樣本集的趨勢都會發生變化,減少了迭代結果陷入局部最優解的情況。
2.9 學習率
學習率是用來確定權重連接調整程度的系數。