放學社課-深度學習

張嘉崴

1. 學期簡介

1. 學期簡介

講師簡介

  • 225 張嘉崴
  • 熱愛深度學習
  • C++手刻神經網路
  • 毛語錄生成器
  • FB:張嘉崴

1. 學期簡介

課程簡介

每週三 18:00-19:00,遇段考停課

理論為主,實作為輔

Pytorch 

1. 學期簡介

課表

時間 課程內容
1 課程簡介
2-5 神經網路&梯度下降&反向傳播
6-8 卷積神經網路(CNN)&Pytorch實作
9 自動編碼機(Autoencoder)
10 各種神奇的網路
11 生成對抗網路(GAN)
12 遞迴神經網路(RNN)&下學期預告

1. 學期簡介

能力需求

  • Python
  • 加法
  • 乘法

SoloLearn

1. 學期簡介

能力奢求

  • 簡單線性代數
  • 微分鏈鎖率
  • 認識神經網路

3Blue1Brown

1. 學期簡介

什麼是機器學習?

機器

有用的機器

資料

機器學習

支持向量機

迴歸模型

神經網路

氣溫、濕度

風速、雨量

熱食部營業額

新增病例數

隔天是否下雨

 

判斷隔天會不會下雨

1. 學期簡介

什麼是深度學習?

if model.name[-2:] == '網路':
    print('深度學習')
else:
    print('機器學習')

1. 學期簡介

Google colab

1. 學期簡介

來玩吧

2. 乘法&神經網路

2.2 乘法

乘法

我來機器學習,

你給我上乘法??

乘法 \(\rightarrow\) 相似程度

2.2 乘法

怎麼說?

1\times1 = 1
-1\times-1 = 1
1\times-1 = -1
-1\times1 = -1

2.2 乘法

相似程度

\(A=[-2,-1,1,1,1]\)

\(B=[-1,-2,1,1,1]\)

\(C=[2,1,-1,1,-1]\)

\(A \cdot B = 7\)

\(A \cdot C = -6\)

2.2 乘法

圖片相似程度

2.2 乘法

圖片相似程度

2.2 乘法

圖片相似程度

0.1

1.7

-0.4

-0.5

0.1

-0.2

-0.7

0.9

-1.1

0.3

0.0

0.1

0.4

-0.8

1.9

-0.4

-0.3

-0.1

0.1

1.4

2.2 乘法

1
2
3
4
5
6
7
8
9
\rightarrow
1
2
3
4
5
6
7
8
9

類別0

類別9

類別1

類別5

...

...

2.2 乘法

1
2
3
4
5
6
7
8
9

類別0

類別9

類別1

類別5

...

...

 輸入 input

 權重 weight

 輸出 output

a^{(1)} = W a^{(0)}

2.3 神經網路

幾乎是神經網路

a^{(1)} = W a^{(0)} + b

bias偏值

0.5
0.314
-0.271
-0.8
0.2
-0.1
0.47
-0.6
0.9
0.6
-0.3
-0.3
0.57
0.44
0.38
0.01
0.03
-0.02

2.3 神經網路

神經網路

a^{(1)} =\sigma ( W a^{(0)} + b)
0.5
0.314
-0.271
-0.8
0.2
-0.1
0.47
-0.6
0.9
0.6
-0.3
-0.3
0.57
0.44
0.38
0.01
0.03
-0.02
\sigma(0.57)
\sigma(0.44)
\sigma(0.38)

2.3 神經網路

\(\sigma\)函數

\sigma(100)\approx1
\sigma(-100)\approx 0
\sigma(0) = 0.5
\sigma(x)=\frac{1}{1+e^{-x}}
e\approx 2.718

2.3 神經網路

神經網路

  1. 把圖片變數字
  2. 做乘法
  3. 加入偏值
  4. 放入\(\sigma\)函數
a^{(1)} =\sigma ( W a^{(0)} + b)

2.4 實作

Numpy

import numpy as np

a = np.array([0.1,0.2,0.3])
w = np.array([[0.1,0.2,0.3],[0.4,0.5,0.6],[0.7,0.8,0.9]])
b = np.array([0,0,-1])
print(w@a)

a2 = w@a+b
print(a2)

def sigmoid(x):
    return 1 / (1+np.exp(-x))
    
print(sigmoid(a2))

2.5 深度神經網路

深度神經網路

為何要多層?

2.5 深度神經網路

為何要多層?

2.5 深度神經網路

為何要多層?

2.5 深度神經網路

為何要多層?

輸入(像素)\(\rightarrow\)簡單特徵(小線段)\(\rightarrow\)複雜特徵(圓圈、直線)\(\rightarrow\)類別

輸入(像素)\(\rightarrow\)類別

2.5 深度神經網路

深度神經網路的數學

2.5 深度神經網路

深度神經網路的數學

a^{(1)}=\sigma(z^{(1)})
z^{(1)} =W^{(1)} a^{(0)} + b^{(1)}
a^{(0)}
a^{(1)}
a^{(2)}
a^{(3)}
a^{(2)}=\sigma(z^{(2)})
z^{(2)} =W^{(2)} a^{(1)} + b^{(2)}
a^{(3)}=\sigma(z^{(3)})
z^{(3)} =W^{(3)} a^{(2)} + b^{(3)}

2.5 深度神經網路

總結

2.6 收尾

深度神經網路

輸入:圖片(像素值)

輸出:類別

參數:權重和偏值們

Numpy Code

2.6 收尾

3. 畢氏定理&Loss

3.1 畢氏定理

一維的情況

\(A(x_0)\,\,B(x_1)\)

\(d(A,B)^2=|x_1-x_0|^2\)

 

=(x_1-x_0)^2

3.1 畢氏定理

二維的情況

\(A(x_0,y_0)\,\,B(x_1,y_1)\)

\(d(A,B)^2=(x_1-x_0)^2+(y_1-y_0)^2 \)

3.1 畢氏定理

三維的情況

\(A(x_0,y_0,z_0)\,\,B(x_1,y_1,z_1)\)

\(d(A,B)^2=\)

\((x_1-x_0)^2+(y_1-y_0)^2+(z_1-z_0)^2\)

3.1 畢氏定理

\(n\)維的情況

\(A(x_0,y_0,z_0...)\,\,B(x_1,y_1,z_1...)\)

\(d(A,B)^2=\)

\((x_1-x_0)^2+(y_1-y_0)^2+(z_1-z_0)^2+...\)

\(\sum{x^2}\)

3.2 損失函數

問題

3.2 損失函數

損失函數

評估神經網路表現如何

3.2 損失函數

0.0

0.1

0.4

0.8

0.5

0.4

0.3

0.1

0.1

0.9

亞洲父母法

錯!

0.0

0.9

0.1

0.0

0.0

0.2

0.1

0.91

0.1

0.2

錯!

3.2 損失函數

0.0

0.1

0.4

0.8

0.5

0.4

0.3

0.1

0.1

0.9

十維畢氏定理

0.0

0.9

0.1

0.0

0.0

0.2

0.1

0.91

0.1

0.2

0.0

1.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

1.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

距離平方2.14

距離平方0.95

3.2 損失函數

0.0

0.1

0.4

0.8

0.5

0.4

0.3

0.1

0.1

0.9

損失函數

0.0

1.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

距離平方2.14

\(\sum{(\hat y-y)^2}\)

3.2 損失函數

損失函數應用

[0,...,1,0,0]
[1,...,0,0,0]
[0,...,1,0,0]
[0,...,0,1,0]
...
[0.6,...,0.9,0.1,0.5]
[0.6,...,0.2,0.7,0.3]
[0.1,...,0.2,0.1,0.9]
[0.6,...,0.9,0.1,0.5]

分類手寫數字

找損失函數的最小值

3.2 損失函數

抽象一點

L(\theta)

損失函數:L

輸入:神經網路的所有參數 \(\theta\)

輸出:一個數字(Loss值)

參數:圖片資料庫

3.2 損失函數

函數比較

損失函數

輸入:神經網路的所有參數 \(\theta\)

輸出:一個數字(Loss值)

參數:圖片資料庫

深度神經網路

輸入:圖片資料庫

輸出:類別

參數:神經網路的所有參數\(\theta\)

3.3 實作

實作

def loss_function(output,label):
    loss = np.sum((output-label)**2,axis = -1)
    all_loss = np.mean(loss)
    return all_loss

3.4 搜尋空間

簡單一點

y = wx+b

兩個參數、三個維度

3.4 搜尋空間

7850+1維的空間

784個輸入

10個輸出

784X10個權重

10個偏值

3.5 課後

Matplotlib

4. 梯度下降

想像一下

4.1 宏觀的梯度

4.1 宏觀的梯度

海拔很高

看不到路

只能感覺腳下坡度

朝最斜的地方走去

神經網路Loss很高

不知道其他地方的Loss

算出梯度

背對該方向走去

4.1 宏觀的梯度

4.2 梯度

梯度

點A的x方向斜率為-0.416

點A的y方向斜率為1.248

\nabla_{f(x,y)} = \langle-0.416,1.248\rangle
f(x,y)
\langle \frac{\partial f}{\partial x},\frac{\partial f}{\partial y}\rangle

4.2 梯度

梯度

往梯度方向走,上升最快

往負梯度方向走,下降最快

x \leftarrow x - \frac{\partial}{\partial x}
y \leftarrow y - \frac{\partial}{\partial y}
x \leftarrow x - \mu\frac{\partial}{\partial x}
y \leftarrow y - \mu\frac{\partial}{\partial y}

4.2 梯度

神經網路的梯度

7000多維的山?

y = \sigma(wa+b)

2個參數 \(\rightarrow\) 3維的山

(w,b,L)

4.3 微觀的梯度

7000多維的山

把每個變數想成一個滑桿

4.3 微觀的梯度

神經網路的梯度

把梯度想成敏感度

4.4 梯度計算

Warning

4.4 梯度計算

神經網路計算樹

a^{(2)}
w^{(2)}
b^{(2)}
a^{(1)}
w^{(1)}
a^{(0)}
b^{(1)}
L
y
a^{(3)}
b^{(3)}
w^{(3)}

神經網路計算樹

a^{(2)}
L
y
a^{(3)}
b^{(3)}
w^{(3)}

4.4 梯度計算

a^{(2)}
L
y
a^{(3)}
b^{(3)}
w^{(3)}
z^{(3)}

神經網路計算樹

4.4 梯度計算

a^{(2)}
L
y
a^{(3)}
b^{(3)}
w^{(3)}
z^{(3)}

求\(w^{(3)}\)對\(L\)的靈敏度

\(w^{(3)}\) 對\(z^{(3)}\)的靈敏度

\(z^{(3)}\) 對\(a^{(3)}\)的靈敏度

\(a^{(3)}\) 對\(L\)的靈敏度

\times
\times
\frac{\partial L}{\partial w^{(3)}}
\frac{\partial z^{(3)}}{\partial w^{(3)}}
\frac{\partial a^{(3)}}{\partial z^{(3)}}
\frac{\partial L}{\partial a^{(3)}}

鏈鎖率

4.4 梯度計算

a^{(2)}
L
y
a^{(3)}
b^{(3)}
w^{(3)}
z^{(3)}
\frac{\partial L}{\partial w^{(3)}}
\frac{\partial z^{(3)}}{\partial w^{(3)}}
\frac{\partial a^{(3)}}{\partial z^{(3)}}
\frac{\partial L}{\partial a^{(3)}}
=
\frac{\partial L}{\partial b^{(3)}}
\frac{\partial z^{(3)}}{\partial b^{(3)}}
\frac{\partial a^{(3)}}{\partial z^{(3)}}
\frac{\partial L}{\partial a^{(3)}}
=
\frac{\partial L}{\partial a^{(2)}}
\frac{\partial z^{(3)}}{\partial a^{(2)}}
\frac{\partial a^{(3)}}{\partial z^{(3)}}
\frac{\partial L}{\partial a^{(3)}}
=

鏈鎖率

4.4 梯度計算

\frac{\partial L}{\partial a^{(2)}}
\frac{\partial z^{(3)}}{\partial a^{(2)}}
\frac{\partial a^{(3)}}{\partial z^{(3)}}
\frac{\partial L}{\partial a^{(3)}}
=
a^{(2)}
w^{(2)}
b^{(2)}
a^{(1)}
w^{(1)}
a^{(0)}
b^{(1)}
L
y
a^{(3)}
b^{(3)}
w^{(3)}
\frac{\partial L}{\partial w^{(2)}}
\frac{\partial z^{(2)}}{\partial w^{(2)}}
\frac{\partial a^{(2)}}{\partial z^{(2)}}
\frac{\partial L}{\partial a^{(2)}}
=
\frac{\partial L}{\partial a^{(1)}}
\frac{\partial z^{(2)}}{\partial a^{(1)}}
\frac{\partial a^{(2)}}{\partial z^{(2)}}
\frac{\partial L}{\partial a^{(2)}}
=

4.4 梯度計算

多神經元的梯度

\frac{\partial L}{\partial a_0^{(1)}}
\frac{\partial L}{\partial a_2^{(1)}}
\frac{\partial L}{\partial a_1^{(1)}}
a_0^{(0)}
a_1^{(0)}
a_2^{(0)}
a_3^{(0)}
w_{ij}^{(1)}
i
j
\frac{\partial L}{\partial w_{12}^{(1)}} = \frac{\partial L}{\partial a_0^{(1)}} \frac{\partial a_0^{(1)}}{\partial w_{12}^{(1)}}
\frac{\partial L}{\partial b_{1}^{(1)}} = \frac{\partial L}{\partial a_0^{(1)}} \frac{\partial a_0^{(1)}}{\partial b_{1}^{(1)}}
\frac{\partial L}{\partial a_{1}^{(0)}} = ?

4.4 梯度計算

多神經元的梯度

\frac{\partial L}{\partial a_0^{(1)}}
\frac{\partial L}{\partial a_2^{(1)}}
\frac{\partial L}{\partial a_1^{(1)}}
a_0^{(0)}
a_1^{(0)}
a_2^{(0)}
a_3^{(0)}
w_{ij}^{(1)}
i
j
\frac{\partial L}{\partial a_0^{(1)}} \frac{\partial a_0^{(1)}}{\partial a_{1}^{(0)}}
\frac{\partial L}{\partial a_{1}^{(0)}} =
\frac{\partial L}{\partial a_1^{(1)}} \frac{\partial a_1^{(1)}}{\partial a_{1}^{(0)}}
\frac{\partial L}{\partial a_2^{(1)}} \frac{\partial a_2^{(1)}}{\partial a_{1}^{(0)}}

深度學習精隨

4.5 梯度下降

w^{(3)}\leftarrow w^{(3)} - \mu \frac{\partial L}{\partial w^{(3)}}
\theta \leftarrow \theta - \mu \nabla L(\theta)

4.5 梯度下降

3Blue1Brown

4.6 課後

Pytorch -tensor

4.6 課後

Pytorch

def loss_func(out,lbl):
    loss = torch.sum((out-lbl)**2,axis = -1)
    all_loss = torch.mean(loss,axis = -1)
    return all_loss

learning_rate = 0.1
out = torch.tensor([[0.1,0.1,0.1],[0.1,1.0,0.1]],requires_grad = True)
lbl = torch.tensor([[1.0,0.0,0.0],[0.0,1.0,0.0]],requires_grad = True)
L = loss_func(out,lbl)
print(L)
L.backward()

out = out - learning_rate * out.grad
out.grad = None
lbl.grad = None
L = loss_func(out,lbl)
print(L)

5. 神經網路實作

5.1 激勵函數

激勵函數

其他激勵函數

  • Leaky ReLU
  • Swish
  • Softmax
  • ELU

5.1 激勵函數

softmax

S(x_i) = \frac{e^{x_i}} {\sum\limits_{j = 0}^{n-1} e^{x_j}}

5.1 激勵函數

直覺

.7
.2
10
-.9

輸入

讓結果的和為1

(機率)

\frac{a}{a+b+c+d}
.07
.02
1
-.09
a+b+c+d = 10

輸出

5.1 激勵函數

修正的直覺

.7
.2
10
-.9

輸入

0.0000
0.9999

輸出

2
1.2
22026
0.4
0.0000
0.0000
\frac{a}{a+b+c+d}
e^x

5.1 激勵函數

softmax

S(x_i) = \frac{e^{x_i}} {\sum\limits_{j = 0}^{n-1} e^{x_j}}

5.2 損失函數

cross entropy

L(\hat y,y) =- \sum \limits_{i=0}^{n-1}y_i \,log_2(\hat y_i)
  • \(y\)標籤
  • \(\hat y\)輸出的機率
  • \( n\)類別數

5.2 損失函數

栗子

L(\hat y,y) =- \sum \limits_{i=0}^{n-1}y_i \,log_2(\hat y_i)
輸出的機率 取對數 標籤 Loss
0.66 -0.416 0 0
0.33 -1.108 1 1.108
0.01 -4.605 0 0
\sum
1
1.108

5.2 訓練細節

不裝Batch

w
w
...

上萬個

不穩定

效率不佳

5.2 訓練細節

裝Batch

w
...

十個百個

穩定

有效率

5.2 訓練細節

overfitting

背答案

5.2 訓練細節

train&val

TRAIN:寫作業

VAL:小考

5.2 訓練細節

TEST

實際上戰場

5.2 訓練細節

例子

5.3 Optimizer

SGD

w
\frac{\partial L}{\partial w}
-\mu
w\leftarrow w-\mu\frac{\partial L}{\partial w}

5.3 Optimizer

momentum

w\leftarrow w-\mu\frac{\partial L}{\partial w}

SGD:

速度+阻力的概念

v\leftarrow v-\mu\frac{\partial L}{\partial w}
v\leftarrow \beta v-\mu\frac{\partial L}{\partial w}
w \leftarrow w+v

5.3 Optimizer

栗子

v\leftarrow \beta v-\mu\frac{\partial L}{\partial w}
w \leftarrow w+v
w v 偏導數
0.1 0 0.01
0.09 -0.01 0.01
0.07 -0.02 0.01
0.04 -0.03 0.01
0.0 -0.04 0.01

5.3 Optimizer

更強的optimizer

  • AdaGrad
  • Adam(最常用的)
  • RAdam

5.4 其他東西

  • Dropout
  • Batchnorm

5.5 課後

pytorch神經網路

6. 卷積神經網路

6.1 神經網路的問題

神經網路的問題

9

9

6.2 卷積

6.3 各種參數

  • stride
  • padding

6.4 多多實作

Pytorch CNN

6.4 恭喜

恭喜

7. Pytorch實作

7.1 複習

7.2 實作

8. 自動編碼機

8.1 自動編碼機

What

Encoder

Decoder

Code

AutoEncoder

8.1 自動編碼機

how

8.1 自動編碼機

how

class Encoder(nn.Module):
  def __init__(self):
    self.l1 = nn.Linear(784,300)
    self.l2 = nn.Linear(300,100)
    self.l3 = nn.Linear(100,30)
    self.l4 = nn.Linear(30,10)
    self.activation = nn.ReLU()
  def forward(self,x):
    x = self.activation(self.l1(x))
    x = self.activation(self.l2(x))
    x = self.activation(self.l3(x))
    code = self.l4(x)
    return code
class Decoder(nn.Module):
  def __init__(self):
    self.l1 = nn.Linear(10,30)
    self.l2 = nn.Linear(30,100)
    self.l3 = nn.Linear(100,300)
    self.l4 = nn.Linear(300,784)
    self.activation = nn.ReLU()
    self.last_activation = nn.Sigmoid()
  def forward(self,code):
    x = self.activation(self.l1(code))
    x = self.activation(self.l2(x))
    x = self.activation(self.l3(x))
    x = self.last_activation(self.l4(x))
    return x

8.1 自動編碼機

應用

8.2 往CNN想

CNN Autoencoder

Encoder

  • Conv / Activation
  • Conv / Activation
  • MaxPool
  • Conv / Activation
  • Conv / Activation
  • MaxPool
  • ......

Code

8.2 往CNN想

CNN Autoencoder

DEcoder

  • 反的卷積??
  • 反的池化??

轉置卷積

8.2 往CNN想

用途

8.2 往CNN想

Code

比利

比利

背景

比利

偵測

分割

分類

9. 卷積神經網路應用

9.1 複習

我們怎麼用CNN?

比利

CNN

9.2 Model-pretraining

model-pretraining

CNN

CNN

比利

9.2 Model-pretraining

how

vgg-16

特徵擷取留下,其他捨棄

9.2 Model-pretraining

實作

  • vgg
  • resnet
  • densenet

9.3 圖片分割

圖片辨識

比利

圖片分割

比利

背景

9.3 圖片分割

圖片分割 naive

卷積

輸入:圖片

輸出:像素所屬類別

特徵

轉置卷積

9.3 圖片分割

轉置卷積

9.3 圖片分割

圖片分割 U-net

9.3 圖片分割

其他圖片分割

  • FCN
  • SegNet
  • DeconvNet

9.3 圖片分割

圖片偵測

比利

9.4 圖片偵測

9.4 圖片偵測

RCNN

Region Proposal

可能區塊

Selective Search

Reshape

9.4 圖片偵測

RCNN

CNN

特徵

9.4 圖片偵測

RCNN

特徵

SVM

線性回歸

邊界

類別

9.4 圖片偵測

9.4 圖片偵測

深入圖片偵測?

  • Fast-RCNN(2015)
  • Faster-RCNN(2015)
  • Mask-RCNN(2017)
  • 更多我也不知道的

9.5 Deep Dream

9.5 Deep Dream

How?

9.5 Deep Dream

How?

0.1
-0.2
0.7
0.4
  • 輸入:調整的圖片
  • 輸出:觀察的一層神經元
  • 參數:固定的神經網路
  • 更新輸入:梯度上升

9.5 Deep Dream

why?

讓偵測眼睛的神經元數值上升

讓模型前端的神經元數值上升

讓模型後端的神經元數值上升

長出風格

長出臉

9.6 後記

更多有趣的

  • Deep Style
  • Deep Fake

10. 其他神奇的網路

10.1 二元神經網路

https://open.kattis.com/problems/mnist2class

10.1 二元神經網路

Binarized Neural Networks: Training Neural Networks with Weights andActivations Constrained to+1or1

10.2 Adversarial Attack

11. 生成對抗網路

11.1 GAN

生成對抗網路

Generative

Adversarial

Network

11.1 GAN

生成對抗網路

生成網路

Generator

G

對抗

判別網路

Discriminator

D

11.1 GAN

判別網路

D

真MNIST/假MNIST

[0,1]

抓出贗品

11.1 GAN

生成網路

G

騙過判別網路

11.1 GAN

生成對抗網路

G

D

分類

11.1 GAN

抽象化

判別網路D

x : MNIST data

讓D(x)接近1

讓D(G(z))接近0

生成網路G

z : 隨機雜訊

G(z) : 生成的圖片

最小化

-log(D(x))-log(1-D(G(z)))
log(1-D(G(z)))

11.2 DcGAN

DCGAN

11.3 cgan

CGAN

11.4 cycle gan

翻譯

11.4 cycle gan

馬&斑馬

H-Z

Z-H

11.4 cycle gan

馬&斑馬

H-Z

Z-H

真斑馬

真馬

DZ

DH

11.4 cycle gan

cycle Gan

Z-H

Z-H

H-Z

H-Z

11.5 應用

圖片風格轉換

字體轉換

增加訓練資料

視覺藝術

文字圖片轉換

文字圖片轉換

圖片生成

增加解析度

11.6 code

GAN

12. 遞迴神經網路

&下集預告

12.1 下學期簡介

課程簡介

RNN

CNN

NN

RCNN

Reinforcement Learning

GAN

Model Pretraining

Auto Encoder

U Net

LSTM

Transformer

12.1 下學期簡介

課表

時間 課程內容
1-3 課程簡介&神經網路&梯度下降&反向傳播
4-5 RNN&LSTM&GRU
6-7 Reinforcement Learning
8-9 Attention&Transformer
10 雜談
11 傳承

12.2 自學資源

臺大李宏毅教授

12.2 自學資源

Kaggle

12.2 自學資源

Medium

12.2 自學資源

12.2 自學資源

Youtube

12.2 自學資源

看論文

  • Google scholar
  • IEEE
  • arXiv

12.2 自學資源

問我

考幹

投影片暫存

ˇ3.1 複習

目標

ˇ3.1 複習

神經網路

0.0

0.1

0.4

-0.8

1.9

-0.4

-0.3

-0.1

0.1

1.4

a^{(0)}
W
+b=
z^{(1)}

ˇ3.1 複習

與正解的距離

0.0

0.1

0.4

-0.8

1.9

-0.4

-0.3

-0.1

0.1

1.4

\sigma(x) \rightarrow

0.5

0.6

0.7

0.1

0.99

0.3

0.3

0.4

0.6

0.9

\leftrightarrow

0

0

0

0

1

0

0

0

0

0

z^{(1)}
a^{(1)}
y

ˇ3.1 複習

噁心的數學

a^{(1)}=\sigma(z^{(1)})
L(a^{(1)},y)
z^{(1)} =W a^{(0)} + b

ˇ3.3 深度神經網路

深度神經網路的數學

a^{(3)}
y
\leftrightarrow
Loss=(a^{(3)}-y)^2

ˇ3.3 深度神經網路

目標

分類手寫數字

找L的最小值

"沒有微分解決不了的問題,如果有,二次微分"

--牛頓沒說過

2.3 神經網路

0.1

0.1

0.4

0.5

0.5

0.2

0.7

0.8

0.4

0.3

1
2
3
4
5
6
7
8
9

類別0

類別9

類別1

類別5

...

...

0

0

0

0

1

0

0

0

0

0

Made with Slides.com