# 5.4~6.1.1 ## 正則化 ### $L_p$範數 在數學上,我們定義一個向量$\mathbf{x}$的$L_p$範數為$||\mathbf{x}||_p\equiv (\sum_i x_i^p)^{1/p}$ 舉例來說 \begin{equation} ||\mathbf{x}||_1 = \sum_i x_i \end{equation} \begin{equation} ||\mathbf{x}||_2 = \sqrt{\sum_i x_i^2} \end{equation} ### 彈性網路正則項 在之前的章節有介紹,我們可以在損失函數中加入正則項來避免過擬合現象。這裡我們要介紹一種常用的正則項,稱為「彈性網路正則項」。 彈性網路正則項定義為 \begin{equation} R_W = \lambda_1 ||\mathbf{W}||_1 + \lambda_2 ||\mathbf{W}||_2 \end{equation} 其中$\lambda_1$和$\lambda_2$是超參數。 第一項是$L_1$正則項,功能為「將權值變得稀疏(讓大部分權值接近零,少數權值非零)」,這可以幫助機器學習選擇少數好的特徵,並非採用所有特徵。 第二項是$L_2$正則項,功能為「將所有權值變小」,這可以防止機器學習過擬合。 ### 最大規範約束 在深度學習中,反向求導時,較容易發生梯度消失和梯度爆炸問題。這時,我可以在梯度下降法中引入「最大規範約束」,透過約束權重向量的範數不超過一個值,例如,對$L_2$範數的約束可表示如下 \begin{equation} ||\mathbf{W}||_2 \le c \end{equation} ### Dropout 當模型過擬合時,我們也可以透過添加「Dropout」來改善。Dropout是一種隨機捨棄某些神經元的正則化技術。如下圖所示,當我們對一層網路層設置一個捨棄率drop_p,那每次迭代Dropout會以drop_p的機率,將神經元設成非啟動狀態。為了避免,該層的輸出期望值降低,而影響到後面的層,我們通常會把神經元啟動值$a$,改為輸出$\frac{a}{1-drop_p}$。  每次迭代,被捨棄的神經元都不相同,可以看成是每次都用不同的函數去擬合,如此便不會過分依賴少數神經元決斷,讓所有神經元都能參與決斷,最終的模型可看作不同函數模型的平均,成為更好的模型。 注意: 1. 驗證和測試時,不應使用Dropout技術。 2. 輸出層前後不能設置Dropout層。 設置技巧: 1. 參數較多的隱含層,捨棄率可以設得大一點。 2. 網路相對於資料及較小時,不用設置Dropout。 ### 早停法 在驗證損失不再降低時,停止訓練,防止過擬合。 ## 梯度爆炸和梯度消失 當梯度在反向傳遞的過程中,如果一直乘以小於1的數,那梯度會趨近於零,發生「梯度消失」,這時訓練會停滯。如果一直乘以大於1的數,那梯度會趨近無限大,發生「梯度爆炸」,導至全中劇烈震盪,無法收斂。 梯度爆炸解決方案:按照下式對梯度進行裁剪,把梯度值限制在$[-\theta,\theta]$內 \begin{equation} min(\frac{\theta}{||\mathbf{g}||},1)\mathbf{g} \end{equation} 梯度消失解決方案:採用殘差網路 ## 卷積神經網路 卷積神經網路是一種有卷積層的神經網路。卷積層和一般網路層不同,它的輸入和輸出都是圖形,不像全連接層輸入的是一維張量。卷積神經網路利用圖形的平移不變性,用很少的權重對圖形進行處理,降低了參數數量。 ## 卷積 卷積是用一個卷積核進行滑動來提取特徵,作法如下:    其中[1.2 0.3 0.5]是卷積核,將卷積核中的元素作為權重,對準資料進行加權和,最終可以得出卷積的結果[17.3 26.3 ... 16.3]。 卷積分為三種(假設卷積核寬度K,原始資料長度n): 1. valid卷積,上圖所示便是valid卷積,卷積結果是長度為n-K+1的向量。 2. same卷積,在資料兩邊各補$\frac{K-1}{2}$個0,再做卷積,卷積結果是長度為n的向量。  3. full卷積,在資料兩邊各補K-1個0,再做卷積,卷積結果是長度為n+K+1的向量。  問題: * 請問解決梯度爆炸和消失的方法分別是甚麼? * Dropout的作用是麼? * 簡述卷積的做法
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up