逻辑回归
一、问题
- 考虑二分类问题
给定给定数据集 D \mathbf{D} D = {( x 1 \mathbf{x}_{1} x1, y 1 y_{1} y1),( x 2 \mathbf{x}_{2} x2, y 2 y_{2} y2),…,( x m \mathbf{x}_{m} xm, y m y_{m} ym)},其中 x i \mathbf{x}_{i} xi = { x i 1 x_{i1} xi1; x i 2 x_{i2} xi2;…; x i d x_{id} xid}, y i ∈ { 0 , 1 } y_{i} \in \left \{ 0, 1\right \} yi∈{0,1}
-
考虑到 ω T x + b \mathbf{\omega}^{T}\mathbf{x} + b ωTx+b取值是连续的,因此它不能拟合离散变量
可以考虑用它来拟合条件概率 p ( y = 1 ∣ x ) p(y = 1\ | \ \mathbf{x}) p(y=1 ∣ x),因为概率的取值也是连续的
-
但是对于 w ≠ 0 \mathbf{w} \neq \mathbf{0} w̸=0 (若等于零向量则没有什么求解的价值), z = ω T x + b z = \mathbf{\omega}^{T}\mathbf{x} + b z=ωTx+b取值是从 − ∞ ∼ + ∞ -\infty \sim +\infty −∞∼+∞,不符合概率取值为 0 ∼ 1 0 \sim 1 0∼1,于是,我们需将实值 z z z转换为0/1值
最理想的是单位阶跃函数(unit-step function)
(1) y = { 0 , z < 0 ; 0.5 , z = 0 ; 1 , z > 0 ; y = \left\{\begin{matrix} 0,\ \ \ z < 0; & \\ 0.5,\ z = 0;& \\ 1,\ \ \ z > 0;& \end{matrix}\right. \tag{1} y=⎩⎨⎧0, z<0;0.5, z=0;1, z>0;(1)
即若预测值 z z z大于零就判为正例,小于零则判为反例,预测值为临界值零则可任意判别,如图
-
但从图可以看出,单位阶跃函数不满足单调可微,不能直接用作 g ( ⋅ ) g(·) g(⋅),于是我们希望找到能在一定程度上近似单位阶跃函数的替代函数(surrogate function)。对数几率函数(logistic function)正式这样一个常用的替代函数
(2) y = 1 1 + e − z y = \frac{1}{1+e^{-z}} \tag{2} y=1+e−z1(2)
从图中可以看出,对数几率函数是一种Sigmoid函数,它将 z z z值转化为一个接近 0 0 0或 1 1 1的 y y y值,并且其输出值在 z = 0 z = 0 z=0附近变化很陡
Sigmoid函数即形似S的函数,对率函数是Sigmoid函数最重要的代表
-
采用广义线性模型,得到
(3) y = 1 1 + e − ( ω T x + b ) y = \frac{1}{1+e^{-(\mathbf{\omega}^{T}\mathbf{x} + b)}} \tag{3} y=1+e−(ωTx+b)1(3)
若将 y = 1 1 + e − z y = \frac{1}{1+e^{-z}} y=1+e−z1视为 x x x作为正例的可能性,则 1 − y = e − z 1 + e − z 1-y = \frac{e^{-z}}{1+e^{-z}} 1−y=1+e−ze−z是其反例可能性,两者的比值
(4) y 1 − y \frac{y}{1- y} \tag{4} 1−yy(4)
称为几率(odds),反映了 x x x作为正例的相对可能性
(5) l n ( y 1 − y ) = z = ω T x + b ln( \frac{y}{1- y}) = z = \mathbf{\omega}^{T}\mathbf{x} + b \tag{5} ln(1−yy)=z=ωTx+b(5)
对几率取对数则得到对数几率(log odds,亦称logit)
由此可以看出,式(3)实际上是在用线性模型的预测结果去逼近真实标记对数几率,因此,其对应的模型称为对数几率回归(logistic regression,亦称logit regression)
- 虽然对数几率回归名字带有回归,但是它是一种分类的学习方法。其优点
- 直接对分类的可能性进行建模,无需事先假设数据分布,这就避免了因为假设分布不准确带来的问题
- 不仅预测出来类别,还得到了近似概率的预测,这对许多需要利用概率辅助决策的任务有用
- 对数函数是任意阶可导的凸函数,有很好的数学性质,很多数值优化算法都能直接用于求取最优解
二、参数估计
-
给定给定数据集 D \mathbf{D} D = {( x 1 \mathbf{x}_{1} x1, y 1 y_{1} y1),( x 2 \mathbf{x}_{2} x2, y 2 y_{2} y2),…,( x m \mathbf{x}_{m} xm, y m y_{m} ym)},其中 x i \mathbf{x}_{i} xi = { x i 1 x_{i1} xi1; x i 2 x_{i2} xi2;…; x i d x_{id} xid}, y i ∈ { 0 , 1 } y_{i} \in \left \{ 0, 1\right \} yi∈{0,1}。可以用极大似然估计法估计模型参数,从而得出模型。
为方便讨论,令 θ = ( ω ; b ) \mathbf{\theta} = (\mathbf{\omega};b) θ=(ω;b), x = ( x ; 1 ) \mathbf{x} = (\mathbf{x};1) x=(x;1),则 ω T x + b \mathbf{\omega}^{T}\mathbf{x} + b ωTx+b可简写为 θ T x \mathbf{\theta}^T\mathbf{x} θTx,预测函数为
(6) h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_{\mathbf{\theta}}(x) = g(\mathbf{\theta}^T\mathbf{x}) = \frac{1}{1+e^{-\mathbf{\theta}^{T}\mathbf{x}}} \tag{6} hθ(x)=g(θTx)=1+e−θTx1(6)
其中 θ 0 + θ 1 x 1 + , … , + θ m x m = ∑ i = 1 m θ i x i = θ T x \theta_{0} + \theta_{1}x_{1} + ,…, + \ \theta_{m}x_{m} = \sum_{i=1}^m\theta_{i}x_{i} = \mathbf{\theta}^Tx θ0+θ1x1+,…,+ θmxm=∑i=1mθixi=θTx
-
对于二分类任务,令 P ( y = 1 ∣ x ; θ ) = h θ ( x ) P(y = 1|x;\mathbf{\theta}) = h_{\mathbf{\theta}}(x) P(y=1∣x;θ)=hθ(x),则 P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y = 0|x;\mathbf{\theta}) = 1- h_{\mathbf{\theta}}(x) P(y=0∣x;θ)=1−hθ(x)
整合后
(7) P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y P(y|x;\mathbf{\theta}) = (h_{\mathbf{\theta}}(x))^{y}(1- h_{\mathbf{\theta}}(x))^{1-y} \tag{7} P(y∣x;θ)=(hθ(x))y(1−hθ(x))1−y(7)
解释:对于二分类任务(0, 1),整合后y取0只保留 1 − h θ ( x ) 1- h_{\mathbf{\theta}}(x) 1−hθ(x),y取1只保留 h θ ( x ) h_{\mathbf{\theta}}(x) hθ(x)
-
由于有 P ( y = 1 ∣ x ; θ ) P(y = 1|x;\mathbf{\theta}) P(y=1∣x;θ) ; P ( y = 0 ∣ x ; θ ) P(y = 0|x;\mathbf{\theta}) P(y=0∣x;θ),我们可以通过极大似然法(maximum likelihood method)来估计 θ \mathbf{\theta} θ
似然函数
(8) L ( θ ) = ∏ i = 1 m P ( y i ∣ x i ; θ ) = ∏ i = 1 m ( h θ ( x i ) ) y i ( 1 − h θ ( x i ) ) 1 − y i L(\mathbf{\theta}) =\prod_{i = 1}^{m}P(y_{i}|x_{i};\mathbf{\theta}) = \prod_{i = 1}^{m}(h_{\mathbf{\theta}}(x_{i}))^{y_{i}}(1- h_{\mathbf{\theta}}(x_{i}))^{1-y_{i}} \tag{8} L(θ)=i=1∏mP(yi∣xi;θ)=i=1∏m(hθ(xi))yi(1−hθ(xi))1−yi(8)
对数似然(log likelihood)
(9) l ( θ ) = l n L ( θ ) = ∑ i = 1 m ( y i l n h θ ( x i ) + ( 1 − y i ) l n ( 1 − h θ ( x i ) ) ) l(\mathbf{\theta}) = lnL(\mathbf{\theta}) = \sum_{i=1}^m(y_{i} lnh_{\mathbf{\theta}}(x_{i}) + (1-y_{i})ln(1 - h_{\mathbf{\theta}}(x_{i}))) \tag{9} l(θ)=lnL(θ)=i=1∑m(yilnhθ(xi)+(1−yi)ln(1−hθ(xi)))(9)
式(9)是关于 θ \mathbf{\theta} θ的高阶可导连续凸函数,根据凸优化理论,经典的数值优化算法如梯度下降法(gradient descent method)、牛顿法(Newton method)等都可以求得其最优解,于是就得到
(10) θ ∗ = a r g max θ l ( θ ) \mathbf{\theta^*} = \underset{\mathbf{\theta}}{arg\max}l(\mathbf{\theta}) \tag{10} θ∗=θargmaxl(θ)(10)
三、求解
对于式(9),应用梯度上升求最大值,引入 J ( θ ) = − 1 m l ( θ ) J(\mathbf{\theta}) = -\frac{1}{m}l(\mathbf{\theta}) J(θ)=−m1l(θ)转换为梯度下降任务
求解过程
∂ J ( θ ) θ j = − 1 m ∑ i = 1 m ( y i 1 h θ ( x i ) ∂ h θ ( x i ) ∂ θ j − ( 1 − y i ) 1 1 − h θ ( x i ) ∂ h θ ( x i ) ∂ θ j ) \frac{\partial J(\mathbf{\theta})}{\theta_{j}} = -\frac{1}{m}\sum_{i=1}^{m}(y_{i}\frac{1}{h_{\theta}(x_{i})}\frac{\partial h_\theta(x_i)}{\partial \theta_j} - (1-y_i)\frac{1}{1-h_{\theta}(x_{i})}\frac{\partial h_\theta(x_i)}{\partial \theta_j}) θj∂J(θ)=−m1∑i=1m(yihθ(xi)1∂θj∂hθ(xi)−(1−yi)1−hθ(xi)1∂θj∂hθ(xi))
= − 1 m ∑ i = 1 m ( y i 1 g ( θ T x i ) − ( 1 − y i ) 1 1 − g ( θ T x i ) ) ∂ g ( θ T x i ) ∂ θ j = -\frac{1}{m}\sum_{i=1}^{m}(y_{i}\frac{1}{g(\mathbf{\theta}^Tx_i)} - (1-y_i)\frac{1}{1-g(\mathbf{\theta}^Tx_i)})\frac{\partial g(\mathbf{\theta}^Tx_i)}{\partial \theta_j} =−m1∑i=1m(yig(θTxi)1−(1−yi)1−g(θTxi)1)∂θj∂g(θTxi)
= − 1 m ∑ i = 1 m ( y i 1 g ( θ T x i ) − ( 1 − y i ) 1 1 − g ( θ T x i ) ) g ( θ T x i ) ( 1 − g ( θ T x i ) ) ∂ θ T x i ∂ θ j = -\frac{1}{m}\sum_{i=1}^{m}(y_{i}\frac{1}{g(\mathbf{\theta}^Tx_i)} - (1-y_i)\frac{1}{1-g(\mathbf{\theta}^Tx_i)})g(\mathbf{\theta}^Tx_i)(1-g(\mathbf{\theta}^Tx_i))\frac{\partial \theta^Tx_i}{\partial \theta_j} =−m1∑i=1m(yig(θTxi)1−(1−yi)1−g(θTxi)1)g(θTxi)(1−g(θTxi))∂θj∂θTxi
= − 1 m ∑ i = 1 m ( y i ( 1 − g ( θ T x i ) ) − ( 1 − y i ) g ( θ T x i ) ) x i j = -\frac{1}{m}\sum_{i=1}^{m}(y_{i}(1-g(\mathbf{\theta}^Tx_i)) - (1-y_i)g(\mathbf{\theta}^Tx_i))x_i^j =−m1∑i=1m(yi(1−g(θTxi))−(1−yi)g(θTxi))xij
= − 1 m ∑ i = 1 m ( y i − g ( θ T x i ) ) x i j = -\frac{1}{m}\sum_{i=1}^{m}(y_i - g(\mathbf{\theta}^Tx_i))x_i^j =−m1∑i=1m(yi−g(θTxi))xij
= 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i j = \frac{1}{m}\sum_{i=1}^{m}(h_\theta(x_i) - y_i)x_i^j =m1∑i=1m(hθ(xi)−yi)xij
参数更新
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i j \theta_j := \theta_j - \alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x_i) - y_i)x_i^j θj:=θj−αm1∑i=1m(hθ(xi)−yi)xij
参考