逻辑回归(Logistic Regression)原理及损失函数、极大似然估计

一、什么是逻辑回归

虽然名字是“回归”,但解决的是“分类”问题。
模型学习的是 E [ y ∣ x ; θ ] E[y|x;\theta] E[yx;θ],即给定自变量和超参数后,得到因变量的期望,并基于此期望来处理预测分类问题。
前提:逻辑回归假设数据服从伯努利分布,通过极大似然估计的方法,是用梯度下降法求解参数,最终达到二分类的目的。
逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层激活函数 σ ( z ) \sigma(z) σ(z),即先把特征线性求和 z = w T x z=w^Tx z=wTx,然后使用函数 σ ( z ) \sigma(z) σ(z)作为假设函数来预测。 σ ( z ) \sigma(z) σ(z)可以将连续值映射到0 和1。 σ ( z ) \sigma(z) σ(z)为sigmoid function。

其中,真实标签为 y i y_i yi,特征向量 x i x_i xi在参数 θ \theta θ下的预测值为 h θ ( x i ) h_\theta (x_i) hθ(xi)
下图为sigmoid公式、图像,注意取值范围 (0,1) σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+ez1 h θ ( x ) = σ ( θ T x ) = 1 1 + e − θ T x h_\theta (x)=\sigma(\theta^Tx)\\ =\frac{1}{1+e^{-\theta^Tx}} hθ(x)=σ(θTx)=1+eθTx1
在这里插入图片描述
下图为求导过程、导数图像注意取值范围 (0,0.25] : σ ′ ( z ) = 0 − 1 ∗ ( 1 + e − z ) ′ ( 1 + e − z ) 2 = − e − z ∗ − 1 ( 1 + e − z ) 2 = e − z ( 1 + e − z ) 2 = 1 + e − z − 1 ( 1 + e − z ) 2 = 1 ( 1 + e − z ) − 1 ( 1 + e − z ) 2 = σ ( z ) ( 1 − σ ( z ) ) \sigma^{'}(z)=\frac{0-1*(1+e^{-z})^{'}}{(1+e^{-z})^2}\\ =\frac{-e^{-z}*-1}{(1+e^{-z})^2}\\=\frac{e^{-z}}{(1+e^{-z})^2}\\ =\frac{1+e^{-z}-1}{(1+e^{-z})^2}\\ =\frac{1}{(1+e^{-z})}-\frac{1}{(1+e^{-z})^2}\\ =\sigma(z)(1-\sigma(z)) σ(z)=(1+ez)201(1+ez)=(1+ez)2ez1=(1+ez)2ez=(1+ez)21+ez1=(1+ez)1(1+ez)21=σ(z)(1σ(z))
在这里插入图片描述

二、逻辑回归求解0/1分类问题

模型学习的是 E [ y ∣ x ; θ ] E[y|x;\theta] E[yx;θ],即给定自变量和超参数后,得到因变量的期望,并基于此期望来处理预测分类问题。
逻辑回归的假设:
1、数据服从伯努利分布
2、模型的输出值是样本为正的概率
P ( y = 1 ∣ x ; θ ) = h θ ( x ) = 1 1 + e − θ T x P(y=1|x;\theta)=h_\theta (x)=\frac{1}{1+e^{-\theta^Tx}} P(y=1∣x;θ)=hθ(x)=1+eθTx1
P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) = 1 − 1 1 + e − θ T x = e − θ T x 1 + e − θ T x P(y=0|x;\theta)=1-h_\theta (x)=1-\frac{1}{1+e^{-\theta^Tx}}=\frac{e^{-\theta^Tx}}{1+e^{-\theta^Tx}} P(y=0∣x;θ)=1hθ(x)=11+eθTx1=1+eθTxeθTx
P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y P(y|x;\theta)=(h_\theta (x))^y(1-h_\theta (x))^{1-y} P(yx;θ)=(hθ(x))y(1hθ(x))1y

面经:既然只需要得到0/1概率,为什么不使用简单的阶跃函数,而是使用sigmoid函数作为假设?

1、阶跃函数
使用阶跃函数将线性输出转化到[0,1]。
σ ( z ) = { 0 , z < 0 0.5 , z = 0 1 , z > 0 \sigma(z)=\begin{cases}0,z<0\\0.5,z=0 \\1,z>0\end{cases} σ(z)= 0,z<00.5,z=01,z>0
该分段函数是不连续、且不可导的。
2、sigmoid函数
连续且处处可导函数。
σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+ez1 σ ′ ( z ) = = σ ( z ) ( 1 − σ ( z ) ) \sigma^{'}(z)==\sigma(z)(1-\sigma(z)) σ(z)==σ(z)(1σ(z))
因为线性回归模型的预测值是一个实数,如果应用到0/1分类问题当中,就需要把线性回归模型的预测值和分类标签能够对应起来。
如果采用单位阶跃函数,是不连续且不可导的。(得到目标函数,没法对参数进行求导)
如果采用sigmoid函数,是连续且处处可导的。而且能够将线性输出转化到(0,1)区间。

三、求参数 θ \theta θ的方式

可以采用两种不同的角度:交叉熵/对数损失函数极大似然估计
二者本质上是等价的。损失函数的目标是最小化,似然函数则是最大化,二者仅相差一个符号。

1、交叉熵/对数损失函数

1)线性回归采用最小二乘法,基于MSE作为损失函数

L ( θ ) = ∑ i = 1 n ( θ T x i − y i ) 2 L(\theta)=\sum_{i=1}^{n}(\theta^\mathrm{T}x_i-y_i)^2 L(θ)=i=1n(θTxiyi)2
可以直接求解析解或采用梯度下降法求解参数 θ \theta θ

2)逻辑回归属于分类问题,需要依据先前算出来的概率来估计0/1类别

先前的假设2,输出的结果是正样本的概率。 由此根据不同类别,需要不同的损失函数。p越大说明y=1的概率越大,y=1的loss越小。使用log函数设计损失函数:
L ( θ ) = { − l o g ( p ) , y = 1 − l o g ( 1 − p ) , y = 0 L(\theta)=\begin{cases}-log(p),y=1\\-log(1-p),y=0 \end{cases} L(θ)={log(p),y=1log(1p),y=0
函数图像如下所示:
在这里插入图片描述分为两段,使用起来不方便,将这两段进行合并,以下为单个样本的损失函数:
L ( θ ) = − y l o g ( p ) − ( 1 − y ) l o g ( 1 − p ) L(\theta)=-ylog(p)-(1-y)log(1-p) L(θ)=ylog(p)(1y)log(1p)
若数据集中有m个样本,则总体损失函数(也就是交叉熵损失函数)为:
L ( θ ) = − 1 m ∑ i = 1 m y ( i ) l o g ( p ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − p ( i ) ) L(\theta)=-\frac{1}{m}\sum_{i=1}^my^{(i)}log(p^{(i)})+(1-y^{(i)})log(1-p^{(i)}) L(θ)=m1i=1my(i)log(p(i))+(1y(i))log(1p(i))
目标就是找到一组 θ \theta θ,使得上面的 L ( θ ) L(\theta) L(θ)最小。这个函数是凸函数,但是没有公式解,只能通过梯度下降法进行求解。

2、极大似然法估计参数 θ \theta θ

极大似然估计是一种参数估计的方法。已知某个事件已经发生,求导致该事件发生的概率最大的参数。
核心思想:找到参数 θ 的一个估计值,使得当前样本出现的可能性最大。即联合概率最大,需要写出联合概率密度函数,即似然函数,求似然函数最大时参数的值。
对于数据集 { ( x i , y i ) } i = 1 m \{(x_i,y_i)\}^m_{i=1} {(xi,yi)}i=1m,一共有m个样本。即令每个样本属于其真实标记的概率越大越好。

*极大似然估计基本步骤

1)写出似然函数(联合概率密度)

L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) L(\theta)=\prod\limits_{i=1}^mp(y^{(i)}|x^{(i)};\theta) L(θ)=i=1mp(y(i)x(i);θ)

2)取对数(连乘符号变成连加符号,容易求导)

l n L ( θ ) = l n ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∑ i = 1 m l n p ( y ( i ) ∣ x ( i ) ; θ ) lnL(\theta)=ln\prod\limits_{i=1}^mp(y^{(i)}|x^{(i)};\theta) \\=\sum\limits_{i=1}^mlnp(y^{(i)}|x^{(i)};\theta) lnL(θ)=lni=1mp(y(i)x(i);θ)=i=1mlnp(y(i)x(i);θ)

3)对参数 θ \theta θ求偏导数

∂ ∂ θ l n L ( θ ) = 0 ? \frac{\partial}{\partial \theta} lnL(\theta)=0? θlnL(θ)=0?有解则为所求的参数 θ \theta θ

*极大似然估计具体求解过程

1)似然函数

L ( θ ) = P ( y ∣ x ; θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) L(\theta)=P(y|x;\theta)\\ =\prod\limits_{i=1}^mp(y^{(i)}|x^{(i)};\theta)\\ =\prod\limits_{i=1}^m(h_\theta (x^{(i)}))^{y^{(i)}}(1-h_\theta (x^{(i)}))^{1-y^{(i)}} L(θ)=P(yx;θ)=i=1mp(y(i)x(i);θ)=i=1m(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)

2)log似然函数

l o g L ( θ ) = ∑ i = 1 m y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) logL(\theta)=\sum\limits_{i=1}^m{y^{(i)}}logh_\theta (x^{(i)})+({1-y^{(i)}})log(1-h_\theta (x^{(i)})) logL(θ)=i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))

3)极大似然函数求最优解

θ ^ = a r g m a x l o g L ( θ ) = a r g m a x ∑ i = 1 m y ( i ) ( l o g h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) \hat{\theta}=argmax logL(\theta)=argmax\sum\limits_{i=1}^m{y^{(i)}}(logh_\theta (x^{(i)}))+({1-y^{(i)}})log(1-h_\theta (x^{(i)})) θ^=argmaxlogL(θ)=argmaxi=1my(i)(loghθ(x(i)))+(1y(i))log(1hθ(x(i)))
可以看到,极大似然估计求解的是最大值,而交叉熵损失函数(对数损失函数求解的是最小值)。二者本质上并无差别。

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值