《MATLAB Deep Learning》Ch4 & Ch5 學習筆記

Ch4 - Neural Network and Classification

Binary Classification

二分類問題只需要一個輸出層結點,因爲我們只需指定一個閾值 threshold 就可以把結果分爲兩類。

當我們使用 Sigmoid 激活函數 + 交叉熵損失函數時,輸出層誤差有着十分簡潔的形式。詳細推導可以參考 爲什麼sigmoid激活函數,使用交叉熵損失函數更好
在這裏插入圖片描述

Multiclass Classification

在多分類問題中,我們通常使輸出層的結點數目與分類數目相一致。

一個有效的策略是使用 one-hot 編碼,這時每一個輸出層結點都被映射到類向量的其中一個元素。
在這裏插入圖片描述
我們引入 Softmax 函數作爲激活函數,它不僅考慮了輸入數據的加權和,也考慮到了其他輸出結點的值。也就是說,對比 Sigmoid 函數,Softmax 函數考慮到了輸出結點之間的相對量級(relative magnitudes)。
在這裏插入圖片描述
Softmax 激活函數 + 交叉熵損失函數的誤差推導可以參考 簡單易懂的softmax交叉熵損失函數求導。注意這裏的誤差計算雖然看起來跟前面的 Sigmoid + 交叉熵 一樣,但這裏的 delta 和 e 是向量(之前的是標量),另外這樣的簡潔形式其實是 one-hot 編碼帶來的。
在這裏插入圖片描述

Ch5 - Deep Learning

在使用後向傳播算法時,添加額外的隱藏層反而常常導致較差的表現,深度學習爲我們提供瞭解決方案。實際上,深度學習並沒有任何關鍵技術上的革新,它帶來的是一系列細微的技術改良(technical improvements)的集合。

更深的網絡反而表現更差的原因是網絡沒有得到很好地訓練,後向傳播算法在訓練過程中存在着以下三個問題:Vanishing gradient, Over-fitting, Computational load.

解決梯度彌散/消失(Vanishing gradient )的一項代表性技術是使用 Rectified Linear Unit (ReLU) 激活函數。
在這裏插入圖片描述
Sigmoid 激活函數將輸出值限定在一定的範圍內,而 Relu 激活函數沒有此限制。另外,x > 0 時,導數爲 1,可見此時它能將誤差無衰減地向前傳遞。
在這裏插入圖片描述
解決過擬合問題的一項代表性技術是 Dropout(隨機失活),此外,添加正則項和使用更大的數據集也可有效避免模型過擬合。

最後,由於高性能硬件產品(GPU)的發展和其他一些算法(Batch normalization,批歸一化)的發現,深度學習的計算負荷(computational load)也被減輕到了一個可觀的水平。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章