前言
线性回归是一种回归(Regression)方法,常用于预测连续输出,而对于离散的分类输出就难以解决。因此在基于线性回归的前提下,引入了激活函数的概念,形成了Logistic回归。在这里简述自己对Logistic回归的所见所学。
如有谬误,请联系指正。转载请注明出处。
联系方式:
e-mail: FesianXu@163.com
QQ: 973926198
github: https://github.com/FesianXu
Logistic regression
线性回归(Linear Regression)是一种回归方法,常用于预测连续输出,而对于离散的分类输出,则爱莫能助。为了解决线性分类问题,引入了sigmoid激活函数,形成了Logistic回归方法。所谓的sigmoid函数,既是形式如:
σ(x)=11+e−αx(1.1)
的式子,通常
α取1。图像如下:
而基本的线性回归的式子我们都知道,如下:
θ(x)=θTx+b(1.2)
其中,
θT=(θ1,θ2,⋯,θn),
x=(x1,x2,⋯,xn),其中n是特征维数,b为实数。
将线性回归和激活函数sigmoid结合起来,就得到了:
fθ(x)=11+e−(θTx+b)(1.3)
我们可以看出,其实sigmoid激活函数的作用可以看成是将θTx+b映射到(0,1)区间中,注意到,因为这个取值区间,我们可以将sigmoid函数看成是将score映射到概率分布的函数,也就是说fθ(x)可以看成是概率值。从这个角度出发,我们定义:
- P(yi=1|xi)=σ(θTx+b)(1.4)
- P(yi=0|xi)=1−P(yi=1|xi)=1−σ(θTx+b)(1.5)
其中,下标i表示第i个样本,xi表示第i个样本的特征,xi∈Rn. yi表示第i个样本的标签,yi∈{0,1}。
极大似然估计
极大似然估计(Maximum Likelihood Estimate,MLE)是频率学派常用于对给定模型进行参数估计的方法,在logistic回归中用于(估计)学习出θ和b的值。极大似然法的基本思想很简单,假定发生的事情(也就是样本)肯定是符合模型的,就是求得参数θ,使得目前所有的样本在这个模型下f(x;θ)发生的概率之积最大。用到logistic回归上,我们可以得出似然函数:
L(θ)=∏i=1NP(yi=1|xi)yiP(yi=0|xi)1−yi(2.1)
在实际使用中,因为连乘不如累加好使,我们对等式进行两边求自然对数,得到对数似然函数,有:
lnL(θ)=ln∏i=1NP(yi=1|xi)yiP(yi=0|xi)1−yi=∑i=1NyilnP(yi=1|xi)+(1−yi)lnP(yi=0|xi)=∑i=1Nyi(lnP(yi=1|xi)−lnP(yi=0|xi))+lnP(yi=0|xi)=∑i=1NyilnP(yi=1|xi)P(yi=0|xi)+lnP(yi=0|xi)=∑i=1NyilnP(yi=1|xi)1−P(yi=1|xi)+lnP(yi=0|xi)=∑i=1Nyi(θTxi+b)+ln(1−σ(θTx+b))=∑i=1Nyi(θTxi+b)+ln11+eθTxi+b=∑i=1Nyi(θTxi+b)−ln(1+eθTxi+b)(2.2)
根据极大似然法的思想,对对数似然函数求最大值,按照传统的方法,我们是对
lnL(θ)求导数后令其为0解得极值点,但是我们会发现
∂lnL(θ)∂θ=0没有解析解,所以我们需要通过梯度下降法去近似求得其数值解。关于梯度下降法的介绍见
《随机梯度下降法,批量梯度下降法和小批量梯度下降法以及代码实现》。于是现在我们需要求得
∂lnL(θ)∂θ。
∂lnL(θ)∂θ=∑i=1Nyixi−11+eθTxi+bxieθTxi+b=∑i=1Nyixi−xi11+e−(θTxi+b)=∑i=1Nyixi−σ(θTxi+b)xi=∑i=1Nxi(yi−σ(θTxi+b))(2.3)
所以参数的更新公式为:
θ:=θ−η∂lnL(θ)∂θ=θ−η∑i=1Nxi(yi−σ(θTxi+b))(2.4)
b:=b−η∂lnL(θ)∂b=b−η∑i=1N(yi−σ(θTxi+b))(2.5)