1.回归问题
J
=
1
2
N
∑
i
=
1
N
∥
y
i
−
y
^
∥
2
J = \frac{1}{2N}\sum_{i=1}^{N} \|y^i - \hat{y} \|^2
J=2N1i=1∑N∥yi−y^∥2
∂
J
∂
y
i
=
1
N
∑
i
=
1
N
(
y
i
−
y
^
)
\frac{ \partial J}{\partial y^i} = \frac{1}{N}\sum_{i=1}^{N}{(y^i - \hat{y})}
∂yi∂J=N1i=1∑N(yi−y^)
2.分类问题
先对y进行softmax:
S
k
=
e
y
k
∑
i
=
1
n
e
y
i
S_k = \frac{e^{y_{k}}}{\sum_{i=1}^{n}{e^{y_i}}}
Sk=∑i=1neyieyk
以单个样本为例,网络输出的
S
^
(
s
1
,
s
2
,
.
.
.
,
s
n
)
\hat{S} (s_1,s_2,...,s_n)
S^(s1,s2,...,sn)为一个概率分布,n是类别个数;该样本的实际标签一般one-hot形式,
S
(
0
,
0
,
.
.
.
,
1
,
0
,
0
,
.
.
0
)
S (0,0,...,1,0,0,..0)
S(0,0,...,1,0,0,..0)可以看做是(硬)概率分布。
可以考虑KL散度来计算损失。其实,直接根据交叉熵就可以写出损失函数:
这里只考虑单个样本,方便简化运算。
J
=
∑
k
=
1
n
S
l
o
g
S
^
=
−
l
o
g
(
s
k
)
=
−
l
o
g
(
e
y
k
∑
i
=
0
n
−
1
e
y
i
)
J = \sum_{k=1}^{n}{Slog\hat{S}} \\ = - log (s_k) =-log(\frac{e^{y_{k}}}{\sum_{i=0}^{n-1}{e^{y_i}}})
J=k=1∑nSlogS^=−log(sk)=−log(∑i=0n−1eyieyk)
对
y
k
y_k
yk求导:
∂
J
∂
y
k
=
∂
∂
y
k
{
l
o
g
(
∑
i
=
0
n
−
1
e
y
i
)
−
y
k
}
=
e
y
k
∑
i
=
0
n
−
1
e
y
i
−
1
\frac{ \partial J}{\partial y_k} = \frac{\partial }{\partial y_k}\{{log (\sum_{i=0}^{n-1}e^{y_i}}) - y_k \} = \frac{e^{y_{k}}}{\sum_{i=0}^{n-1}{e^{y_i}}} - 1
∂yk∂J=∂yk∂{log(i=0∑n−1eyi)−yk}=∑i=0n−1eyieyk−1
即可以写成 :
∂
J
∂
y
k
=
s
k
−
δ
(
i
=
k
)
,
δ
=
1
,
当
i
=
k
时
,
δ
=
0
,
当
i
!
=
k
时
\frac{ \partial J}{\partial y_k} = s_k - \delta(i=k) , \\ \delta =1,当i=k时,\delta=0, 当i!=k时
∂yk∂J=sk−δ(i=k),δ=1,当i=k时,δ=0,当i!=k时
最终写成向量的形式(单个样本形式):
∂
J
∂
y
=
S
^
−
S
\frac{ \partial J}{\partial y} = \hat{S}-S
∂y∂J=S^−S