逻辑斯蒂回归(Logistic Regression)

一. 广义线性模型(generalized linear model)

1. 线性回归(Linear Regression)——回归算法

(1)因变量y是连续性的定量型变量(或者近似是连续性数据),服从高斯分布

(2)用直线去拟合数据,实现最小二乘意义下的最小预测误差,y=w^Txy=\omega ^Tx+b


2. 对数线性回归(Log-linear Regression)

(1)令线性回归模型预测逼近y的衍生物lny),则lny=\omega ^Tx+b

(2)形式上是线性回归的,但实质上已是在求取输入空间到输出空间的非线性函数映射


3. 逻辑回归(Logit Regression)——分类算法,离散选择模型

(1)因为一件事发生与不发生有对立性,而几率(odds)恰好反应了某一事件两个对立面,具有很好的对称性,引入odds(A)=\frac{p}{1-p}

(2)Log-it变换:Log-it函数能把自变量从(0,1)连续单调地映射到正负无穷。使得因素的微小变化,带来结果的很大变化。简称“对数发生比log-odds”。

                                 logit(p)=log\frac{p}{1-p} =\omega ^Tx+b    (左侧odd的对数,右侧线性)

在线性回归中,ω表示x增加1个单位,y的平均改变

在逻辑回归中,ω表示x增加1个单位,log-odds的平均改变,odds变为原来的e^ω

x与p(x)无直接的线性关系,仅有相关关系

(3)应用:考察对两种货币危机定义情况下发生货币危机的可能性,即利率调整引起的汇率大幅度贬值和货币的贬值幅度超过了以往的水平的情形,而以往的模型只考虑一种情况。

odd(A)= \frac{p}{1−p}                      logit(p)=log( \frac{p}{1−p}  )=\omega ^Tx  

4. 逻辑斯蒂回归(Logistic Regression)——分类算法,概率判别模型

(1)Sigmoid函数:以线性回归为基础,通过sigmoid引入非线性因素

                            sigmoid(x)=\frac{1}{1+e^{−x}}=\frac{e^x}{1+e^x} =p    (左侧非线性,右侧概率)

① Sigmoid与Logit互为反函数

② sigmoid函数有非线性化和限幅的作用,限制在(0,1)之间,才能够用于分类。

③ sigmoid 函数连续,单调递增,关于(0,0.5) 中心对称

④ 对sigmoid函数求导快速:p′=p*(1-p)


(2)Logistic回归:估计事物的可能性,通过样本属于正类或负类的可能性来分类。简称“对数几率回归”、“对率回归”。

                                                        y=\frac{1}{1+e^{-(\omega ^Tx+b)}}

① 因变量是二分(可扩展到多分类)非线性定性型变量,服从伯努利分布

② 找到最佳拟合参数集,用于对特征加权,选择用Sigmoid函数来确定二分类的结果

② 其线性表达式即为Logit回归     \ln \frac{y}{1-y} =\omega ^Tx+b=logit(y)


(3)应用:在流行病学中应用较多,根据症状(自变量)预测某疾病发生的概率等。


二. 模型参数估计——极大似然估计

1. 决策边界(decision boundary)

(1)定义:将某个样本分类成"类别1"还是"类别0"的分界点就在\omega ^T · x+b = 0的位置,这个位置被称为决策边界。

(2)线性决策边界(linear decision boundaries)

逻辑回归算法的决策边界是一根很简单的直线


(3)非线性决策边界(non-linear decision boundaries)

可使用kNN


2. 交叉熵(Cross Entropy)

(1)熵:是信息量的期望值,熵越小,随机变量的取值也就越容易确定,系统越稳定

                                            𝐻(A)=−\sum_{i=1}^𝑛 𝑝_𝑖·log p_i

(2)相对熵:也叫KL散度,表示同一个随机变量的两个不同分布间的距离,散度越小,分布越相同,预测越准。

                                        𝐷_{𝐾𝐿}(A||B)=\sum_{i} 𝑝_𝑖·𝑙𝑜𝑔\frac{𝑝_𝑖}{𝑞_𝑖}

(3)交叉熵:是对「surprise」的度量,度量两个概率分布间的差异性信息,交叉熵小,「surprise」程度比较低,输出越接近我们期望的值

                              𝐻(A,B)=−\sum_{i=1}^𝑛 𝑝_𝑖·log q_i=D_{KL}(A||B)+H(A)

当A固定不变时,那么最小化KL散度𝐷_{𝐾𝐿}(A||B)等价于最小化交叉熵𝐻(A,B)


3. 损失函数

(1)损失函数:单个训练样本预测的结果与实际结果的误差。

          用交叉熵:L( \hat{y} ,y)=−[y·log( \hat{y} )+(1−y)·log(1− \hat{y} )]

(2)用交叉熵的优势

① 可以衡量p与q的相似性

② 使用sigmoid函数梯度下降时,能避免均方误差损失函数学习速率降低的问题


4. 代价函数

(1)代价函数:整个训练集,所有样本误差总和(所有损失函数总和)的平均值

                                                    J(w,b)= \frac{1}{m} \sum_{i=1}^m L( \hat{y}^{(i)} ,y^{(i)})

(2)不使用均方误差作为LR的代价函数:非凸函数,无法求解全局最小

(3)推导:训练样本X={𝑥_1,𝑥_2,⋯,𝑥_𝑚},设P(Y=1|x)=p(x),P(Y=0|x)=q(x)

① 似然函数:              L(\omega )=\prod_{i=1}^m p(𝑥_𝑖)^{y_i}·q(x_i)^{1-y_i}

② 对数似然函数:l(\omega )=logL(\omega)=\sum _{i=1}^m[ {y_i}·logp(𝑥_𝑖)+{(1-y_i)}·logq(x_i)]

③ 极大似然估计:\omega _{𝑀𝐿}=arg max \sum _{i=1}^m[ {y_i}·logp(𝑥_𝑖)+{(1-y_i)}·logq(x_i)]

                                            =arg min \sum_{i=1}^m L( \hat{y}^{(i)} ,y^{(i)})

(4)得代价函数:J(w,b)= \frac{1}{m} \sum_{i=1}^m \frac{1}{2} L( \hat{y}^{(i)} ,y^{(i)})^2        (缩放不影响梯度的相对值)


5. 优化求解

(1)求偏导:\frac{∂J(\omega )}{∂\omega } =\frac{1}{m} \sum_{i=1}^m (\hat{y} ^{(i)}-y^{(i)})·x^{(i)},令该偏导为0,无法求解权ω


(2)梯度下降法(Gradient Descent)

          ω_{t+1}=ω_t-α·\frac{∂J(\omega )}{∂\omega }         (α为学习率,控制步长)

优点:只求损失函数的一阶导数,计算代价小

缺点:①每次更新回归系数的时候,都要遍历整个数据集,数据量过大时力不从心;②初始值选择,可能导致结果不同,得到的结果不一定是全局最优;③步长选择,过小使得函数收敛速度慢,过大又容易找不到最优解


(3)随机梯度下降(Stochastic Gradient Descent)

         ω_{t+1}=ω_t-α·(\hat{y} ^{(i)}-y^{(i)})·x^{(i)}        (去掉了求和)

优点:每次仅用一个样本迭代,训练速度很快

缺点:迭代方向变化大,不能很快的收敛到局部最优解。


(4)牛顿法

牛顿法是利用一阶和二阶导的无约束目标最优化方法。每一次迭代的更新方向都是当前点的牛顿方向,步长固定为1。

                                ω_{t+1}=ω_t-▽^2f(\omega _t)^{-1}▽f(\omega _t)        (Hesse矩阵)

优点:收敛更快

缺点:Hesse矩阵要求逆,计算量大,也有可能没有逆

随机选θ_{(0)}做切线


(5)拟牛顿法:构造一个矩阵G逼近H^{−1}

ω_{t+1}-ω_t=G_{t+1}·[▽f(\omega _{t+1})-▽f(\omega _t)]


三. 最大熵模型(Maximum Entropy Model)

1. 原理

(1)最大熵原理认为:在没有更多信息的情况下,不确定的部分都是等可能的(均匀分布),此时概率分布的熵最大。在所有可能的概率模型中,熵最大的模型就是最好的模型

(2)从预测风险的角度讲,就是要保留全部的不确定性,将风险降到最小。鸡蛋不能放在同一个篮子里。


2. 目的:条件熵

 构建判别模型,该模型任务是预测在给定上下文 x 的情况下,以条件概率p(y|x)输出 y 

(1)从训练数据T={(x_1,y_1),(x_2,y_2)...(x_N,y_N)}中抽取若干特征

(2)要求这些特征在T上关于经验知识分布的期望,与它们在模型中关于p(x,y)的数学期望相等,使得一个特征对应一个约束。


3.特征函数(feature function)

(1)定义特征函数f(x,y):表示输入与输出之间的某一事实(经验知识)

(2)定义p(x,y)、p(x):分别为x,y的联合概率分布以及x的边缘概率分布

          定义经验分布:    \tilde{p} (x,y)=\frac{count(x,y)}{N} 、\tilde{p} (x)=\frac{ count(x)}{N}


(3)f(x,y)关于\tilde{P} (X,Y)的期望值:E_\tilde{p} (f)=\sum_{x,y}\tilde{P} (x,y)·f(x,y)

           关于P(Y|X)\tilde{P} (X)的期望值:E_{p} (f)=\sum_{x,y}\tilde{P} (x)P(y|x)·f(x,y)    (全概率)

:根据全概率公式P(x,y)=P(x)P(y|x),根据大数定律,在样本达到一定数量后,我们可以用经验分布\tilde{P} (x)来表示真实的概率分布P(x)


(4)约束条件:要让统计结果和训练数据完全一致,则:E_\tilde{p} (f)=E_{p} (f)

模型两边只有P(y|x)是未知量,因为概率值和为1,定义∑P(y|x)=1


4. 最大熵模型学习

(1)条件熵:H(P)=H(P(Y|X))=-\sum_{x,y}\tilde{P} (x)·P(y|x)logP(y|x)

\tilde{P} (x)作为常数对极大似然估计无影响,求偏导后方便提取公因式。


(2)模型:min -H(P)

                      s.t. ①E_\tilde{p} (f)=E_{p} (f)

                            ②\sum_{y}P(y|x)=1


(3)拉格朗日函数:

L(P,ω)=-H(P)+ω_0(1-\sum_{y}P(y|x))+\sum_{i=1}^nω_i(E_{\tilde{P} }(f_i)-E_p(f_i))

① 原始问题:min maxL(P,ω)

② 对偶问题:max min L(P,ω)


(4)证明:对偶函数的极大化等价于最大熵模型的极大似然估计

① 记对偶函数\psi (ω)=min L(P,ω)用拉格朗日乘子法

② \frac{∂L(P,ω)}{∂P(y|x)} =\sum_{x,y}\tilde{P} (x)·[logP(y|x)+1-ω_0-\sum_{i=1}^nω_if_i(x,y)]=0

③ P(y|x)=\frac{exp(\sum_{i=1}^nω_if_i(x,y)) }{exp(1-ω_0)}   

      已知  \sum_{y} P(y|x)=\sum_{y}\frac{exp(\sum_{i=1}^nω_if_i(x,y)) }{exp(1-ω_0)} =1

④ 归一化因子:Z_ω(x)=\sum_{y}exp(\sum_{i=1}^nω_if_i(x,y)) =exp(1-ω_0)

⑤ P_ω^*(y|x)=argmin L(P,ω)=\frac{exp(\sum_{i=1}^nω_if_i(x,y)) }{Z_ω(x)}


⑥ 令ω^*=argmax\psi (ω)用极大似然估计

⑦ 似然函数:L_1=\prod_{i=1}^n P^*_ω(y_i|x_i)=\prod_{x,y}P^*_ω(y|x)^{\tilde{P} (x,y)}

⑧ 对数似然函数:

L_\tilde{P}(P_ω)=logL_1=\sum_{x,y}{\tilde{P} (x,y)}·logP^*_ω(y|x)=\sum_{x,y}{\tilde{P} (x,y)}\sum_{i=1}^nω_if_i(x,y)-\sum_{x}{\tilde{P} (x)}logZ_ω(x)

⑨ \psi (ω)=L_\tilde{P} (p_ω)      


5. 最大熵模型求解

(1)通用迭代算法 GIS(Generalized Iterative Scaling)

用第N次迭代的模型来估算每个特征在训练数据中的分布:

① 假定第 0 次迭代的初始模型为等概率的均匀分布。

② 用第 N 次迭代的模型来估算每种信息特征在训练数据中的分布,如果超过了实际的,就把相应的模型参数变小;否则,将它们便大。

③ 重复步骤②直到收敛。即当训练样本的特征分布和模型的特征分布相同时,求得最优参数。


(2)改进的迭代尺度算法 IIS(Improved Iterative Scaling)

IIS和GIS很类似,不同之处在于GIS算法有一个矫正项,目的是使所有特征等于一个常数C,但是并没有那么容易满足,因此IIS的不同之处就是,如果满足就按照GIS进行求解,如果不满足就按照牛顿法进行求解。


6. 最大熵模型与逻辑回归的关系

逻辑回归是最大熵类标签为二类时的特殊情况。

P(y_1|x)=\frac{exp(ω·f(x,y_1)) }{exp(ω·f(x,y_0))+exp(ω·f(x,y_1))} =\frac{exp(ω·f(x,y_1)) }{1+exp(ω·f(x,y_1))}=\frac{1}{1+e^{-ω·f(x,y_1)}}

也解释了为什么用Sigmoid,以及为什么用极大似然估计去计算损失函数



参考:

[1] 从logit变换到logistic模型——CSDN

[2] 逻辑斯蒂回归中损失函数和代价函数的推导—CSDN

[3] 逻辑回归(logistic regression)的本质——极大似然估计—CSDN

[4] 梯度下降法、牛顿法和拟牛顿法 - Eureka的文章 - 知乎

[5] 牛顿法在逻辑回归中的使用—CSDN

[6] 拟牛顿法(DFP、BFGS、L-BFGS)—CSDN

[7] 最大熵模型——Teaching ML

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。