算法流程
逻辑回归(Logistics Regression)虽然名为回归,但大部分的场景都用来做分类任务,其与线性回归等一系列回归任务仅存在因变量分布的区别,这点会在【广义线性模型】章节详述。
- 回归问题的常规步骤
- 构造假设预测函数(hypothesis)
- 构造损失函数(loss)
- 寻找损失函数最小优化算法(optimization)
可以对于LR套用常规步骤。
对于LR来说,假设因变量(x)的分布是二项分布的,因此在线性回归的的基础上利用了sigmoid函数对其进行了变换,至于为何会使用sigmoid函数,这点会在【LR使用Sigmoid函数的原因】章节详述。
sigmoid函数表达式为:
g(z)=1+e−z1
其函数图像有:

可以看出sigmoid函数可以将数值挤压到[0,1]之间,可以视为取1的概率使用。对于线性回归,有以下表达式
θ0+θ1x1+,...,+θnxx=i+1∑nθixi=θTx
构造假设预测函数有
hθ(x)=g(θTx)=1+e−θTx1
由于hθ(x)经过sigmoid后的输出可以视为取1的概率,因此有
{P(y=1∣x;θ)=hθ(x)P(y=0∣x;θ)=1−hθ(x)
到此,逻辑回归的目标即预测P
上式可以合写成损失函数形式,这里只有经验风险最小而没有结构风险最小(即正则项)
loss(x,y)=hθ(x)y∗(1−hθ(x))1−y
对于LR的损失函数使用极大似然估计进行优化,损失函数的似然函数为
L(θ)=i=1∏mhθ(xi)yi∗(1−hθ(xi))1−yi
两边去对数有对数似然函数为
l(θ)=L(θ)=i=1∑myiloghθ(xi)+(1−yi)log(1−hθ(xi))
这里要求l(θ)取最大时的θ,利用梯度上升求法,做一个简单变换有
J(θ)=−m1l(θ)
对于J(θ)即求其在最小值时的θ,采用梯度下降法迭代,迭代公式为
θj:=θj−α∂θj∂J(θ)
其中α为步长,∂θj∂J(θ)推导结果如下

故θ的更新过程可以写成:
θj:=θj−αm1i=1∑m(hθ(xi)−yi)xij
其中i为样本的序号,j为特征的序号
正则化
LR可以使用L1正则和L2正则,加入正则项后损失函数为
J(θ)=−m1l(θ)+αj=1∑n∣θj∣+λj=1∑nθj2
L1和L2正则的原理都是对过大的系数进行惩罚。
为什么L1稀疏,L2平滑?,这是一个常见问题,从数学角度,L1正则参数的导数要么是1要么是-1,那么参数w每次迭代都以固定的步长增大或减小,有可能减小到0,而L2正则的导数为w,wi=wi-η*wi,以一个等比例的尺度迭代,是不会为0的。从几何角度,优化函数的等值线与L1正则项的等值线交点会更多的出现在坐标轴上,使得某维的特征权重为0,而L2正则的等值线与之的交点更多的在象限之中。还可以参考机器学习中正则化项L1和L2的直观理解
LR使用Sigmoid函数的原因
想要回答这个问题,首先先要了解两个概念,即【指数族分布】和【广义线性模型】。
指数族分布指满足以下形式的一类函数,即:
p(y;η)=b(y)eηT(y)−a(η)
其中η为自然参数,T(y)为充分统计量,通常T(y)=y,a(η)为正则化项。
Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量,正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedlinear model)。
这一家族中的模型形式基本上都差不多,不同的就是因变量不同:
如果是连续的,就是多重线性回归;
如果是二项分布,就是Logistic回归;
如果是Poisson分布,就是Poisson回归;
广义线性模型的一般性定义为满足一下三个假设:
-
y∣x;θ满足一个以η为参数的指数族分布
- 给定x,目标是预测y的期望值,即h(x)=E(y∣x)
- η=θTx
在二分类中,假设y服从伯努利二项分布,有
KaTeX parse error: No such environment: eqnarray at position 8:
\begin{̲e̲q̲n̲a̲r̲r̲a̲y̲}̲p(y|\theta)&=&\…
根据指数族分布的表达式p(y;η)=b(y)eηT(y)−a(η)令
⎩⎪⎨⎪⎧η=log1−ϕϕ=>ϕ=1+e−η1a(η)=−log(1−ϕ)=log(1+eη)b(y)=1
因此伯努利分布属于指数族分布。因此伯努利二项分布满足了广义线性模型的第一个假设:y∣x;θ满足一个以η为参数的指数族分布。
对于第二个假设:给定x,目标是预测y的期望值,即h(x)=E(y∣x),对于伯努利二项分布有hθ(x)=E(y∣x)=ϕ,带入上式ϕ的表达式有
hθ(x)=E(y∣x)=ϕ=1+e−η1
对于第三个假设:η=θTx,带入上式有
hθ(x)=1+e−η1=1+e−θTx1=Sigmoid
因此当使用Sigmoid函数做预测函数时LR的预测函数同时满足指数族分布与广义线性模型,且预测的结果即为后验概率p(y=1∣x)。
LR的输出是否为真实的概率
从指数族分布和广义线性模型的角度看LR的训练过程是这样的:
-
给定x,根据 θTx计算η(即预测值)
-
根据η通过预测函数sigmoid算出ϕ(即经过sigmoid后的输出值),ϕ既是伯努利分布的唯一参数,也是该分布的期望,所以将ϕ作为预测值。
-
通过loss function计算ϕ与真实的标签y之间的误差loss。
-
通过优化方法来更新θ ,降低loss。
从以上步骤中可以发现将ϕ作为后验概率p(y=1∣x)需要满足两个重要假设:
-
y是一个服从伯努利二项分布的二值随机变量
-
η和x之间存在线性关系,即可以用η=θTx表示
如果以上两个假设满足,则LR的输出(对于其他模型也是一样)是真实的后验概率,但是实际情况不一定严格满足,当然,我们在建模的时候就已经率先假设了这两个条件作为大前提,故而输出更多的可以当做为置信度。