Logistic 回归与最大熵模型
1. Logistic 回归模型
广义上的线性回归为:
f ( x ) = g − 1 ( ω x T + b ) f(x)=g^{-1}(\omega x^T+b) f(x)=g−1(ωxT+b)
其中g称为联系函数(应为连续函数且充分光滑),例如 l n ln ln等。
当进行分类问题,线性回归产生的模型预测值为 z = ω x T + b z=\omega x^T+b z=ωxT+b为实值,而y的取值为 { 0 , 1 } \{0,1\} {
0,1},这是需要寻找一个联系函数使得z值转化为0/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. y=⎩⎨⎧00.51z<0z=0z>0
该函数能够进行上述的转化,但是由于其不连续,所以不能作为联系函数。
于是这里引入对数几率函数(一种sigmoid函数),实现这样该转化过程。
logistic分布:设X连续随机变量符合logistic分布,则X的分布函数与密度函数为:
F ( x ) = P ( X ⩽ x ) = 1 1 + e − x f ( x ) = e − x ( 1 + e − x ) 2 F(x)=P(X\leqslant x)=\frac{1}{1+ e^{-x}}\\ f(x)=\frac{e^{-x}}{({1+e^{-x}})^2} F(x)=P(X⩽x)=1+e−x1f(x)=(1+e−x)2e−x
logistic函数分布曲线为S曲线(sigmoid curve),且为凸函数(这点在数值优化中很重要),可以将z转化为接近0或1的y值,并且在z=0附近的变化速度块。
带入广义的线性函数模型中,由此得到函数
y = 1 1 + e − ( ω x T + b ) ln y 1 − y = ω x T + b y=\frac{1}{1+e^{-({\omega x^T+b})}}\\ \ \\ \ln\frac{y}{1-y}=\omega x^T+b y=1+e−(ωxT+b)1 ln1−yy=ωxT+b
这里定义几率(odds): 模型分类后,样本x被分为正例(如y=1)的个数与样本x被分为反例(如y=0)的个数之比。
o d d s = y 1 − y odds = \frac{y}{1-y} odds=1−yy
对数几率为几率的对数。
l o g i t = ln y 1 − y logit = \ln\frac{y}{1-y} logit=ln1−yy
这里可以发现,对数几率与随机变量x为线性关系。
当用条件概率去理解该模型时,则可以得到二分logistic模型:
P ( Y = 1 ∣ x ) = e ω x T + b 1 + e ( ω x T + b ) P ( Y = 0 ∣ x ) = 1 1 + e ( ω x T + b ) P(Y=1|x)=\frac{e^{\omega x^T+b}}{1+e^{({\omega x^T+b})}}\\ \ \\ P(Y=0|x)=\frac{1}{1+e^{({\omega x^T+b})}}\\ P(Y=1∣x)=1+e(ωxT+b)eωxT+b P(Y=0∣x)=1+e(ωxT+b)1
由此可见该函数特点:线性函数的值越接近正无穷,概率值就越接近1;线性函数的值越接近负无穷,概率值就越接近0
2. 模型参数估计
在估计 ω , b \omega,b ω,b参数的过程中,应用极大似然估计法
这里令 ω = ( ω ( 1 ) , ω ( 2 ) , . . . , w ( n ) , b ) \omega = (\omega^{(1)},\omega^{(2)},...,w^{(n)},b) ω=(ω(1),ω(2),...,w(n),b)
所以最终问题转化为了求
ω ∗ = arg max ω L ( ω ) \omega^*=\arg\max_\omega L(\omega) ω∗=argωmaxL(ω)
因为 L ( ω ) L(\omega) L(ω)是关于 ω \omega ω的高阶可导连续函数,根据凸优化理论,经典的数值优化算法如梯度下降法,改进的迭代尺度法(IIS),牛顿法,拟牛顿法都可以求其解。
2.1 梯度下降法求参
梯度下降法是一种常用的一阶优化方法,是求解无约束优化问题最简单,最简单的方法之一。
- 首先对目标函数进行等价转换,更改为求极小值问题。
arg max ω L ( ω ) ⇒ arg min ω [ − L ( ω ) ] \arg\max_\omega L(\omega)\Rightarrow \arg\min_\omega [-L(\omega)] argωmaxL(ω)⇒argωmin[−L(ω)] - 取初值 w ( 0 ) ∈ R n , k = 0 w^{(0)} \in \R^n,k=0 w(0)∈Rn,k=0。
- 计算 L ( w ( k ) ) L(w^{(k)}) L(w(k))。
- 计算梯度 g k = g ( w ( k ) ) g_k = g(w^{(k)}) gk=g(w(k)),若 ∣ ∣ g k ∣ ∣ < 阈值 ϵ ||g_k||<\text{阈值}\epsilon ∣∣gk∣∣<阈值ϵ,停止迭代,令 w ∗ = w ( k ) w^*=w^{(k)} w∗=w(k);否则,令 p k = − g ( w ( k ) ) p_k=- g(w^{(k)}) pk=−g(w(k)),求步长 λ k \lambda_k λk使得:
L ( w ( k ) + λ k p k ) = min λ ⩾ 0 L ( w ( k ) + λ p k ) L(w^{(k)}+\lambda_kp_k)=\min_{\lambda\geqslant 0} L(w^{(k)}+\lambda p_k) L(w(k)+λkpk)=λ⩾0minL(w(k)+λpk) - 令 w ( k + 1 ) = w ( k ) + λ k p k w^{(k+1)}=w^{(k)}+\lambda_k p_k w(k+1)=w(k)+λkpk,计算 L ( w ( k + 1 ) ) L(w^{(k+1)}) L(w(k+1))。
若:
∣ ∣ L ( w ( k + 1 ) ) − L ( w ( k ) ) ∣ ∣ < ϵ o r ∣ ∣ w ( k + 1 ) − w ( k ) ∣ ∣ < ϵ ||L(w^{(k+1)})-L(w^{(k)})|| < \epsilon \ \ or \ \ || w^{(k+1)}-w^{(k)}|| < \epsilon ∣∣L(w(k+1))−L(w(k))∣∣<ϵ or ∣∣w(k+1)−w(k)∣∣<ϵ
则停止迭代,令 w ∗ = w ( k + 1 ) w^*=w^{(k+1)} w∗=w(k+1)。 - 否则, k = k + 1 k=k+1 k=k+1,转(3)。
因为目标函数为凸函数,因此可以保证其为全局最优解。
缺点:该方法的收敛速度有时较慢。
2.2 牛顿法求参
牛顿法也是求解无约束最优化问题的常用算法,(因为利用了二阶导)有收敛速度快的优点。通过迭代,每一步需要求解目标函数的黑塞矩阵的逆矩阵,进行求参。
- 首先对目标函数进行等价转换,更改为求极小值问题。
arg max ω L ( ω ) ⇒ arg min ω [ − L ( ω ) ] \arg\max_\omega L(\omega)\Rightarrow \arg\min_\omega [-L(\omega)] argωmaxL(ω)⇒argωmin[−L(ω)] - 取初值 w ( 0 ) ∈ R n , k = 0 w^{(0)} \in \R^n,k=0 w(0)∈Rn,k=0。
- 计算梯度 g k = g ( w ( k ) ) g_k = g(w^{(k)}) gk=g(w(k))
- 若 ∣ ∣ g k ∣ ∣ < 阈值 ϵ ||g_k||<\text{阈值}\epsilon ∣∣gk∣∣<阈值ϵ,停止迭代,令 w ∗ = w ( k ) w^*=w^{(k)} w∗=w(k)。
- 计算黑塞矩阵 H k = H ( x ( k ) ) H_k=H(x^{(k)}) Hk=H(x(k)),并求出 p k pk pk:
p k = − H k g k p_k=-H_kg_k pk=−Hkgk
黑塞矩阵:
H ( x ) = [ ∂ 2 f ∂ x i ∂ x j ] n ∗ n H(x)=[\frac{\partial ^2f}{\partial x_i\partial x_j}]_{n*n} H(x)=[∂xi∂xj∂2f]n∗n
函数f(x)有机制的必要条件是在极值点处的一阶导数为0,即梯度为0,特别是当 H ( x ( k ) ) H(x^{(k)}) H(x(k))为正定矩阵时,函数f(x)的极值为极小值。
- 令 w ( k + 1 ) = w ( k ) + p k w^{(k+1)}=w^{(k)}+p_k w(k+1)=w(k)+pk。
- 令 k = k + 1 k=k+1 k=k+1,转(3)。
缺点:在步骤(5)中由于要求 H − 1 H^{-1} H−1计算复杂,耗费时间。
2.3 拟牛顿法求参
为了解决计算 H − 1 H^{-1} H−1的复杂问题,考虑用一个n阶矩阵 G k = G ( x ( k ) ) G_k=G(x^{(k)}) Gk=G(x(k))来近似代替 H k − 1 = H − 1 ( x ( k ) ) H_k^{-1}=H^{-1}(x^{(k)}) Hk−1=H−1(x(k)).
2.3.1 算法DFP
该算法通过 G k + 1 G_{k+1} Gk+1替代 H − 1 H^{-1} H−1,即满足拟牛顿条件:
G k + 1 ( g k + 1 − g k ) = x ( k + 1 ) − x ( k ) G_{k+1}(g_{k+1}-g_k)=x^{(k+1)}-x^{(k)} Gk+1(gk+1−gk)=x(k+1)−x(k)
- 首先对目标函数进行等价转换,更改为求极小值问题。
arg max ω L ( ω ) ⇒ arg min ω [ − L ( ω ) ] \arg\max_\omega L(\omega)\Rightarrow \arg\min_\omega [-L(\omega)] argωmaxL(ω)⇒argωmin[−L(ω)] - 选定初始点 w ( 0 ) w^{(0)} w(0),取 G 0 G_0 G