逻辑回归(Logistic Regression)原理

sigmoid函数

sigmoid函数公式:
σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1
当x趋近于负无穷时,函数值趋近于0;当x趋近于正无穷时,y趋近于1;当x= 0时,y=0.5。这种特征使得sigmoid函数很适合用来做二分类。
sigmoid函数求导:
σ ′ ( x ) = ( 1 1 + e − x ) ′ = e − x ( 1 + e − x ) 2 = 1 ( 1 + e − x ) e − x ( 1 + e − x ) = σ ( x ) ( 1 − σ ( x ) ) \begin{aligned} \sigma^{\prime}(x) &=\left(\frac{1}{1+e^{-x}}\right)^{\prime} \\\\ &=\frac{e^{-x}}{\left(1+e^{-x}\right)^{2}} \\\\ &=\frac{1}{\left(1+e^{-x}\right)}\frac{e^{-x}}{\left(1+e^{-x}\right)} \\\\ &=\sigma(x)(1-\sigma(x)) \end{aligned} σ(x)=(1+ex1)=(1+ex)2ex=(1+ex)1(1+ex)ex=σ(x)(1σ(x))

逻辑回归原理推导

普通的线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数W和b,满足Y=WX+b。此时我们的Y是连续的,所以是回归模型。
如果我们想要Y是离散的话,怎么办呢?我们就用上面的sigmoid函数对Y再做一次变换,得到g(Y)。,我们把g(Y)大于等于0.5的看作类别1,小于0.5的看作类别0,这样得到了一个二分类模型。这就是逻辑回归模型。
sigmoid函数公式:
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1
如果我们令
z = w x + b z=wx+b z=wx+b
可得逻辑回归模型的一般形式:
h w , b ( x ) = 1 1 + e − ( w x + b ) h_{w,b}(x)=\frac{1}{1+e^{-(wx+b)}} hw,b(x)=1+e(wx+b)1
下面我们进一步给出更加准确的逻辑回归定义。
二项逻辑回归模型定义为具有如下条件概率分布的模型:
P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x + b ) 1 + exp ⁡ ( w ⋅ x + b ) P(Y=1 | x)=\frac{\exp (w \cdot x+b)}{1+\exp (w \cdot x+b)} P(Y=1x)=1+exp(wx+b)exp(wx+b)
P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x + b ) P(Y=0 | x)=\frac{1}{1+\exp (w \cdot x+b)} P(Y=0x)=1+exp(wx+b)1
x是输入(特征空间),Y是输出标签,w和b为模型参数。注意看上面两式似乎和我们一开始介绍的不太一样?实际上我们将P(Y=1 | x)除以
为了方便表达,将b扩充入w ,同时输入x后加入一项全为1的列,使得
w ⋅ x + b ⇒ w ⋅ x w \cdot x+b \Rightarrow w \cdot x wx+bwx
此时有
w = w 1 , w 2 , ⋯   , w n , b , x = x 1 , x 2 , ⋯   , x n , 1 w=w_{1}, w_{2}, \cdots, w_{n}, b, x=x_{1}, x_{2}, \cdots, x_{n}, 1 w=w1,w2,,wn,b,x=x1,x2,,xn,1
此时逻辑回归的条件概率分布如下:
P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x ) 1 + exp ⁡ ( w ⋅ x ) P(Y=1 | x)=\frac{\exp (w \cdot x)}{1+\exp (w \cdot x)} P(Y=1x)=1+exp(wx)exp(wx)
P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x ) P(Y=0 | x )=\frac{1}{1+\exp (w \cdot x)} P(Y=0x)=1+exp(wx)1
一个事件发生的几率指该事件发生的概率与不发生的概率的比值。
如果某一事件发生的概率为 p, 那么它发生的几率为
p 1 − p \frac{p}{1-p} 1pp
该事件发生的对数几率函数为
l o g i t ( p ) = log ⁡ p 1 − p logit(p)=\log \frac{p}{1-p} logit(p)=log1pp
对于P(Y=1|x),其对数几率函数为
log ⁡ P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = w ⋅ x \log \frac{P(Y=1 | x)}{1-P(Y=1 | x)}=w \cdot x log1P(Y=1x)P(Y=1x)=wx
也就是说,在逻辑回归模型中,输出Y=1的对数几率是输入x的线性函数。
或者说,通过逻辑回归模型条件概率分布式可以将线性函数wx转换为概率。线性函数wx的值越接近正无穷,概率值就越接近1;线性函数wx的值越接近负无穷,概率值就越接近0。

极大似然估计法与梯度下降法估计模型参数

极大似然估计

在逻辑回归中我们可以认为样本是伯努利分布(n重二项分布)。对于给定的训练集T:
T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) T=\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots ,\left(x_{N}, y_{N}\right) T=(x1,y1),(x2,y2),,(xN,yN)

P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1 | x)=\pi(x), \quad P(Y=0 | x)=1-\pi(x) P(Y=1x)=π(x),P(Y=0x)=1π(x)
似然函数为:
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^{N}\left[\pi\left(x_{i}\right)\right]^{y_{i}}\left[1-\pi\left(x_{i}\right)\right]^{1-y_{i}} i=1N[π(xi)]yi[1π(xi)]1yi
对数似然函数为:
L ( w ) = ∑ i = 1 N [ y i log ⁡ π ( x i ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i log ⁡ π ( x i ) 1 − π ( x i ) + log ⁡ ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i ( w ⋅ x i ) − log ⁡ ( 1 + exp ⁡ ( w ⋅ x i ) ) ] \begin{aligned} L(w) &=\sum_{i=1}^{N}\left[y_{i} \log \pi\left(x_{i}\right)+\left(1-y_{i}\right) \log \left(1-\pi\left(x_{i}\right)\right)\right] \\\\ &=\sum_{i=1}^{N}\left[y_{i} \log \frac{\pi\left(x_{i}\right)}{1-\pi\left(x_{i}\right)}+\log \left(1-\pi\left(x_{i}\right)\right)\right] \\\\ &=\sum_{i=1}^{N}\left[y_{i}\left(w \cdot x_{i}\right)-\log \left(1+\exp \left(w \cdot x_{i}\right))\right]\right.\end{aligned} L(w)=i=1N[yilogπ(xi)+(1yi)log(1π(xi))]=i=1N[yilog1π(xi)π(xi)+log(1π(xi))]=i=1N[yi(wxi)log(1+exp(wxi))]
上面L(w)的第一步公式就是深度学习中常用的交叉熵损失函数形式。
这样我们只需要对L(w)求极大值,从而得到w的估计值即可。
如果w只有一个参数,我们可以用对L求w的导数,再令导数为0的方法,求出w的值,此时L(w)是一个极大值点。

梯度下降法

在深度学习模型中我们往往有多个w,此时用上面的方法很难解出w,此时我们往往采用梯度下降法或拟牛顿法进行多轮迭代寻找w的估计值:
先求L对某个wi的梯度:
∂ L ( w ) ∂ w i = y i x i − exp ⁡ ( w ⋅ x i ) ⋅ x i 1 + exp ⁡ ( w ⋅ x i ) = ( y i − 1 1 + exp ⁡ ( − w ⋅ x ) ) x i \frac{\partial L(w)}{\partial w_{i}}=y_{i} x_{i}-\frac{\exp \left(w \cdot x_{i}\right) \cdot x_{i}}{1+\exp \left(w\cdot x_{i}\right)} =\left(y_{i}-\frac{1}{1+\exp (-w \cdot x)}\right) x_{i} wiL(w)=yixi1+exp(wxi)exp(wxi)xi=(yi1+exp(wx)1)xi
wi参数更新公式:
w i = w i − η ∂ L ( w ) ∂ w i = w i − η ( y i − 1 1 + exp ⁡ ( − w ⋅ x ) ) x i , ( i = 1 , 2 , ⋯   , n ) w_{i}=w_{i}-\eta \frac{\partial L(w)}{\partial w_{i}}=w_{i}-\eta \left(y_{i}-\frac{1}{1+\exp (-w \cdot x)}\right) x_{i},(i=1,2, \cdots, n) wi=wiηwiL(w)=wiη(yi1+exp(wx)1)xi,(i=1,2,,n)

逻辑回归与SVM的异同

相同点:

  • lr和SVM都是分类算法;
  • 如果不考虑核函数,则lr和SVM都是线性分类算法;
  • lr和SVM都是监督学习算法;
  • lr和SVM都是判别模型,计算的是P(Y|X);

不同点:

  • lr和SVM的损失函数不同。​逻辑回归方法基于概率理论,假设样本为1的概率可以用sigmoid函数来表示,然后通过极大似然估计的方法估计出参数的值;支持向量机​基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面;
  • SVM只考虑边界线附近的少数点(支持向量),而逻辑回归考虑全局所有点(远离的点对边界线的确定也起作用)。影响SVM决策面的样本点只有少数的支持向量,当在支持向量外添加或减少任何样本点对分类决策面没有影响;而在lr中,每个样本点都会影响决策面的结果。因此线性SVM不直接依赖于数据分布,分类平面不受某类点影响;lr则受所有数据点的影响,如果数据不同类别十分不平衡,则一般需要先对数据做平衡采样。
  • 解决非线性问题时,支持向量机采用核函数的机制,而lr通常不采用核函数的方法。因为模型训练的过程就是决策面的计算过程,计算决策面时,SVM算法中只有少数几个代表支持向量的样本参与了计算,即只有少数几个样本需要参与核计算(即kernal machine解的系数是稀疏的);而lr算法中,每个样本点都必须参与决策面的计算过程,假如我们在lr里也运用核函数的原理,那么每个样本点都必须参与核计算,计算量十分大。因此在具体应用时,lr很少运用核函数机制。​
  • 线性SVM依赖数据表达的距离测度,所以需要对数据先做归一化;而lr计算的是概率,归一化可以加快模型收敛速度,如果不归一化,只要训练的足够充分,其最终结果也先相同。
  • SVM的损失函数中自带了正则项(1/2||w||2),而lr本身不带正则项,我们必须在损失函数上另外添加正则项。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值