Machine learning

社課 - 9

lecturer : lemon

topic : Dropout&diagnose

First of all

這禮拜的社課主要會跟著上個星期的進度

DNN進行改良、診斷

逼你們做上禮拜的程式練習

我們在最後遇到ㄌ Overfitting的問題

除了Regularization

一個禮拜我們會嘗試別的方法解決

DROPout

Dropout是一種可以減少overfitting的技術

它的想法相當簡單

(X

DROPout

我們每次都隨機把幾個點從神經網路中去掉

i.e

forward&back propagation

讓這些節點失去功能!

DROPout

要怎麼做咧(?

我們對每個點隨機一個數字

如果數字大於某個特定數字我們就把它去掉

記得np.random.rand()ㄇ

之前ㄉ Slides

DROPout

當我們透過\(Z^{[l]}\)計算出\(A^{[l]}\)後

我們就會使用dropout

\(A^{[l]}\)裡的值隨機刪掉

設立一個新的矩陣\(D^{[l]}\)

\(D = np.random.rand(A.shape[0], A.shape[1]) <= keep\)

其中\(keep\)是我們要保留的機率

如果隨機的值 \(< keep\) 我們便會保留節點

反之就會捨棄節點

DROPout

刪除節點時

我們直接讓

\(A = A*D\)

並且為了保持權重和大小一致

我們會讓

\(A\ /= keep\)

DROPout

並且在做back propagation

\(dA = dA*D\)

\(dA\ /= keep\)

其他都一樣w

DROPout

import numpy as np
keep = 0.8
A = np.array([
  [1, 3, 4],
  [2, 1, 2]
])
dA = np.array([
  [1, 3, 4],
  [2, 1, 2]
])

D = np.random.rand(A.shape[0], A.shape[1]) < keep
A *= D
A /= keep
dA *= D
dA /= keep

Diagnose

對於Overfitting、Underfitting的問題

我們會希望有一個衡量的方法

所以我們可以先學一個英文單字w

Diagnose 診斷

我們要學習判別模型的運作情況!!!

Diagnose

所以我們可以再學兩個英文單字(茶

Bias 偏差

Variance 方差

聽起來很數學

實際上也很數學

但我們只要理解他所表達的意思就可以ㄌ

Diagnose

當模型過於符合數據High variance, Low bias

當模型過於不符合數據Low variance, High bias

Diagnose

我們會發現:

bias提高,則variance下降

反之亦然

對於這ㄍ現象

我們都叫它

bias-variance tradeoff

Diagnose

Diagnose

High bias:

  • Regularization降低 \(\lambda\)
  • Dropout提升keep
  • 更深、節點更多的DNN

我們會對模型進行改良

High variance:

  • Regularization增加 \(\lambda\)
  • Dropout降低keep
  • 蒐集更多Data(數據)

Diagnose

我們要如何很快ㄉ判斷bias和variance(?

把資料切塊

之前學ㄉTrain(80%), Test(20%)

現在:Train(60%), Cross-validation(20%), Test(20%)

Diagnose

補充一下

這樣ㄉ資料分塊方式其實在目前不太適用

由於現今資料量大 e.g. \(m = 10^6\)

我們不會放那麼多ㄉ資料

CV(又稱Development, DEV)Test

 

我們可能會用以下的分配方式:

Train(98%), CV(1%), Test(1%)

Diagnose

CV的功能是

透過它來測試模型的超參數值(hyperparameters)

e.g. \(\alpha,\ \lambda,\ keep\)

以達到診斷(diagnose)的作用

記得不要用 Test set 去做同樣的事情

因為Test set就是為了測試整個模型而存在ㄉ

並且請將資料分散好

避免Train的東東跟Test的東東完全不符合

Diagnose

具體來說

我們會繪製學習曲線(learning curve)

COlab

今天的東西主要延續上次上課ㄉ

所以可以先寫上禮拜我晚做的Colab

下禮拜記得來ㄛㄛㄛ

Dropout&Diagnose

By lemonilemon

Dropout&Diagnose

  • 143