逻辑斯蒂回归与最大熵模型----《统计学习方法》第6章

逻辑斯蒂回归模型与最大熵模型都属于对数线性模型
学习算法:改进的迭代尺度算法和拟牛顿法。

逻辑斯蒂回归模型

逻辑斯蒂分布

分布函数 F ( x ) = 1 1 + e − ( x − μ ) / γ F(x)=\frac{1}{1+e^{-(x-\mu)/\gamma}} F(x)=1+e(xμ)/γ1属于逻辑斯蒂函数,形状是一条S形曲线,曲线以 ( μ , 1 / 2 ) (\mu,1/2) μ,1/2为中心对称点。 μ \mu μ越小,曲线在中心附近增长越快。

二项逻辑斯蒂回归

二项逻辑斯蒂回归模型: P ( Y = 1 ∣ x ) = e x p ( w ⋅ x ) 1 + e x p ( w ⋅ x ) = 1 1 + e x p ( − w ⋅ x ) P(Y=1|x)=\frac{{\rm exp}(w \cdot x)}{1+{\rm exp}(w \cdot x)}=\frac{1}{1+{\rm exp}(-w\cdot x)} P(Y=1x)=1+exp(wx)exp(wx)=1+exp(wx)1, P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ⋅ x ) P(Y=0|x)=\frac{1}{1+{\rm exp}(w \cdot x)} P(Y=0x)=1+exp(wx)1
一个事件的几率(odd)是指该事件发生的概率与该事件不发生的概率的比值。对逻辑斯蒂回归而言,对数几率为: log ⁡ P ( Y = 1 ∣ X ) 1 − P ( Y = 1 ∣ X ) = w ⋅ x {\log\frac{P(Y=1|X)}{1-P(Y=1|X)}}=w\cdot x log1P(Y=1X)P(Y=1X)=wx,也就是说在逻辑斯蒂回归模型中输出Y=1的对数几率是输出x的线性函数。在已知这个线性函数之后,我们又可以反推得到 P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1x),这时,线性函数的值越接近正无穷,概率值就越接近1;线性函数的值越接近负无穷,概率值越接近0.

模型参数估计

参数估计采用极大似然估计,假设模型为伯努利二值模型,也就是 P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1|x)=\pi(x),P(Y=0|x)=1-\pi(x) P(Y=1x)=π(x),P(Y=0x)=1π(x),那么得出似然函数为 ∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^N[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i} i=1N[π(xi)]yi[1π(xi)]1yi
对数似然函数化简之后为: L ( w ) = ∑ i = 1 N [ y i log ⁡ ( π ( x i ) ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) ] L(w)=\sum_{i=1}^N[ y_i\log (\pi(x_i))+(1-y_i)\log(1-\pi(x_i))] L(w)=i=1N[yilog(π(xi))+(1yi)log(1π(xi))]对数似然函数求最大值得到w的估计值。求最大似然的最大值也可以转换为求-L的最小值,LR的损失函数就是负的对数似然函数。
这样,问题就变成了以对数似然函数为目标函数的最优化问题。逻辑斯蒂回归学习中通常采用的方法是梯度下降法及拟牛顿法。
假设w的极大似然估计为 w ^ \hat w w^,那么学习到的逻辑斯蒂回归模型为: P ( Y = 1 ∣ x ) = e x p ( w ^ ⋅ x ) 1 + e x p ( w ^ ⋅ x ) = 1 1 + e x p ( − w ^ ⋅ x ) P(Y=1|x)=\frac{{\rm exp}(\hat w \cdot x)}{1+{\rm exp}(\hat w \cdot x)}=\frac{1}{1+{\rm exp}(-\hat w\cdot x)} P(Y=1x)=1+exp(w^x)exp(w^x)=1+exp(w^x)1, P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ^ ⋅ x ) P(Y=0|x)=\frac{1}{1+{\rm exp}(\hat w \cdot x)} P(Y=0x)=1+exp(w^x)1.
扩展:逻辑斯蒂回归的损失函数为 c o s t ( π ( x i ) , y i ) = − y i log ⁡ ( π ( x i ) ) − ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) \rm cost(\pi( x_i),y_i)=-y_i\log (\pi(x_i))-(1-y_i)\log(1-\pi(x_i)) cost(π(xi),yi)=yilog(π(xi))(1yi)log(1π(xi)).从公式可以看出,当y=1时, π ( x i ) \pi(x_i) π(xi)越接近1损失函数越小;y=0时, π ( x i ) \pi(x_i) π(xi)越接近0损失函数越小。因此极大似然函数的最大化对应于损失函数最小化。

多项逻辑斯蒂回归模型

可以由二项逻辑斯蒂模型扩展出

最大熵模型

模型学习的最优化算法

逻辑斯蒂回归模型、最大熵模型学习归结为以似然函数为目标函数的最优化问题,通常通过迭代求解。常用方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法。牛顿法或拟牛顿法一般收敛速度更快。

改进的迭代尺度法

拟牛顿法

牛顿法和拟牛顿法也是求解无约束最优化问题的常用方法,有收敛速度快的优点。牛顿法是迭代算法,每一步需要求解目标函数的海塞矩阵的逆矩阵,计算比较复杂。拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵或海塞矩阵,简化了这一计算过程。
牛顿法:先对需要最小化的函数f(x)在点 x ( k ) x^{(k)} x(k)处做二阶泰勒展开:
f ( x ) = f ( x ( k ) ) + g k T ( x − x ( k ) ) + 1 2 ( x − x ( k ) ) T H ( x ( k ) ) ( x − x ( k ) ) f(x)=f(x^{(k)})+g_k^T(x-x^{(k)})+\frac{1}{2}(x-x^{(k)})^TH(x^{(k)})(x-x^{(k)}) f(x)=f(x(k))+gkT(xx(k))+21(xx(k))TH(x(k))(xx(k))
这里, g k g_k gk是f(x)的梯度向量在点 x ( k ) x^{(k)} x(k)的值, H ( x ( k ) ) H(x^{(k)}) H(x(k))是f(x)的海塞矩阵 H ( x ) = [ ∂ 2 f ∂ x i ∂ y j ] n × n H(x)=[\frac{\partial^2f}{\partial x_i \partial y_j}]_{n\times n} H(x)=[xiyj2f]n×n在点 x ( k ) x^{(k)} x(k)的值。
函数 f ( x ) f(x) f(x)有极值的必要条件是在极值点处一阶导数为0,即梯度向量为0.利用二阶泰勒展开的公式求导可得:
∇ f ( x ) = g k + H k ( x − x ( k ) ) \nabla f(x)=g_k+H_k(x-x^{(k)}) f(x)=gk+Hk(xx(k))
令其导数为0,则有 g k + H k ( x ( k + 1 ) − x ( k ) ) = 0 g_k+H_k(x^{(k+1)}-x^{(k)})=0 gk+Hk(x(k+1)x(k))=0因此有 x ( k + 1 ) = x ( k ) − H k − 1 g k x^{(k+1)}=x^{(k)}-H_k^{-1}g_k x(k+1)=x(k)Hk1gk,用这个迭代式求极小值的算法就称为牛顿法。
牛顿法中计算海塞矩阵的逆矩阵比较复杂,因此考虑用一个n阶矩阵 G k = G ( x ( k ) ) G_k=G(x^{(k)}) Gk=G(x(k))来近似替代海塞矩阵的逆矩阵。

扩展总结:

1.假设函数的由来
在逻辑回归中, p ( y ∣ x ; θ ) p(y|x;\theta) p(yx;θ)服从伯努利分布,也就是 p ( y = 1 ∣ x ) = ϕ , p ( y = 0 ∣ x ) = 1 − ϕ p(y=1|x)=\phi,p(y=0|x)=1-\phi p(y=1x)=ϕ,p(y=0x)=1ϕ,因此 p ( y , ϕ ) = ϕ y ( 1 − ϕ ) 1 − y p(y,\phi)=\phi^y(1-\phi)^{1-y} p(y,ϕ)=ϕy(1ϕ)1y,与广义线性模型中假设对比得到: h θ ( x ) = 1 1 + e − w ⋅ x h_\theta(x)=\frac{1}{1+e^{-w\cdot x}} hθ(x)=1+ewx1
2.梯度下降法求解损失函数的推导 (这里的 π ( x i ) \pi(x_i) π(xi)= h θ ( x ) h_\theta(x) hθ(x)
损失函数为: L ( w ) = − ∑ i = 1 N [ y i log ⁡ ( π ( x i ) ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) ] L(w)=-\sum_{i=1}^N[ y_i\log (\pi(x_i))+(1-y_i)\log(1-\pi(x_i))] L(w)=i=1N[yilog(π(xi))+(1yi)log(1π(xi))]
对于单个点 ( x i , y i ) (x_i,y_i) (xi,yi)而言,损失函数对w求导有:
L ( y i , y ^ i ) ∂ w = − y i ⋅ 1 π ( x i ) ⋅ ∂ π ( x i ) ∂ w + ( 1 − y i ) 1 1 − π ( x i ) ⋅ ∂ π ( x i ) ∂ w = ( − y i ⋅ 1 π ( x i ) + ( 1 − y i ) 1 1 − π ( x i ) ) ⋅ ∂ π ( x i ) ∂ w = h θ ( x ) − y h θ ( x ) ( 1 − h θ ( x ) ) ⋅ h θ ( x ) ( 1 − h θ ( x ) ) ⋅ x i = ( h θ ( x i ) − y i ) x i \frac{L(y_i,\hat y_i)}{\partial w}=-y_i\cdot\frac{1}{\pi(x_i)}\cdot\frac{ \partial \pi(x_i)}{ \partial w}+(1-y_i)\frac{1}{1-\pi(x_i)}\cdot\frac{ \partial \pi(x_i)}{ \partial w}\\= (-y_i\cdot\frac{1}{\pi(x_i)}+(1-y_i)\frac{1}{1-\pi(x_i)})\cdot\frac{ \partial \pi(x_i)}{ \partial w}\\=\frac{h_\theta(x)-y}{h_\theta(x)(1-h_\theta(x))}\cdot h_\theta(x)(1-h_\theta(x))\cdot x_i\\=(h_\theta(x_i)-y_i)x_i wL(yi,y^i)=yiπ(xi)1wπ(xi)+(1yi)1π(xi)1wπ(xi)=(yiπ(xi)1+(1yi)1π(xi)1)wπ(xi)=hθ(x)(1hθ(x))hθ(x)yhθ(x)(1hθ(x))xi=(hθ(xi)yi)xi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值