均方代价函数及不足
均方代价函数:
L=12N∑x||y(x)−a2(x)||2 L = 1 2 N ∑ x | | y ( x ) − a 2 ( x ) | | 2预期:NN在训练时,如果预测值与实际值误差越大,那么反向传播过程中,各种参数的调整的幅度就要更大,从而使训练更快收敛, 然而如果使用均方误差函数,实际有可能误差越大,参数调整的幅度可能更小,训练更缓慢。
∂L∂w=(a−y)σ‘x∂L∂b=(a−y)σ‘ ∂ L ∂ w = ( a − y ) σ ‘ x ∂ L ∂ b = ( a − y ) σ ‘
w w 和的梯度跟激活函数的梯度成正比。与期望不符合,若y=0,实际输出为0.8、0.9时,sigmoid在0.9时梯度比0.8低
交叉熵代价函数
- 交叉熵定义:
L=−1N∑x[ylna+(1−y)ln(1−a)]∂L∂wj=−1N∑x(yσ(z)−(1−y)1−σ(z))∂σ∂wj=−1N∑x(yσ(z)−(1−y)1−σ(z))σ‘(z)xj=−1N∑x(yσ(z)−(1−y)1−σ(z))(σ(z)−y)=1N∑xxj(σ(z)−y)
L
=
−
1
N
∑
x
[
y
l
n
a
+
(
1
−
y
)
l
n
(
1
−
a
)
]
∂
L
∂
w
j
=
−
1
N
∑
x
(
y
σ
(
z
)
−
(
1
−
y
)
1
−
σ
(
z
)
)
∂
σ
∂
w
j
=
−
1
N
∑
x
(
y
σ
(
z
)
−
(
1
−
y
)
1
−
σ
(
z
)
)
σ
‘
(
z
)
x
j
=
−
1
N
∑
x
(
y
σ
(
z
)
−
(
1
−
y
)
1
−
σ
(
z
)
)
(
σ
(
z
)
−
y
)
=
1
N
∑
x
x
j
(
σ
(
z
)
−
y
)
同理
∂L∂b=1N∑x(σ(z)−y)
∂
L
∂
b
=
1
N
∑
x
(
σ
(
z
)
−
y
)
为什么会想到交叉熵?
在均方误差函数下:
∂L∂b=(a−y)σ′(z)
∂
L
∂
b
=
(
a
−
y
)
σ
′
(
z
)
想找到:
∂L∂b=a−y
∂
L
∂
b
=
a
−
y
又有
∂L∂b=∂L∂a⋅∂a∂z⋅∂z∂b=∂L∂a⋅σ′(z)
∂
L
∂
b
=
∂
L
∂
a
⋅
∂
a
∂
z
⋅
∂
z
∂
b
=
∂
L
∂
a
⋅
σ
′
(
z
)
即找
∂L∂a⋅σ′(z)=(a−y)
∂
L
∂
a
⋅
σ
′
(
z
)
=
(
a
−
y
)
对上式两边积分得
L=−[ylna+(1−y)ln(1−a)]+C
L
=
−
[
y
l
n
a
+
(
1
−
y
)
l
n
(
1
−
a
)
]
+
C
积分公式
∫1(1−a)da=∫11−a+1ada
∫
1
(
1
−
a
)
d
a
=
∫
1
1
−
a
+
1
a
d
a