逻辑回归梯度推导

逻辑回归是一种广泛使用的分类算法,用于估计一个事件发生的概率。它是线性回归的扩展,通过sigmoid函数将线性回归的输出映射到[0, 1]区间,从而用于分类任务。
在逻辑回归中,我们使用对数似然损失函数(log-likelihood loss function)来衡量模型预测值与真实值之间的差异。我们的目标是最小化这个损失函数,以找到最优的模型参数。
假设我们有以下符号:

  • h θ ( x ) h_{\theta}(x)hθ​(x) 是模型预测的概率,h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x) = \frac{1}{1 + e^{-\theta^T x}}hθ​(x)=1+e−θTx1​。
  • m mm 是训练样本的数量。
  • y yy 是实际输出标签,取值为0或1。
  • θ \thetaθ 是模型参数。
  • x xx 是单个训练样本的特征向量。

对数似然损失函数为(也可以说是交叉熵损失,来源于KL散度的后一项):
L ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] L(\theta) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h_{\theta}(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_{\theta}(x^{(i)}))]L(θ)=−m1​i=1∑m​[y(i)log(hθ​(x(i)))+(1−y(i))log(1−hθ​(x(i)))]

为了找到最小化损失函数的参数 θ \thetaθ,我们需要计算损失函数关 $\theta $ 的梯度。以下是梯度计算的过程:

对 $ L(\theta) $ 求关于$ \theta_j $ 的偏导数:
∂ ∂ θ j L ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) ∂ ∂ θ j log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) ∂ ∂ θ j log ⁡ ( 1 − h θ ( x ( i ) ) ) ] = − 1 m ∑ i = 1 m [ y ( i ) h θ ( x ( i ) ) ∂ ∂ θ j h θ ( x ( i ) ) − 1 − y ( i ) 1 − h θ ( x ( i ) ) ∂ ∂ θ j h θ ( x ( i ) ) ] = − 1 m ∑ i = 1 m [ y ( i ) 1 h θ ( x ( i ) ) − ( 1 − y ( i ) ) 1 1 − h θ ( x ( i ) ) ] ∂ ∂ θ j h θ ( x ( i ) )

∂∂θjL(θ)=−1m∑i=1m[y(i)∂∂θjlog(hθ(x(i)))+(1−y(i))∂∂θjlog(1−hθ(x(i)))]=−1m∑i=1m[y(i)hθ(x(i))∂∂θjhθ(x(i))−1−y(i)1−hθ(x(i))∂∂θjhθ(x(i))]=−1m∑i=1m[y(i)1hθ(x(i))−(1−y(i))11−hθ(x(i))]∂∂θjhθ(x(i))∂∂���(�)=−1�∑�=1�[�(�)∂∂��log⁡(ℎ�(�(�)))+(1−�(�))∂∂��log⁡(1−ℎ�(�(�)))]=−1�∑�=1�[�(�)ℎ�(�(�))∂∂��ℎ�(�(�))−1−�(�)1−ℎ�(�(�))∂∂��ℎ�(�(�))]=−1�∑�=1�[�(�)1ℎ�(�(�))−(1−�(�))11−ℎ�(�(�))]∂∂��ℎ�(�(�))

∂θj​∂​L(θ)​=−m1​i=1∑m​[y(i)∂θj​∂​log(hθ​(x(i)))+(1−y(i))∂θj​∂​log(1−hθ​(x(i)))]=−m1​i=1∑m​[hθ​(x(i))y(i)​∂θj​∂​hθ​(x(i))−1−hθ​(x(i))1−y(i)​∂θj​∂​hθ​(x(i))]=−m1​i=1∑m​[y(i)hθ​(x(i))1​−(1−y(i))1−hθ​(x(i))1​]∂θj​∂​hθ​(x(i))​

计算 h θ ( x ) h_{\theta}(x)hθ​(x) 关于 θ j \theta _{j}θj​的偏导数:
∂ ∂ θ j h θ ( x ) = ∂ ∂ θ j ( 1 1 + e − θ T x ) = e − θ T x ( 1 + e − θ T x ) 2 ∂ ∂ θ j ( − θ T x ) = e − θ T x ( 1 + e − θ T x ) 2 ( − x j ) = h θ ( x ) ( 1 − h θ ( x ) ) ( − x j )

∂∂θjhθ(x)=∂∂θj(11+e−θTx)=e−θTx(1+e−θTx)2∂∂θj(−θTx)=e−θTx(1+e−θTx)2(−xj)=hθ(x)(1−hθ(x))(−xj)∂∂��ℎ�(�)=∂∂��(11+�−���)=�−���(1+�−���)2∂∂��(−���)=�−���(1+�−���)2(−��)=ℎ�(�)(1−ℎ�(�))(−��)

∂θj​∂​hθ​(x)​=∂θj​∂​(1+e−θTx1​)=(1+e−θTx)2e−θTx​∂θj​∂​(−θTx)=(1+e−θTx)2e−θTx​(−xj​)=hθ​(x)(1−hθ​(x))(−xj​)​
将 ( ∂ ∂ θ j h θ ( x ) \frac{\partial}{\partial \theta_j} h_{\theta}(x)∂θj​∂​hθ​(x) ) 的结果代入梯度公式中:
∂ ∂ θ j L ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) 1 h θ ( x ( i ) ) − ( 1 − y ( i ) ) 1 1 − h θ ( x ( i ) ) ] h θ ( x ) ( 1 − h θ ( x ) ) ( − x j ) = − 1 m ∑ i = 1 m [ y ( i ) ( 1 − h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) h θ ( x ( i ) ) ] ( − x j ( i ) ) = − 1 m ∑ i = 1 m [ y ( i ) − h θ ( x ( i ) ) ] ( − x j ( i ) )

∂∂θjL(θ)=−1m∑i=1m[y(i)1hθ(x(i))−(1−y(i))11−hθ(x(i))]hθ(x)(1−hθ(x))(−xj)=−1m∑i=1m[y(i)(1−hθ(x(i)))−(1−y(i))hθ(x(i))](−x(i)j)=−1m∑i=1m[y(i)−hθ(x(i))](−x(i)j)∂∂���(�)=−1�∑�=1�[�(�)1ℎ�(�(�))−(1−�(�))11−ℎ�(�(�))]ℎ�(�)(1−ℎ�(�))(−��)=−1�∑�=1�[�(�)(1−ℎ�(�(�)))−(1−�(�))ℎ�(�(�))](−��(�))=−1�∑�=1�[�(�)−ℎ�(�(�))](−��(�))

∂θj​∂​L(θ)​=−m1​i=1∑m​[y(i)hθ​(x(i))1​−(1−y(i))1−hθ​(x(i))1​]hθ​(x)(1−hθ​(x))(−xj​)=−m1​i=1∑m​[y(i)(1−hθ​(x(i)))−(1−y(i))hθ​(x(i))](−xj(i)​)=−m1​i=1∑m​[y(i)−hθ​(x(i))](−xj(i)​)​
因此,逻辑回归损失函数 L ( θ ) L(\theta)L(θ) 关于参数 θ j \theta_jθj​的梯度是:
∂ ∂ θ j L ( θ ) = − 1 m ∑ i = 1 m [ h θ ( x ( i ) ) − y ( i ) ] x j ( i ) \frac{\partial}{\partial \theta_j} L(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ h_{\theta}(x^{(i)}) - y^{(i)} \right] x_j^{(i)}∂θj​∂​L(θ)=−m1​i=1∑m​[hθ​(x(i))−y(i)]xj(i)​

​ 这个梯度表达式告诉我们,对于每个参数 θ j \theta_jθj​,我们需要计算模型预测 h θ ( x ( i ) ) h_{\theta}(x^{(i)})hθ​(x(i)) 和实际标签 y ( i ) y^{(i)}y(i) 之间的差异,然后将这个差异乘以特征 x j ( i ) x_j^{(i)}xj(i)​,最后对所有训练样本求和并除以样本数量 m mm。这个梯度用于在优化过程中更新参数 θ j \theta_jθj​,以最小化损失函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值