逻辑回归(LR)算法推导分析

逻辑回归

逻辑回归是一个简单的分类算法。

之前介绍过线性回归:https://blog.csdn.net/sxf1061926959/article/details/66976356

线性回归是最基本的回归模型,建议了解逻辑回归前可以先了解下线性回归。

其实如果只是想单纯的解决问题,线性回归也可以用于解决二分类问题,只需要对输出的值设定一个阈值即可实现

但是线性回归在计算误差的时候,起数据域内的所有数,包括异常值,对模型的的影响是一样的,数据对模型的敏感度不会应数据的偏离程度发生变化。但是在分类问题中,其实最难区分的是边界附近的数据,而那些可以肯定是正类或者负类的数据并不是那么重要。

而且为了让算法的目标和建模的目的一致,需要对模型输出的结果进行映射到不同类目上,即线性回归的实数域映射到[0,1]两个值上。有个跃阶函数是这样的: H(x)=\begin{Bmatrix} H(x)=0, x>0 & \\ H(x)=1, x<=0 & \end{Bmatrix},从目的的角度来说可以解决问题了,但是这个并不是连续可导函数,并不能解决我们上面提出的异常值对模型敏感度一致的问题,我们需要一个可导函数,将这个函数直接应用到模型优化过程中去。这里就要引出sigmoid函数了,该函数满足了该要求。

sigmoid推导

这里我们假设样本点为x = \left \{ x_0,x_1,...,x_n \right \} ,我们知道线性回归其实是将每个特征x_i加上一个对应的权值w_i来获得最后的输出结果。那么这个思想其实可以扩展到分类问题上。

定义一个最简单的假设,假设现在需要做的是二分类,类别分别为0和1,并且样本点x针对x属于类别0和1的权值为w_ow_1,权值对应到每个特征为w_0= \left \{ x_00,x_01,...,x_0n \right \}w_1= \left \{ x_10,x_11,...,x_1n \right \}

线性回归模型的公式是这样的y = w*x+b,我们把b作为w_0就可以简化为y=w*x,这样我们如果y只有0和1两个值的时候,其实就是一个分类任务。我们先对公式做一个恒等变换,加上一个指数函数,可以得到exp(y) = exp(w*x),这样的话我们就开始计算样本点x属于,如下,我们可以分别计算出样本点属于0和1的输出值:

y_0 = w_0 * x

y_1 = w_1 * x

加上我们上面定义的恒等变换,就是

exp(y_0) = exp(w_0 * x)

exp(y_1) = exp(w_1 * x)

对于分类问题,我们期待的不是输出一个实数域的值,最好的是希望得到输出值属于某个类的概率,并且他们的概率和应该等于1.

所以我们可以得出如下的概率:

P(y=0|x) = exp(w_0 *x)/(exp(w_1 *x)+exp(w_0 *x))

P(y=1|x) = exp(w_1 *x)/(exp(w_1 *x)+exp(w_0 *x))

因为他们两的概率和为1,所以P(y=0|x)可以简化为P(y=0|x) = 1- P(y=1|x)

P(y=1|x) = exp(w_1 *x)/(exp(w_1 *x)+exp(w_0 *x))可以进一步化简,分子分母同除以exp(w_1 *x)就可以得到:

P(y=1|x) = 1/(1+exp((w_0 - w_1) *x)),我们再把(w_0 - w_1)定义为w,就能得到

P(y=1|x) = 1/(1+exp(w*x))看见了吗?sigmoid函数出来了

交叉熵

现在经过sigmoid函数,模型有了输出,然后就可以定义优化函数进行优化了,首先还是按之前线性回归的推导思路,需要定义一个最大似然函数

公式比较难写,直接上网复制了一个。然后就是正常的似然函数解法,加log转换,再最大化转最小化:

而这个函数其实就是交叉熵损失函数,神经网络的早期,在用梯度下降优化神经网络的时候,一直用的是求平方误差MSE,但是平方误差存在一个严重的问题,因为求导后的函数里存在sigmoid(x)(1-sigmoid(x))这一项,这一项是sigmoid以及其导数的乘积。正是因为这个,导致了严重了梯度消失问题,但是交叉熵并没有解决梯度消失问题,而是缓解。好了扯远了。

在实际编程中交叉熵的定义有时候会出现一些小bug,我在这里做了简单的介绍https://blog.csdn.net/sxf1061926959/article/details/83821733

优化函数有了,就可以直接利用梯度下降算法进行优化了,我在https://blog.csdn.net/sxf1061926959/article/details/72728244介绍了详细的梯度下降推导,可以参考学习。当然具体的优化方法不止梯度下降算法,还可以使用拟牛顿法来高效训练,如LBFGS。

本部分是个人对逻辑回归的理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值