【机器学习-11】 逻辑回归的交叉熵损失函数
梯度下降的求导过程是针对逻辑回归的交叉熵损失函数的推导,具体步骤如下:
1. 损失函数(交叉熵)
J
(
w
,
b
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
log
(
f
w
,
b
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
f
w
,
b
(
x
(
i
)
)
)
]
J(\mathbf{w}, b) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(f_{\mathbf{w},b}(\mathbf{x}^{(i)})) + (1-y^{(i)}) \log(1 - f_{\mathbf{w},b}(\mathbf{x}^{(i)})) \right]
J(w,b)=−m1i=1∑m[y(i)log(fw,b(x(i)))+(1−y(i))log(1−fw,b(x(i)))]
其中:
•
f
w
,
b
(
x
)
=
σ
(
w
T
x
+
b
)
=
1
1
+
e
−
(
w
T
x
+
b
)
f_{\mathbf{w},b}(\mathbf{x}) = \sigma(\mathbf{w}^T \mathbf{x} + b) = \frac{1}{1+e^{-(\mathbf{w}^T \mathbf{x} + b)}}
fw,b(x)=σ(wTx+b)=1+e−(wTx+b)1(Sigmoid函数)
• ( m ) 是样本数量,
y
(
i
)
y^{(i)}
y(i)是真实标签(0或1)。
2. 对权重 w j w_j wj 和偏置 b b b 的偏导数
(1)权重 w j w_j wj 的偏导
∂
J
(
w
,
b
)
∂
w
j
=
1
m
∑
i
=
1
m
(
f
w
,
b
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
\frac{\partial J(\mathbf{w}, b)}{\partial w_j} = \frac{1}{m} \sum_{i=1}^{m} \left( f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)} \right) x_j^{(i)}
∂wj∂J(w,b)=m1i=1∑m(fw,b(x(i))−y(i))xj(i)
推导过程:
- 对Sigmoid函数求导: σ ′ ( z ) = σ ( z ) ( 1 − σ ( z ) ) \sigma'(z) = \sigma(z)(1-\sigma(z)) σ′(z)=σ(z)(1−σ(z))。
- 通过链式法则:
∂ J ∂ w j = 1 m ∑ i = 1 m [ y ( i ) f ⋅ ∂ f ∂ w j − 1 − y ( i ) 1 − f ⋅ ∂ f ∂ w j ] \frac{\partial J}{\partial w_j} = \frac{1}{m} \sum_{i=1}^{m} \left[ \frac{y^{(i)}}{f} \cdot \frac{\partial f}{\partial w_j} - \frac{1-y^{(i)}}{1-f} \cdot \frac{\partial f}{\partial w_j} \right] ∂wj∂J=m1i=1∑m[fy(i)⋅∂wj∂f−1−f1−y(i)⋅∂wj∂f] - 合并同类项后代入 ∂ f ∂ w j = f ( 1 − f ) ⋅ x j ( i ) \frac{\partial f}{\partial w_j} = f(1-f) \cdot x_j^{(i)} ∂wj∂f=f(1−f)⋅xj(i),最终化简得到上述结果。
(2)偏置 b b b的偏导
∂
J
(
w
,
b
)
∂
b
=
1
m
∑
i
=
1
m
(
f
w
,
b
(
x
(
i
)
)
−
y
(
i
)
)
\frac{\partial J(\mathbf{w}, b)}{\partial b} = \frac{1}{m} \sum_{i=1}^{m} \left( f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)} \right)
∂b∂J(w,b)=m1i=1∑m(fw,b(x(i))−y(i))
推导类似权重,区别在于
∂
f
∂
b
=
f
(
1
−
f
)
\frac{\partial f}{\partial b} = f(1-f)
∂b∂f=f(1−f)。
3. 梯度下降更新规则
• 权重更新:
w
j
:
=
w
j
−
α
⋅
1
m
∑
i
=
1
m
(
f
w
,
b
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
w_j := w_j - \alpha \cdot \frac{1}{m} \sum_{i=1}^{m} \left( f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)} \right) x_j^{(i)}
wj:=wj−α⋅m1i=1∑m(fw,b(x(i))−y(i))xj(i)
• 偏置更新:
b
:
=
b
−
α
⋅
1
m
∑
i
=
1
m
(
f
w
,
b
(
x
(
i
)
)
−
y
(
i
)
)
b := b - \alpha \cdot \frac{1}{m} \sum_{i=1}^{m} \left( f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)} \right)
b:=b−α⋅m1i=1∑m(fw,b(x(i))−y(i))
其中
α
\alpha
α是学习率。
关键点说明
- Sigmoid的导数性质:梯度中的 f ( 1 − f ) f(1-f) f(1−f) 项在求导时被约去,使得结果形式与线性回归的均方误差类似(但损失函数不同)。
- 向量化实现:实际编程中通常用矩阵运算(如 X T ( f − y ) X^T (f - y) XT(f−y))替代逐参数更新。
- 逻辑回归特性:交叉熵损失对错误分类的惩罚更严厉(梯度更大),收敛速度优于均方误差。