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名字的由来。算法流程如下:
- 初始化\\(\\mathbf w\\)
- 根据\\(\\eqref2\\)计算更新\\(\\mathbf w\\)
- 迭代至收敛
Quasi-Newton methods
? 牛顿方法由于涉及矩阵逆运算,
以上是关于Logistic Regression的主要内容,如果未能解决你的问题,请参考以下文章
[机器学习实战-Logistic回归]使用Logistic回归预测各种实例