逻辑回归中的损失函数&梯度下降

一、引言

        逻辑回归中的损失函数通常采用的是交叉熵损失函数(cross-entropy loss function)。在逻辑回归中,我们通常使用sigmoid函数将线性模型的输出转换为概率值,然后将这些概率值与实际标签进行比较,从而计算损失。

二、交叉熵损失函数

        在逻辑回归解决二分类问题的学习中,我们认识到逻辑回归的输出结果可以看成输入x^{(i)}时输出为正例(y^{(i)}=1)的概率。

\hat{y}=P(y=1|x;\vec{w},b)

分解如下:

IF \ y=1:P(y|x)=\hat{y}\\ IF \ y=0:P(y|x)=1-\hat{y}

        于是我们便想到可以通过比较模型预测的概率分布和实际标签之间的差异来衡量模型的准确性。在信息论中,交叉熵用来比较两个概率分布之间的差异。

定义:交叉熵损失函数(Cross-entropy loss function)是一种用于衡量模型输出与实际标签之间差异的损失函数。在机器学习中,交叉熵损失函数通常用于分类问题中,特别是在逻辑回归和神经网络等模型中。

对于一个逻辑回归函数:

f_{\vec{w},b}(\vec{x})=\frac{1}{1+e^{ -(wx^{T}+b) }}

损失函数公式:   

L(f_{\vec{w},b}(\vec{x}^{(i))}),y^{(i)})=\left\{\begin{matrix} -log(f_{\vec{w},b}(\vec{x}^{(i))}))& if y^{(i)}=1\\ -log(1-f_{\vec{w},b}(\vec{x}^{(i))}))&ify^{(i)}=0 \end{matrix}\right.

简化后的公式:

L(f_{\vec{w},b}(\vec{x}^{(i))}),y^{(i)})=-y^{(i)}log(f_{\vec{w},b}(\vec{x}^{(i)}))-(1-y^{(i)})log(1-f_{\vec{w},b}(\vec{x}^{(i)}))

(整体)损失函数:

J(\vec{w},b)=-\frac{1}{m}\sum_{i=1}^{m}L_{\vec{w},b}(f_{\vec{w},b}(\vec{x}^{(i)}),y^{(i)})

根据损失函数的定义,当f_{\vec{w},b}(\vec{x}^{(i)})的值与目标值y^{(i)}越接近,损失函数值越小,预测越准确。

所以:

if \ y=0: \ f_{\vec{w},b}(\vec{x}^{(i)})\rightarrow 0 \ then \ loss\rightarrow 0\\ if \ y=1: \ f_{\vec{w},b}(\vec{x}^{(i)})\rightarrow 1\ then \ loss\rightarrow \infty    

以预测肿瘤的例子说明,如果模型预测患者的肿瘤极大概率(如99.9%)是恶性,而实际却不是恶性,我们会得到一个极大的损失函数值。简单来说,模型的预测值距离y的真实值越远,损失越大。

三、为什么不使用均方差损失函数

非凸性:均方差损失函数在逻辑回归中会导致损失函数变成非凸函数,这会导致优化过程变得非常困难。因为非凸函数有多个局部最小值, 而均方差损失函数可能会陷入局部最小值而无法到达全局最小值,这回影响模型的训练效果。

输出范围不同:逻辑回归的输出是概率值,范围在0到1之间,而均方差损失函数对于这种概率输出不敏感,它对于离群值(outliers)非常敏感。这意味着即使是一个很小的偏离,也会导致损失函数变得非常大,从而使得模型对于异常值非常敏感。

四、梯度下降实现  

        在线性回归中,我们引入了一种用于求解模型的方法——梯度下降法。对于逻辑回归模型,我们也可以采用相同的方法。

 对于(整体)损失函数:

J(\vec{w},b)=-\frac{1}{m}\sum_{i=1}^{m}\left [ y^{(i)}log(f_{\vec{w},b}(\vec{x}^{(i)}))-(1-y^{(i)})log(1-f_{\vec{w},b}(\vec{x}^{(i)}))\right]

进行以下操作:

repeat{

            w_j=w_j-a\frac{\partial }{\partial w_j}J(\vec{w},b)

            \frac{\partial }{\partial w_{j}}=\frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})x^{(i)}_{j}

            

            b=b-a\frac{\partial }{\partial b}J(\vec{w},b)

            \frac{\partial }{\partial b}J(\vec{w},b)=\frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})

}simultaneous updates

我们不难发现,逻辑回归的梯度下降和之前线性回归中的梯度下降基本一致,唯一不同的是f_{\vec{w},b}(\vec{x})发生了变化。 所以在逻辑回归中也可以使用特征缩放的方法加快梯度下降法的收敛速度。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值