深度学习
Steps:神经网络 → \to →模型评估 → \to →择优
神经网络
神经元
完全连接前馈神经网络
- 中间层:hidden layer
- deep:即hidden layer层数多
层数过多时,用矩阵运算更高效。
用矩阵表示运算
多层时,
y
=
f
(
w
l
.
.
.
f
(
w
2
f
(
w
1
x
+
b
1
)
+
b
2
)
.
.
.
+
b
l
)
y=f(w^l ... f(w^2f(w^1x+b^1)+b^2)...+b^l)
y=f(wl...f(w2f(w1x+b1)+b2)...+bl)
模型评估
C
(
y
,
y
^
)
=
−
∑
i
y
i
^
l
n
y
i
C(y,\hat{y})=-\sum _i \hat{y_i}lny_i
C(y,y^)=−∑iyi^lnyi
→
\to
→
L
=
∑
n
=
1
N
C
n
L=\sum_{n=1}^N C^n
L=∑n=1NCn
评估标准:
m
i
n
L
min \ L
min L
择优
方法:梯度下降
- 普遍性原理:任何一个函数都可以用一层hidden layer的神经网络来实现,只要神经元够多
反向传播算法
实质:梯度下降
可用多种框架工具来计算
x
n
→
神
经
网
络
→
y
n
↔
y
^
x^n \to 神经网络 \to y^n\leftrightarrow\hat{y}
xn→神经网络→yn↔y^
记
y
n
y^n
yn和
y
^
\hat{y}
y^之间的差距为
C
n
C^n
Cn
L
(
θ
)
=
∑
n
C
n
(
θ
)
⇒
∂
L
(
θ
)
∂
w
=
∑
n
∂
C
n
(
θ
)
∂
w
L(\theta) =\sum_n C^n(\theta)\Rightarrow\frac{\partial L(\theta)}{\partial w}=\sum_n \frac{\partial C^n(\theta)}{\partial w}
L(θ)=∑nCn(θ)⇒∂w∂L(θ)=∑n∂w∂Cn(θ)
记 z = w 1 x 1 + w 2 x 2 + b z=w_1x_1+w_2x_2+b z=w1x1+w2x2+b
∂ C ∂ w = ? ∂ C ∂ z ∂ z ∂ w \frac{\partial C}{\partial w}=? \frac{\partial C}{\partial z}\frac{\partial z}{\partial w} ∂w∂C=?∂z∂C∂w∂z
其中 ∂ z ∂ w \frac{\partial z}{\partial w} ∂w∂z属于前向传递部分, ∂ C ∂ z \frac{\partial C}{\partial z} ∂z∂C属于后向传递部分
前向传递部分
对应权重前面是谁,该偏微分的结果就是谁(即权重对应的输入)
后向传递部分
∂
C
∂
z
=
σ
′
(
z
)
[
w
3
∂
C
∂
z
′
+
w
4
∂
C
∂
z
′
′
]
\frac{\partial C}{\partial z}=\sigma'(z)[w_3\frac{\partial C}{\partial z'}+w_4\frac{\partial C}{\partial z''}]
∂z∂C=σ′(z)[w3∂z′∂C+w4∂z′′∂C]
情形一:若 z ′ z' z′, z ′ ′ z'' z′′已经是输出端
z ′ → y 1 z' \to y_1 z′→y1, z ′ ′ → y 2 z''\to y_2 z′′→y2
∂ C ∂ z ′ = ∂ C ∂ y 1 ∂ y 1 ∂ z ′ \frac{\partial C}{\partial z'}=\frac{\partial C}{\partial y_1}\frac{\partial y_1}{\partial z'} ∂z′∂C=∂y1∂C∂z′∂y1
∂ C ∂ z ′ ′ = ∂ C ∂ y 2 ∂ y 2 ∂ z ′ ′ \frac{\partial C}{\partial z''}=\frac{\partial C}{\partial y_2}\frac{\partial y_2}{\partial z''} ∂z′′∂C=∂y2∂C∂z′′∂y2
情形二:若 z ′ z' z′, z ′ ′ z'' z′′还不是输出端
从output端往前计算偏微分,逐层计算
每一层都按照如下情形计算
∂
C
∂
z
=
σ
′
(
z
)
[
w
3
∂
C
∂
z
′
+
w
4
∂
C
∂
z
′
′
]
\frac{\partial C}{\partial z}=\sigma'(z)[w_3\frac{\partial C}{\partial z'}+w_4\frac{\partial C}{\partial z''}]
∂z∂C=σ′(z)[w3∂z′∂C+w4∂z′′∂C]