Logistic Regression

Posted demonhunter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Logistic Regression相关的知识,希望对你有一定的参考价值。

Logistic Regression

模型介绍

? 逻辑回归作为一个判别模型,其形式如下:
\\[ p(y=1\\vert \\mathbf x)=Ber\\left(y\\vert \\textsigm\\left(\\mathbf w^T\\mathbf x\\right)\\right) \\]
参数为\\(\\mathbfw\\),假设\\(y\\in \\left \\0,1\\right \\\\),得到NLL
\\[ NLL=-\\sum_i=1^Ny_i\\log^u_i+(1-y_i)\\log^1-u_i\\tag1\\label1 \\]
? 与Linear Regression不同,极大化NLL得不到解析解,对上式求导得到梯度和Hession矩阵
\\[ \\beginalign* \\mathbfg&=\\sum_i^N\\left(u_i-y_i\\right)\\mathbf x_i =X^T\\left(\\mathbf u -\\mathbf y\\right)\\\\mathbfH&=\\sum_i^N u_i\\left(1-u_i\\right)\\mathbf x_i\\mathbf x_i^T=X^TSX \\endalign* \\]
式中\\(S=\\textdiag\\left(u_i\\left(1-u_i\\right)\\right)\\),可以看出H为正定矩阵

优化方法

? 对于无约束的凸优化问题\\(\\eqref1\\),可以采用Steepest descent、Newton‘s method、Iteratively reweighted least square、Quasi-Newton‘s methods等方法求解

Steepest descent

? 在二范数下,Steepest descent的下降方向为负梯度方向,即\\(-\\mathbf g\\)(可查阅之前的凸优化章节)
\\[ \\mathbf w^t+1 = \\mathbf w^t-\\eta\\mathbf g \\]
\\(\\eta\\)为学习率

牛顿方法

牛顿方法是二阶方法,其求解步骤如下

  • 设定初始点\\(\\mathbf x_0\\)以及收敛条件\\(\\epsilon\\)
  • 计算\\(\\lambda(\\mathbf x)\\),并与收敛条件进行比较,但尚未收敛时执行以下步骤
  • 计算\\(\\Delta\\mathbf x_st=-\\mathbf H^-1\\mathbf g\\),根据计算的步长\\(\\eta\\),对参数\\(\\mathbf w\\)进行更新

可以看出牛顿方法需要对矩阵进行求逆,因此即使\\(\\mathbf H\\)可逆,当遇到大规模问题时,逆计算开销很大。后续的Quasi-Newton methods会对这方面进行优化,用一些方法得到近似的\\(\\mathbf H\\)

Iteratively reweighted least square

? 当使用牛顿法解\\(\\eqref1\\)时,得到参数\\(\\mathbf w\\)的迭代过程如下
\\[ \\beginalign* \\mathbf w^t+1 &=\\mathbf w^t-\\mathbf H^-1\\mathbf g\\&= \\mathbf w^t-\\left(X^TSX\\right)^-1X^T\\left(\\mathbf u - \\mathbf g\\right)\\&=\\left(X^TSX\\right)^-1\\left[\\left(X^TSX\\right)\\mathbf w-X^T\\left(\\mathbf u -\\mathbf g\\right)\\right ]\\& = \\left(X^TSX\\right)^-1X^T\\left(SX\\mathbf w-(\\mathbf u -\\mathbf y)\\right)\\& =\\left(X^TSX\\right)^-1X^TS z \\tag2\\label2 \\endalign* \\]
式中\\(z=Xw-S^-1(\\mathbf u-\\mathbf y)\\),结合线性回归的Normal Equation,可以发现上述\\(\\mathbf w^t+1\\)的解析式是\\(\\sum_\\limitsi^NS_i\\left(z_i-\\mathbf w^T\\mathbf x_i\\right)^2\\)的极小值。\\(S_i\\)可以被看为权重,在迭代\\(\\mathbf w\\)时其会发生变化,这也是Iteratively reweignted least square名字的由来。算法流程如下:

  1. 初始化\\(\\mathbf w\\)
  2. 根据\\(\\eqref2\\)计算更新\\(\\mathbf w\\)
  3. 迭代至收敛

Quasi-Newton methods

? 牛顿方法由于涉及矩阵逆运算,

以上是关于Logistic Regression的主要内容,如果未能解决你的问题,请参考以下文章

logistic回归的介绍

probit回归与logistic回归有啥区别

[机器学习实战-Logistic回归]使用Logistic回归预测各种实例

R构建Logistic回归实战(Logistic Regression)

如何用matlab求解logistic模型

logistic分类