4.15 进阶:推导梯度方程
本节推导逻辑回归交叉熵损失 LCE 的梯度。先快速复习几个微积分结论。第一,ln(x) 的导数为:
dxdln(x)=x1(4.57) 第二,sigmoid 的导数具有非常简洁的形式:
dzdσ(z)=σ(z)(1−σ(z))(4.58) 最后是导数的链式法则。若复合函数 f(x)=u(v(x)),则 f(x) 的导数等于 u 对 v 的导数乘以 v 对 x 的导数:
dxdf=dvdu⋅dxdv(4.59) 首先求损失函数对单个权重 wj 的导数(每个权重以及偏置都需要计算):
∂wj∂LCE=∂wj∂−[ylogσ(w⋅x+b)+(1−y)log(1−σ(w⋅x+b))]=−[∂wj∂ylogσ(w⋅x+b)+∂wj∂(1−y)log[1−σ(w⋅x+b)]](4.60) 应用链式法则和对数函数的导数:
∂wj∂LCE=−σ(w⋅x+b)y∂wj∂σ(w⋅x+b)−1−σ(w⋅x+b)1−y∂wj∂[1−σ(w⋅x+b)](4.61) 重新整理各项:
∂wj∂LCE=−[σ(w⋅x+b)y−1−σ(w⋅x+b)1−y]∂wj∂σ(w⋅x+b) 代入 sigmoid 的导数并再次应用链式法则,得到式 4.62:
∂wj∂LCE===−[σ(w⋅x+b)[1−σ(w⋅x+b)]y−σ(w⋅x+b)]σ(w⋅x+b)[1−σ(w⋅x+b)]∂wj∂(w⋅x+b)−[y−σ(w⋅x+b)]xj[σ(w⋅x+b)−y]xj(4.62)