目标:用判别模型解决分类问题
逻辑回归源于对线性回归算法的改进
通过引入单调可微函数 g ( ⋅ ) g(\cdot) g(⋅) ,线性回归模型可以推广为 y = g − 1 ( w T x ) y=g^{-1}(w^Tx) y=g−1(wTx) ,进而将线性回归模型预测值与分类任务的离散标记联系起来。当 g ( ⋅ ) g(\cdot) g(⋅) 取成对数形式时,线性回归就演变成了逻辑回归
在简单的 二分类问题 中,分类的标记可以抽象为 0 0 0 和 1 1 1 ,因而线性回归中的实值输出需要映射为二进制的结果
逻辑回归中,实现这一映射的是对数几率函数,也即 sigmod函数
ϕ ( z ) = 1 1 + e − z = 1 1 + e − w T x \phi(z)=\frac{1}{1+e^{-z}}=\frac{1}{1+e^{-w^Tx}} ϕ(z)=1+e−z1=1+e−wTx1
对数几率函数能够将线性回归从负无穷到正无穷的输出范围压缩到 ( 0 , 1 ) (0,1) (0,1) 之间
当线性回归结果是 z = 0 z=0 z=0 时,逻辑回归的结果是 ϕ ( z ) = 0.5 \phi(z)=0.5 ϕ(z)=0.5 ,这可以是做一个分界点
当 z > 0 z>0 z>0 ,则 ϕ ( z ) > 0.5 \phi(z)>0.5 ϕ(z)>0.5 ,此时逻辑回归的结果就被判为正例
当 z < 0 z<0 z<0 ,则 ϕ ( z ) < 0.5 \phi(z)<0.5 ϕ(z)<0.5 ,此时逻辑回归的结果就被判为负例
如果将对数几率函数的结果 ϕ ( z ) \phi(z) ϕ(z) 视为样本 x x x 作为正例的可能性 P ( y = 1 ∣ x ) P(y=1\vert x) P(y=1∣x),则 1 − ϕ ( z ) 1-\phi(z) 1−ϕ(z) 就是其作为反例的可能性 P ( y = 0 ∣ x ) P(y=0\vert x) P(y=0∣x) ,两者比值 0 < ϕ ( z ) 1 − ϕ ( z ) < ∞ 0<\frac{\phi(z)}{1-\phi(z)}<\infty 0<1−ϕ(z)ϕ(z)<∞ ,称为 几率 。
对 几率 取对数,可得到
l n ϕ ( z ) 1 − ϕ ( z ) = w T x ln\frac{\phi(z)}{1-\phi(z)}=w^Tx ln1−ϕ(z)ϕ(z)=wTx
输入: x = { x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) } ∈ X ⊆ R m x=\{x^{(1)},x^{(2)},\cdots,x^{(m)}\}\in \mathcal{X}\subseteq R^m x={x(1),x(2),⋯,x(m)}∈X⊆Rm ;
需对输入的特征向量进行归一化
若特征数值过大,样本会落在 sigmod 的饱和区,无法对 x x x 进行正确分类
输出: Y ∈ { 0 , 1 } Y\in \{0,1\} Y∈{0,1}
逻辑回归模型为 条件概率表示的判别模型
ϕ ( z ) = P ( y = 1 ∣ x ) = 1 1 + e − w T x = e w T x 1 + e w T x 1 − ϕ ( z ) = P ( y = 0 ∣ x ) = e − w T x 1 + e − w T x = 1 1 + e w T x \phi(z)=P(y=1\vert x)=\frac{1}{1+e^{-w^Tx}}=\frac{e^{w^Tx}}{1+e^{w^Tx}}\\ 1-\phi(z)=P(y=0\vert x)=\frac{e^{-w^Tx}}{1+e^{-w^Tx}}=\frac{1}{1+e^{w^Tx}} ϕ(z)=P(y=1∣x)=1+e−wTx1=1+ewTxewTx1−ϕ(z)=P(y=0∣x)=1+e−wTxe−wTx=1+ewTx1
对于给定的实例,逻辑回归模型比较两个条件概率值的大小,并将实例划分到概率较大的分类中
假设样本独立同分布
学习时,逻辑回归模型在给定的训练数据集上应用 最大似然估计法 确定模型的参数
似然函数可表示为
L ( w ∣ x ) = P ( ω ∣ x ) = x i 独立同分布 ∏ i = 1 n [ P ( y = 1 ∣ x i , w ) ] y i [ 1 − P ( y = 1 ∣ x i , w ) ] 1 − y i L(w\vert x)=P(\omega\vert x)\xlongequal{x_i独立同分布}\prod\limits_{i=1}^n[P(y=1\vert x_i,w)]^{y_i}[1-P(y=1\vert x_i,w)]^{1-y_i} L(w∣x)=P(ω∣x)xi独立同分布i=1∏n[P(y=1∣xi,w)]yi[1−P(y=1∣xi,w)]1−yi
取对数后简化运算
ln L ( w ∣ X ) = ∑ i = 1 n { y i ln P ( Y = 1 ∣ x i , w ) + ( 1 − y i ) ln [ 1 − P ( Y = 1 ∣ x i , w ) ] } \ln L(w\vert X)=\sum\limits_{i=1}^n\left\{y_i\ln P(Y=1\vert x_i,w)+(1-y_i)\ln \left[1-P(Y=1\vert x_i,w)\right]\right\} lnL(w∣X)=i=1∑n{yilnP(Y=1∣xi,w)+(1−yi)ln[1−P(Y=1∣xi,w)]}
由于单个样本的标记 y i y_i yi 只能取得0或1,因而上式中的两项中只有一个非零值,代入对数几率,经过化简后可以得到
ln L ( w ∣ X ) = ∑ i = 1 n [ y i ( w T x i ) − ln ( 1 + e w T x i ) ] \ln L(w\vert X)=\sum\limits_{i=1}^n\left[y_i(w^Tx_i)-\ln(1+e^{w^Tx_i})\right] lnL(w∣X)=i=1∑n[yi(wTxi)−ln(1+ewTxi)]
寻找上述函数的最大值就是以对数似然函数为目标函数的最优化问题,通常使用 梯度下降法 或 牛顿法 求解
后验概率最大化原则 ⟺ \iff ⟺ 期望风险最小化策略
a r g max ω L ( ω ) = a r g max ω ∑ i = 1 n [ y i ( w T x i ) − ln ( 1 + e w T x i ) ] arg\max\limits_{\omega}L(\omega)=arg\max\limits_{\omega}\sum\limits_{i=1}^n\left[y_i(w^Tx_i)-\ln(1+e^{w^Tx_i})\right] argωmaxL(ω)=argωmaxi=1∑n[yi(wTxi)−ln(1+ewTxi)]
基于 ω ^ \hat{\omega} ω^ 得到概率判别模型
{ P ( y = 1 ∣ x ) = e ω ^ T ⋅ x 1 + e ω ^ T ⋅ x P ( y = 0 ∣ x ) = 1 1 + e ω ^ T ⋅ x \begin{cases} P(y=1\vert x)=\frac{e^{\hat{\omega}^T\cdot x}}{1+e^{\hat{\omega}^T\cdot x}}\\ P(y=0\vert x)=\frac{1}{1+e^{\hat{\omega}^T\cdot x}} \end{cases} ⎩ ⎨ ⎧P(y=1∣x)=1+eω^T⋅xeω^T⋅xP(y=0∣x)=1+eω^T⋅x1
通过梯度下降法/拟牛顿法 ⇒ \Rightarrow ⇒ 数值解
ω ← ω − η ∂ L ( ω ) ∂ ω \omega\leftarrow \omega-\eta \frac{\partial L(\omega)}{\partial \omega} ω←ω−η∂ω∂L(ω)
线性模型的损失函数
J ( ω ) = 1 2 n ∑ i = − 1 n [ y ω ( x i ) − y i ] 2 J(\omega)=\frac{1}{2n}\sum\limits_{i=-1}^n\left[y_{\omega}(x_i)-y_i\right]^2 J(ω)=2n1i=−1∑n[yω(xi)−yi]2
逻辑斯蒂回归给出的是某一类概率
P ( y = 1 ∣ x , ω ) = 1 1 + e − ω T x P(y=1\vert x,\omega)=\frac{1}{1+e^{-\omega^Tx}} P(y=1∣x,ω)=1+e−ωTx1
预测 y = 1 y=1 y=1 且期望为 1 1 1 ,对于损失函数的估计有极大似然估计
J ( ω ) = − 1 n [ ∑ i = 1 n ∑ k = 1 2 I ( y i = k ) ln P ( y i = k ∣ x i , ω ) ] = − 1 n [ ∑ i = 1 n y i ln P ( y i = 1 ∣ x i , ω ) + ( 1 − y i ) ln P ( y i = 0 ∣ x i , ω ) ] \begin{aligned} J(\omega)&=-\frac{1}{n}\left[\sum\limits_{i=1}^n\sum\limits_{k=1}^2I(y_i=k)\ln P(y_i=k\vert x_i,\omega)\right]\\ &=-\frac{1}{n}\left[\sum\limits_{i=1}^ny_i\ln P(y_i=1\vert x_i,\omega)+(1-y_i)\ln P(y_i=0\vert x_i,\omega)\right] \end{aligned} J(ω)=−n1[i=1∑nk=1∑2I(yi=k)lnP(yi=k∣xi,ω)]=−n1[i=1∑nyilnP(yi=1∣xi,ω)+(1−yi)lnP(yi=0∣xi,ω)]
I ln P I\ln P IlnP 表示预测正确的部分,对于预测结果来说,越大越好;对于损失函数来说,越小越好,所以添加负号
对于损失函数的最优化,可通过梯度下降法
ω [ t ] ← ω [ t + 1 ] − α ∂ J ( ω ) ∂ ω \omega^{[t]}\leftarrow \omega^{[t+1]}-\alpha\frac{\partial J(\omega)}{\partial \omega} ω[t]←ω[t+1]−α∂ω∂J(ω)
将一句话映射为向量形式,对每句话进行逻辑斯蒂回归
{ x i : 某个词词频 ω i : 每个词权重 { 正面词 ω i > 0 中性词 ω i = 0 负面词 ω i < 0 \begin{cases} x_i:某个词词频\\ \omega_i:每个词权重\begin{cases} 正面词\quad \omega_i>0\\ 中性词\quad \omega_i=0\\ 负面词\quad \omega_i<0 \end{cases} \end{cases} ⎩ ⎨ ⎧xi:某个词词频ωi:每个词权重⎩ ⎨ ⎧正面词ωi>0中性词ωi=0负面词ωi<0
整句话表示为
h = f ( ∑ i = 1 n ω i x i ) = f ( ω T ⋅ x ) h=f(\sum\limits_{i=1}^n\omega_i x_i)=f(\omega^T\cdot x) h=f(i=1∑nωixi)=f(ωT⋅x)
权重的计算
{ 某个词重要性:在本篇大量出现,在其他文章出现较少 t e r m f r e q u e n c y :文档中词频,越大表示越重要 I n v e r s e D o c u m e n t f r e q u e n c y :其他语料库中出现的词频,越小表示其他文档中出现少,当前文档中的词比较重要 \begin{cases} 某个词重要性:在本篇大量出现,在其他文章出现较少\\ term frequency:文档中词频,越大表示越重要\\ Inverse Document frequency:其他语料库中出现的词频,越小表示其他文档中出现少,当前文档中的词比较重要 \end{cases} ⎩ ⎨ ⎧某个词重要性:在本篇大量出现,在其他文章出现较少termfrequency:文档中词频,越大表示越重要InverseDocumentfrequency:其他语料库中出现的词频,越小表示其他文档中出现少,当前文档中的词比较重要
当训练数据集是从所有数据中均匀抽取且数据量较大时,可以 从信息论角度 解释:
对数似然函数的最大化可以等效为待求模型与最大熵模型之间的KL散度的最小化。即逻辑回归对参数做出的额外假设是最少的。
从 数学角度 看,线性回归与逻辑回归之间的关系在于非线性的对数似然函数
从特征空间看,两者的区别在于数据判断边界上的变化
利用回归模型只能得到线性的判定边界;
逻辑回归则在线性回归的基础上,通过对数似然函数的引入使判定边界的形状不再受限于直线
联系
逻辑回归与朴素贝叶斯都是利用条件概率 P ( Y ∣ X ) P(Y\vert X) P(Y∣X) 完成分类任务,二者在特定条件下可以等效
区别
属于不同的监督学习类型
当朴素贝叶斯学习器的条件独立性假设不成立时,逻辑回归与朴素贝叶斯方法通常会学习到不同的结果
当训练样本数接近无穷大时,逻辑回归的渐进分类准确率要优于朴素贝叶斯方法
逻辑回归不依赖于条件独立性假设,偏差更小,但方差更大
当训练样本稀疏时,朴素贝叶斯的性能优于逻辑回归
收敛速度不同:逻辑回归的收敛速度慢于朴素贝叶斯方法
要让逻辑回归处理多分类问题,需要做一些改进
通过多次二分类实现多个类别的标记
等效为直接将逻辑回归应用在每个类别上,对每个类别建立一个二分类器
如果输出的类别标记数为 m m m ,就可以得到 m m m 个针对不同标记的二分类逻辑回归模型,对一个实例的分类结果就是这 m m m 个分类函数中输出值最大的那个
对一个实例执行分类需要多次使用逻辑回归算法,效率低下
直接修改逻辑回归的似然概率,使之适应多分类问题——softmax回归
softmax给出的是实例在每一种分类结果下出现的概率
y = { 1 , 2 , ⋯ , K } y=\{1,2,\cdots,K\} y={1,2,⋯,K}
P ( y = k ∣ x ) = e w k T x 1 + ∑ k = 1 K − 1 e w k T x , k = 1 , 2 , ⋯ , K − 1 P ( y = K ∣ x ) = 1 1 + ∑ k = 1 K − 1 e w k T x P ( y = K ∣ x ) = 1 − P ( y = k ∣ x ) = 1 − ∑ k = 1 K − 1 e w k T x 1 + ∑ k = 1 K − 1 e w k T x \begin{aligned} P(y=k\vert x)&=\frac{e^{w_k^Tx}}{1+\sum\limits_{k=1}^{K-1} e^{w_k^Tx}},k=1,2,\cdots,K-1\\ P(y=K\vert x)&=\frac{1}{1+\sum\limits_{k=1}^{K-1} e^{w_k^Tx}}\\ P(y=K\vert x)&=1-P(y=k\vert x)=1-\frac{\sum\limits_{k=1}^{K-1}e^{w_k^Tx}}{1+\sum\limits_{k=1}^{K-1} e^{w_k^Tx}} \end{aligned} P(y=k∣x)P(y=K∣x)P(y=K∣x)=1+k=1∑K−1ewkTxewkTx,k=1,2,⋯,K−1=1+k=1∑K−1ewkTx1=1−P(y=k∣x)=1−1+k=1∑K−1ewkTxk=1∑K−1ewkTx
Softmax回归模型的训练与逻辑回归模型类似,都可以转化为通过梯度下降法或者拟牛顿法解决最优化问题
输出结果只能是属于一个类别时,Softmax分类器更加高效
输出结果可能出现交叉情况时,多个二分类逻辑回归模型性能好,可以得到多个类别的标记