自我介绍
最懂保险的算法工程师,致力于保险理念的推广,让每个程序员在35岁时都能够免除后顾之忧。通过构建保险组合,避免中年因病致穷,苦攒多年积蓄全部花费在医疗上,因此返贫。有兴趣的朋友后台私信加V:Archangle3_14,加不上可私信,常驻深圳,可约面谈。
交叉熵损失函数+sigmoid激活函数的链式求导
如果损失函数是交叉熵损失(entropy loss),通常用于分类任务中评估模型的输出与实际标签之间的差异。假设我们处理的是一个二分类问题,使用的输出层激活函数是sigmoid函数,那么交叉熵损失函数可以表达为:
交叉熵损失函数
对于一个给定的样本,交叉熵损失定义为:
L
=
−
(
y
log
(
y
^
)
+
(
1
−
y
)
log
(
1
−
y
^
)
)
L = -\left(y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})\right)
L=−(ylog(y^)+(1−y)log(1−y^))
其中
y
y
y 是实际的标签,
y
^
\hat{y}
y^ 是模型的预测概率,这里
y
^
=
σ
(
z
)
\hat{y} = \sigma(\mathbf{z})
y^=σ(z),且
z
\mathbf{z}
z 是隐藏层通过激活函数之前的线性输出。
链式求导
为了应用链式求导,我们首先计算
∂
L
∂
y
^
\frac{\partial L}{\partial \hat{y}}
∂y^∂L:
∂
L
∂
y
^
=
−
(
y
y
^
−
1
−
y
1
−
y
^
)
\frac{\partial L}{\partial \hat{y}} = -\left(\frac{y}{\hat{y}} - \frac{1 - y}{1 - \hat{y}}\right)
∂y^∂L=−(y^y−1−y^1−y)
然后,考虑
y
^
=
σ
(
z
)
\hat{y} = \sigma(\mathbf{z})
y^=σ(z),其导数
σ
′
(
z
)
=
σ
(
z
)
(
1
−
σ
(
z
)
)
\sigma'(z) = \sigma(z)(1 - \sigma(z))
σ′(z)=σ(z)(1−σ(z)),所以我们有:
∂
y
^
∂
z
=
σ
(
z
)
(
1
−
σ
(
z
)
)
=
y
^
(
1
−
y
^
)
\frac{\partial \hat{y}}{\partial \mathbf{z}} = \sigma(\mathbf{z})(1 - \sigma(\mathbf{z})) = \hat{y}(1 - \hat{y})
∂z∂y^=σ(z)(1−σ(z))=y^(1−y^)
现在,利用链式法则计算
∂
L
∂
z
\frac{\partial L}{\partial \mathbf{z}}
∂z∂L:
∂
L
∂
z
=
∂
L
∂
y
^
⋅
∂
y
^
∂
z
=
(
−
y
y
^
+
1
−
y
1
−
y
^
)
⋅
y
^
(
1
−
y
^
)
\frac{\partial L}{\partial \mathbf{z}} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial \mathbf{z}} = \left(-\frac{y}{\hat{y}} + \frac{1 - y}{1 - \hat{y}}\right) \cdot \hat{y}(1 - \hat{y})
∂z∂L=∂y^∂L⋅∂z∂y^=(−y^y+1−y^1−y)⋅y^(1−y^)
简化上式,我们得到:
∂
L
∂
z
=
−
y
(
1
−
y
^
)
+
(
1
−
y
)
y
^
=
y
^
−
y
\frac{\partial L}{\partial \mathbf{z}} = -y(1 - \hat{y}) + (1 - y)\hat{y} = \hat{y} - y
∂z∂L=−y(1−y^)+(1−y)y^=y^−y
最终,根据
z
=
W
x
+
b
\mathbf{z} = \mathbf{Wx} + \mathbf{b}
z=Wx+b,我们得到权重
W
\mathbf{W}
W 和偏置
b
\mathbf{b}
b 的梯度:
∂
L
∂
W
=
(
y
^
−
y
)
x
T
\frac{\partial L}{\partial \mathbf{W}} = (\hat{y} - y) \mathbf{x}^T
∂W∂L=(y^−y)xT
∂
L
∂
b
=
y
^
−
y
\frac{\partial L}{\partial \mathbf{b}} = \hat{y} - y
∂b∂L=y^−y
总结
这种方式提供了更新权重 W \mathbf{W} W 和偏置 b \mathbf{b} b 的直接方法,适用于通过梯度下降方法优化二分类问题的神经网络模型。这种推导清楚地显示了从损失函数到模型权重的依赖关系,也是反向传播算法中的关键步骤。