逻辑回归的交叉熵损失函数求导

本文详细介绍了逻辑回归的交叉熵损失函数,并通过数学推导展示了其求导过程,最终得到了损失函数关于参数的梯度表达式。这有助于理解逻辑回归模型的优化原理。

逻辑回归的交叉熵损失函数求导

定义的交叉熵损失函数为:

J(θ)=−1m∑i=1my(i)log⁡(hθ(x(i)))+(1−y(i))log⁡(1−hθ(x(i))) J(\theta)=-\frac{1}{m} \sum_{i=1}^{m} y^{(i)} \log \left(h_{\theta}\left(x^{(i)}\right)\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right) J(θ)=m1i=1my(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))
其中:
log⁡hθ(x(i))=log⁡11+e−θTx(i)=−log⁡(1+e−θTx(i))log⁡(1−hθ(x(i)))=log⁡(1−11+e−θTx(i))=log⁡(e−θTx(i)1+e−θTx(i))=log⁡(e−θTx(i))−log⁡(1+e−θTx(i))=−θTx(i)−log⁡(1+e−θTx(i)) \log h_{\theta}\left(x^{(i)}\right)=\log \frac{1}{1+e^{-\theta^{T} x^{(i)}}}=-\log \left(1+e^{-\theta^{T} x^{(i)}}\right)\\ \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)=\log \left(1-\frac{1}{1+e^{-\theta^{T} x^{(i)}}}\right)=\log \left(\frac{e^{-\theta^{T} x^{(i)}}}{1+e^{-\theta^{T} x^{(i)}}}\right)\\ =\log \left(e^{-\theta^{T} x^{(i)}}\right)-\log \left(1+e^{-\theta^{T} x^{(i)}}\right)=-\theta^{T} x^{(i)}-\log \left(1+e^{-\theta^{T} x^{(i)}}\right) loghθ(x(i))=log1+eθTx(i)1=log(1+eθTx(i))log(1hθ(x(i)))=log(11+eθTx(i)1)=log(1+eθTx(i)

### 逻辑回归损失函数求导过程解释 对于逻辑回归而言,其核心在于通过最大化似然估计来找到最优参数 \(\theta\)。为了实现这一目标,在实践中通常会最小化负对数似然函数,即所谓的对数损失函数交叉熵损失函数[^3]。 #### 对数损失函数定义 给定数据集 \(D=\{(x^{(1)},y^{(1)}),...,(x^{(m)},y^{(m)})\}\),其中\(x^{(i)}\) 表示第 \(i\) 个输入特征向量, \(y^{(i)}∈{0,1}\) 是对应的标签,则逻辑回归中的对数损失函数可以表示为: \[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)}))] \] 这里, - \(h_\theta(x)\) 定义为预测概率:\[h_\theta(x)=g(z)=\frac{1}{1+\exp(-z)}\], 其中 \(z=\theta^Tx\) 上述表达式的目的是衡量模型输出的概率分布与真实标签之间的差异程度;当实际类别为正类时(\(y=1\)),希望模型给出较高的正值响应;反之亦然。因此,此公式能够有效地惩罚错误分类的情况[^4]。 #### 求解梯度 为了应用梯度下降方法更新权重参数 \(\theta_j\) ,需要计算损失函数关于各个参数的偏导数: \[\begin{aligned} \nabla_{\theta_j}J(\theta)&=\nabla_{\theta_j}-\frac{1}{m}\left [\sum_i y^{(i)}\log h_\theta(x^{(i)}) + (1-y^{(i)})\log(1-h_\theta(x^{(i)}))\right ]\\ &=-\frac{1}{m}\sum_i[(y^{(i)}-\hat{y}^{(i)})x_j^{(i)}]\\ \end{aligned}\] 具体来说,对于每一个训练样本 \(i\) 和 特征维度 \(j\) : - 如果 \(y^{(i)}=1\) , 则 \((y^{(i)}-\hat{y}^{(i)})=(1-g(\theta^T x^{(i)}))<0\) 。此时减去一个小于零的数量意味着增加相应的权值以提高正例的可能性; - 反之,如果 \(y^{(i)}=0\) , 那么 \((y^{(i)}-\hat{y}^{(i)})=(-g(\theta^T x^{(i)}))>0\) . 减掉一个大于零的部分将会降低误报率。 综上所述,通过对损失函数进行适当变换并利用链式法则完成对其各分量的一阶微分运算后可得到用于指导迭代调整方向的信息——梯度向量。这使得可以通过不断沿反向传播路径累积误差信号的方式逐步逼近全局最优点[^2]。 ```python def compute_gradient(X, y, theta): m = len(y) predictions = sigmoid(np.dot(X, theta)) error = predictions - y grad = np.dot(X.T, error)/m return grad def sigmoid(z): return 1 / (1 + np.exp(-z)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值