# Week 3 Note-1 ###### tags: `WIDM Study Group` ## ML 9: Tips for Deep Learning ### Recipe of Deep Learning * 在模型訓練完後,檢查模型效果: * 確認模型在訓練資料集的效果是否良好(誤差穩定下降、輸出結果正常)。 * 若在訓練資料集上有問題,則回頭檢視建立模型的步驟是否出錯。 * 接著會利用測試(驗證)資料集測試模型效果。 * 若在測試(驗證)資料集測試發現誤差上升、輸出結果異常,則有可能發生過適。  ### Do not always blame Overfitting 而模型效果不好,也不單單是過適所造成。 若模型的深度越深(層數越多),會增加模型參數校調難度,進而影響模型效果。  ### Recipe of Deep Learning 如何改善DL模型訓練效果呢? * 對於訓練資料的調整有以下兩種方法: * 使用其他激活函數 * 使用適合的學習率  ### Vanishing Gradient Problem 所謂梯度消失問題,就是在模型剛開始訓練、神經元參數皆是random時,靠近輸入層的Layer無法獲得較大的更新梯度(對loss的微分很小),而輸出層就藉由輸入層的隨機參數胡亂更新,遺下就達到收斂。  會造成此原因是因為Sigmoid函數會將輸入縮小至0到1之間,這樣的設計會使輸入層無法獲得較大的梯度。  ### ReLU 而ReLU的出現解決了梯度消失的問題 * ReLU Function: * input z、output a * if z > 0,a = z * else a = 0  若neuron為零,則對整個網路是沒有影響的,可以拿掉,即變成一個瘦長的網路。   Leaky ReLU & Parametric ReLU解決了輸入為零無法更新neuron的問題。  ### Maxout 即在一個Layer上做MaxPooling,將未輸入激活函式的輸出分組,並選出最大者。  而ReLU是Maxout的一個特例。 若權重w,b的值與ReLU相同,則Maxout的輸出就會與ReLU一樣。  而Maxout也是一個可學習的激活函數,透過不同的權重可學習到不同的激活函數。   ### Maxout-Training 選擇最大的進行線性輸出,較小者則可以拿掉,只對輸出較大的neuron更新。 而neuron對於不同的輸入會有不同的輸出,故最大者會交互輪替,不會有無法更新到另一neuron。  ### Adaptive Learning Rate #### Adagrad Adagrad強調每個參數都有不同的學習率,以η除上過去梯度的平方和開根號。  ##### Adagrad Problem 在真實的情況下,誤差的狀況往往是複雜且糟糕的。  #### RMSProp RMSProp加入了超參數α,調控過去與現在的參數。  #### Local Minima Problem 在 DeepLearning 中會因微分為0而有區域最佳解問題。  #### Momentum Momentum運用運動慣性的特性,使參數更新方向還要加入原移動方向。  而Momentum也使更新有機會達到全域最佳解。  而Adam就是RMSProp與Momentum的結合。  ### Early Stopping 因測試資料與訓練資料的分布不同,很可能訓練到後面訓練誤差持續降低,測試(驗證)誤差卻持續升高。故我們可將模型訓練階段停止在測試誤差最低的狀態。  ### Regularization 正規化的目的在於使誤差曲線更平滑。 L2正規化將正規化項||θ||以平方和計算。 在參數更新時我們可將參數更新公式整理成$w^t-η\dfrac{∂L'}{∂w}=(1−ηλ)w^t−η\dfrac{∂L}{∂w}$,$η$,學習率、$λ$,正規化超參數皆會設置很小,故$(1−ηλ)$為一個接近1的值(<1),在模型不斷更新,參數也會漸漸趨近為0。  Regularization還有另一種稱為L1的正規化,不同於L2的部份在於||θ||所計算是參數的絕對值總合,而不是平方和。  L1 V.S. L2 之 差異 * 參數更新 * L1減掉固定的值 * L2乘上一個小於1固定的值 * 收斂速度 * w愈大,於L2上更新的速度愈快 * 結果 * L1參數有大有小 * L2普遍參數都會接近於0 ## Dropout 在訓練時會隨機將特定比率( p )的neuron丟掉,不更新。   測試時因不會進行dropout,故DL模型運算時會多出p%的權重一起運算,故輸出*=(1-p)   Dropout 其實是 ensemble learning,將訓練集切成多個子集給不同的模型訓練。 測試時再將模型的輸出取平均。   在Dropout中可視為將數據拆成多個batch訓練,且某些參數是共享的。  ## 補充-Batch size對模型的影響 Smith, S. L., Kindermans, P. J., Ying, C., & Le, Q. V. (2017). Don't decay the learning rate, increase the batch size.     
×
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