1.概述

逻辑回归为分类模型,适用于二分类问题。思想基于线性回归,属于广义线性回归模型,其公式为: h θ ( x ) = 1 1 + e − z = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-z}}=\frac{1}{1+e^{-\theta^{T}x}} hθ(x)=1+ez1=1+eθTx1,其中 z = θ 0 + θ 1 x 1 + . . . + θ n x n = θ T x z=\theta_0+\theta_1x_1+...+\theta_nx_n=\theta^Tx z=θ0+θ1x1+...+θnxn=θTx

LR算法即是将线性函数的结果映射到了sigmoid函数中。最终,大于0.5则判为1;小于0.5则判为0。

2.知识准备(关于sigmoid函数)

可以看到上述的预测公式,其中涉及到了sigmoid函数 f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1,这个函数的作用是将实数域映射到(0, 1)区间上。对应的图像如下所示:

逻辑回归-概述与推导

对于 f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1而言,有 f ′ ( x ) = ( 1 1 + e − x ) ′ = − ( 1 + e − x ) − 2 e − x ( − 1 ) = e − x ( 1 + e − x ) − 2 = f ( x ) [ 1 − f ( x ) ] f'(x)=(\frac{1}{1+e^{-x}})'=-(1+e^{-x})^{-2}e^{-x}(-1)=\frac{e^{-x}}{(1+e^{-x})^{-2}}=f(x)[1-f(x)] f(x)=(1+ex1)=(1+ex)2ex(1)=(1+ex)2ex=f(x)[1f(x)]。该结论一会在推导中需要使用~

3.算法推导

面试常常问到关于LR算法的推导,需要弄清楚。

假设数据集{ x i , y i x_i,y_i xi,yi}包含N个样本, x i x_i xi为第i个样本对应特征的向量(在此省略 x i ( 1 ) , x i ( 2 ) , . . . , x i ( m ) x_{i(1)},x_{i(2)},...,x_{i(m)} xi(1),xi(2),...,xi(m)),m为特征个数, y i y_i yi为样本的真实类别, h θ ( x i ) h_\theta(x_i) hθ(xi)为模型输出结果, θ T x i = z i \theta^Tx_i=z_i θTxi=zi

此时,有预测函数: h θ ( x i ) = 1 1 + e − z i = 1 1 + e − θ T x i h_\theta(x_i)=\frac{1}{1+e^{-z_i}}=\frac{1}{1+e^{-\theta^Tx_i}} hθ(xi)=1+ezi1=1+eθTxi1

​ 损失函数: C o s t ( h θ ( x i ) , y i ) = = { − l o g ( h θ ( x i ) ) , y = 1 − l o g ( 1 − h θ ( x i ) ) , y = 0 Cost(h_\theta(x_i),y_i)==\left\{ \begin{aligned} -log(h_\theta(x_i)) & , & y=1\\ -log(1-h_\theta(x_i)) & , & y=0 \end{aligned} \right. Cost(hθ(xi),yi)=={log(hθ(xi))log(1hθ(xi)),,y=1y=0

⇒ \Rightarrow 总的损失: J ( θ ) = 1 N ∑ i = 1 N C o s t ( h θ ( x i ) , y i ) J(\theta)=\frac 1N\sum_{i=1}^NCost(h_\theta(x_i),y_i) J(θ)=N1i=1NCost(hθ(xi),yi)

为了推导方便,将 θ T x i \theta^Tx_i θTxi记为 w T x i + b w^Tx_i+b wTxi+b的形式,有 P ( y i = 1 ∣ x i , w ) = 1 1 + e − ( w T x i + b ) P(y_i=1|x_i,w)=\frac{1}{1+e^{-(w^Tx_i+b)}} P(yi=1xi,w)=1+e(wTxi+b)1.

要使总损失最小,即要使下式最小。

a r g m i n w , b − ∑ i = 1 N [ y i l o g P ( y i = 1 ∣ x i , w ) + ( 1 − y i ) l o g ( 1 − P ( y i = 1 ∣ x i , w ) ) ] = a r g m i n w , b − ∑ i = 1 N [ y i l o g 1 1 + e − ( w T x i + b ) + ( 1 − y i ) l o g ( 1 − 1 1 + e − ( w T x i + b ) ) ] \begin{aligned} &argmin_{w,b}-\sum_{i=1}^N[y_ilogP(y_i=1|x_i,w)+(1-y_i)log(1-P(y_i=1|x_i,w))]\\&=argmin_{w,b}-\sum_{i=1}^N[y_ilog\frac{1}{1+e^{-(w^Tx_i+b)}}+(1-y_i)log(1-\frac{1}{1+e^{-(w^Tx_i+b)}})] \end{aligned} argminw,bi=1N[yilogP(yi=1xi,w)+(1yi)log(1P(yi=1xi,w))]=argminw,bi=1N[yilog1+e(wTxi+b)1+(1yi)log(11+e(wTxi+b)1)]

− ∑ i = 1 N [ y i l o g 1 1 + e − ( w T x i + b ) + ( 1 − y i ) l o g ( 1 − 1 1 + e − ( w T x i + b ) ) ] -\sum_{i=1}^N[y_ilog\frac{1}{1+e^{-(w^Tx_i+b)}}+(1-y_i)log(1-\frac{1}{1+e^{-(w^Tx_i+b)}})] i=1N[yilog1+e(wTxi+b)1+(1yi)log(11+e(wTxi+b)1)]记为 L ( w , b ) L(w,b) L(w,b).

为求 a r g m i n w , b L ( w , b ) argmin_{w,b}L(w,b) argminw,bL(w,b): (以下记 f ( w T x i + b ) = 1 1 + e − ( w T x i + b ) f(w^Tx_i+b)=\frac{1}{1+e^{-(w^Tx_i+b)}} f(wTxi+b)=1+e(wTxi+b)1

∂ L ( w , b ) ∂ w = − ∑ i = 1 N [ y i f ( w T x i + b ) [ 1 − f ( w T x i + b ) ] f ( w T x i + b ) x i + ( 1 − y i ) − f ( w T x i + b ) [ 1 − f ( w T x i + b ) ] 1 − f ( w T x i + b ) x i ] = − ∑ i = 1 N [ y i [ 1 − f ( w T x i + b ) ] x i + ( y i − 1 ) f ( w T x i + b ) x i ] = − ∑ i = 1 N [ x i y i − x i f ( w T x i + b ) ] = ∑ i = 1 N [ f ( w T x i + b ) − y i ] x i \begin{aligned} \frac{\partial L(w,b)}{\partial w}&=-\sum_{i=1}^N[y_i\frac{f(w^Tx_i+b)[1-f(w^Tx_i+b)]}{f(w^Tx_i+b)}x_i+(1-y_i)\frac{-f(w^Tx_i+b)[1-f(w^Tx_i+b)]}{1-f(w^Tx_i+b)}x_i]\\ &=-\sum_{i=1}^N[y_i[1-f(w^Tx_i+b)]x_i+(y_i-1)f(w^Tx_i+b)x_i]\\ &=-\sum_{i=1}^N[x_iy_i-x_if(w^Tx_i+b)]\\ &=\sum_{i=1}^N[f(w^Tx_i+b)-y_i]x_i \end{aligned} wL(w,b)=i=1N[yif(wTxi+b)f(wTxi+b)[1f(wTxi+b)]xi+(1yi)1f(wTxi+b)f(wTxi+b)[1f(wTxi+b)]xi]=i=1N[yi[1f(wTxi+b)]xi+(yi1)f(wTxi+b)xi]=i=1N[xiyixif(wTxi+b)]=i=1N[f(wTxi+b)yi]xi

注:第一个等号用到了第二部分说的求导结论。

有意思的是,上面最后一行的 f ( w T x i + b ) f(w^Tx_i+b) f(wTxi+b)即为预测值, y i y_i yi即为真实值(已知)。

∂ L ( w , b ) ∂ b = − ∑ i = 1 N [ y i f ( w T x i + b ) [ 1 − f ( w T x i + b ) ] f ( w T x i + b ) + ( 1 − y i ) − f ( w T x i + b ) [ 1 − f ( w T x i + b ) ] 1 − f ( w T x i + b ) ] = − ∑ i = 1 N [ y i [ 1 − f ( w T x i + b ) ] + ( y i − 1 ) f ( w T x i + b ) ] = ∑ i = 1 N [ f ( w T x i + b ) − y i ] \begin{aligned} \frac{\partial L(w,b)}{\partial b}&=-\sum_{i=1}^N[y_i\frac{f(w^Tx_i+b)[1-f(w^Tx_i+b)]}{f(w^Tx_i+b)}+(1-y_i)\frac{-f(w^Tx_i+b)[1-f(w^Tx_i+b)]}{1-f(w^Tx_i+b)}]\\ &=-\sum_{i=1}^N[y_i[1-f(w^Tx_i+b)]+(y_i-1)f(w^Tx_i+b)]\\ &=\sum_{i=1}^N[f(w^Tx_i+b)-y_i] \end{aligned} bL(w,b)=i=1N[yif(wTxi+b)f(wTxi+b)[1f(wTxi+b)]+(1yi)1f(wTxi+b)f(wTxi+b)[1f(wTxi+b)]]=i=1N[yi[1f(wTxi+b)]+(yi1)f(wTxi+b)]=i=1N[f(wTxi+b)yi]

得到梯度 ∂ L ( w , b ) ∂ w \frac{\partial L(w,b)}{\partial w} wL(w,b) ∂ L ( w , b ) ∂ b \frac{\partial L(w,b)}{\partial b} bL(w,b)之后,即可通过梯度下降法求解参数w和b。

4.梯度下降法

Step 1:初始化 w 1 , b 1 w^1,b^1 w1,b1

Step 2:

for t = 1, 2, …

w t + 1 = w t − η ∑ i = 1 N [ f ( w T x i + b ) − y i ] x i w^{t+1}=w^t-\eta\sum_{i=1}^N[f(w^Tx_i+b)-y_i]x_i wt+1=wtηi=1N[f(wTxi+b)yi]xi

b t + 1 = b t − η ∑ i = 1 N [ f ( w T x i + b ) − y i ] b^{t+1}=b^t-\eta\sum_{i=1}^N[f(w^Tx_i+b)-y_i] bt+1=btηi=1N[f(wTxi+b)yi]

其中, η \eta η为学习率(learning rate)。可以给定,也可以是按照一定条件变化的。

Step 3:若w, b达到稳定或达到迭代次数,则停止迭代。

此时模型总损失达到局部最小,将参数代入模型后即可用于预测。

相关文章: