深度學習其實就是有更多隱層的神經網絡,可以學習到更復雜的特征。得益於數據量的急劇增多和計算能力的提升,神經網絡重新得到了人們的關注。
1. 符號說明
2. 激活函數
為什么神經網絡需要激活函數呢?如果沒有激活函數,可以推導出神經網絡的輸出y是關於輸入x的線性組合,那么神經網絡的隱層就沒有任何意義,對於這樣的模型,直接使用線性回歸擬合就可以了。
一些常見的激活函數如下所示:
在上一篇文章中推導了BP算法,其中使用了Sigmoid函數作為激活函數,具有良好的連續性和可導性。
使用tanh函數時,神經網絡中的參數能得到標准化,所有的數據會聚集在0附近,更有利於收斂。
而上面兩個函數在x較大或較小時,其導數接近於0,在使用梯度下降法時會導致收斂速度慢,因此,又提出了ReLU函數。
Leaky ReLU函數是對ReLU的改良,使x為負數時導數不為0,該函數使用較少。
在神經網絡中,每一層可以使用不同的激活函數,例如隱層使用ReLU函數,輸出層使用sigmoid函數。
3. Logistic Regression
邏輯回歸模型可以幫助我們更好地理解神經網絡。
接下來需要定義損失函數(Loss function),假設有m個樣本,在線性回歸方程中,我們定義的損失函數是所有模型誤差的平方和。理論上,也可以對邏輯回歸模型沿用這個定義,但問題是這樣的損失函數會是非凸的:
此時,損失函數里有許多局部極小值,這將影響梯度下降法尋找全局最小值。我們重新定義邏輯回歸的損失函數為:
我們需要最小化損失函數。
邏輯回歸中的梯度下降:
4. Forward and backward propagations(BP)
程序編寫過程中需要特別注意各矩陣維度定義。
這里已經將各參數向量化,全部使用矩陣運算,例如X中包含了m個樣本,沒有給出具體推導過程,建議先了解最基礎的反向傳播(BP)算法。
5. 參數和超參數
超參數的選擇會直接影響到參數的訓練結果。
以上內容主要參考吳恩達《深度學習》課程第一課