Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【深度學習】03 神經網路是怎麼學的

【深度學習】03 神經網路是怎麼學的

2022 政大應數「數學軟體應用」深度學習課程 03

[email protected]

March 14, 2022
Tweet

Other Decks in Technology

Transcript

  1. 數學軟體應⽤ 140 函數空間 f θ 當我們⽤神經網路的⽅式, 打造了⼀台 函數學習機之後, 決定⼀組參數 (包

    括權 、偏值) 就會決定⼀個函數。 因為我們的函數學習機可以⽣出無限 多個函數, 我們把所有可能⽣出的函數 收集起來, 成為⼀個函數空間。 θ {f θ }
  2. 數學軟體應⽤ 142 Loss Function 我們會⽤⼀個叫 loss function 的, 計算訓練資料中, 我們的神經

    網路輸出和正確答案有多⼤的差 距。
 
 ⾃然我們希望 loss function 的 值是越⼩越好。
  3. 數學軟體應⽤ 143 Loss Function 假設我們有訓練資料 {(x 1 , y 1

    ), (x 2 , y 2 ), …, (x k , y k )} 意思是輸入 , 正確答案應該是 。 x i y i f 輸入 輸出 x i y i
  4. 數學軟體應⽤ 144 Loss Function 輸入 輸出 x i ̂ y

    i f θ f θ (x i ) = ̂ y i 任何⼀組參數 , 就會給定⼀個函數 。這個函數 對任意的輸入 都會給出⼀個值 。 θ f θ f θ x i ̂ y i
  5. 數學軟體應⽤ 145 Loss Function 輸入 輸出 x i ̂ y

    i f θ f θ (x i ) = ̂ y i 我們當然希望神經網路給出的 , 和正確答案 差距是越⼩越好! ̂ y i y i y i 正確答案 看差多遠
  6. 數學軟體應⽤ 146 Loss Function L(θ) = 1 2 k ∑

    i=1 ∥y i − f θ (x i )∥2 Loss function 就是計算神經網路給的答 案, 和正確答案差距多少的函數。例如說 以下是常⾒的 loss function: 這什麼啊!?
  7. 數學軟體應⽤ 147 Loss Function L(θ) = 1 2 k ∑

    i=1 ∥y i − f θ (x i )∥2 其實就是計算和正確答案的差距! 我們希望誤差 越⼩越好! 正確答案 函數學習機 給的答案
  8. 數學軟體應⽤ 149 參數調整 記得 loss function 是所有權 和偏值 等等參數的函數。 L

    w 1 , w 2 , b 1 , … 我們來破解函 數學習機學習 的秘密!
  9. 數學軟體應⽤ 158 切線斜率炫炫的符號 在 點的切線斜率符號是這樣: w = a 對任意的 點來說,

    我們寫成函數形 式是這樣: w L′ (w) = dL dw L′ (a) 我們在微積分很會 算這些!
  10. 數學軟體應⽤ 159 往 (局部) 極⼩移動! 在 我們可以調整新的 值為: w =

    a w a − L′ (a) 對任意的 點來說, 我們會有這樣⼦ 的公式去調整 的值。 w w w − dL dw 是不是真的可以 呢? 有點緊張。
  11. 數學軟體應⽤ 162 Learning Rate w − η dL dw 為了不要跑過頭,

    我們 不要⼀次調太⼤, 我們 會乘上⼀個⼩⼩的數, 叫 Learning Rate。
  12. 數學軟體應⽤ 165 假裝只有⼀個參數 L(w 1 , w 2 , b

    1 ) = (b 1 + 2w 1 − w 2 − 3)2 假設我們的神經網路有三個參數 , ⽽ loss function 長這樣: w 1 , w 2 , b 1 設我們把這個神經網路初始化, 各參數的值 如下: w 1 = 1,w 2 = − 1,b 1 = 2 假設⼀個簡單、多 參數的狀況!
  13. 數學軟體應⽤ 167 假裝只有⼀個參數 中只要保留 這 個變數, 其他值都直 接代入! 於是 當場

    只剩⼀個參數! L w 1 L L(w 1 , w 2 , b 1 ) = (b 1 + 2w 1 − w 2 − 3)2 w 1 = 1,w 2 = − 1,b 1 = 2 L w1 (w 1 ) = L(w 1 , − 1,2) = 4w2 1
  14. 數學軟體應⽤ 172 Gradient 梯度 w 1 w 2 b 1

    − η ∂L ∂w1 ∂L ∂w2 ∂L ∂b1 這關鍵的向 我們稱為 的梯度 (gradient), 記為: L ∇L
  15. 數學軟體應⽤ 173 Gradient Descent w 1 w 2 b 1

    − η∇L 調整參數的公式就可以寫成這 樣, 我們稱這個⽅法為: Gradient Descent
  16. 數學軟體應⽤ 180 確立函數的樣⼦ 暗黑魔法 { } 784 10 神經網路 函數學習機

    輸入是⼀張 的圖, 「拉平」是 784 維的向 。 輸出 10 個類別, 也就是 10 維的向 。 28 × 28
  17. 數學軟體應⽤ 182 Softmax a b c 很⾃然我們會這麼做: ea eb ec

    毎個數字經 指數轉換 按比例 ea/T eb/T ec/T T = ea + eb + ec 這就叫 softmax
  18. 數學軟體應⽤ 184 02 打造深度學習函數學習機的函式 做 one-hot encoding 的⼯具 Sequential: 標準打造⼀台深度學習

    函數學習機的⽅式。 Dense: 做全連結的隱藏層。 SGD: 標準的 gradient descent。
  19. 數學軟體應⽤ 185 03 讀入 MNIST 數據集 讀入 MNIST 數據 集,

    注意訓練資 料、測試資料已幫 我們準備好!
  20. 數學軟體應⽤ 187 Step 1: 打造我們的函數學習機 假設我們做兩個隱藏層, 都是 100 個神經元、都⽤ ReLU

    做 activation function。 輸出 10 維, 做 softmax。 就差不多只是告訴電 腦, 我們怎麼設計神 經網路的就結束了!
  21. 數學軟體應⽤ 188 Step 1: 打造我們的函數學習機 loss: ⽤哪個 loss function。 optimizer:

    我們⽤ SGD, 設 learning rate。 metrics: 這裡是顯⽰⽬前正確率。