逻辑回归(Logistic regression)
1. 逻辑回归的定义
1)问题引入:对于普通的线性回归模型,可以实现回归任务,例如对房价的预测等,但是,如果想要将其变成了一个分类问题(将数据按照其特征将其分为A类,B类,C类等)。先讨论二分类(只有A,B两类),那么现在就有一个问题:对于普通的线性回归预测,它的预测范围可以从负无穷到正无穷,但是对于二分类问题,他的标签(输出值)为y(i)={0,1}(其中0代表A类,1代表B类),显然不能用简单的线性回归解决问题,因为它的输出是离散值。
2)sigmoid 函数的引入:想要解决这个问题,就必须要让其输出值变为连续值,显然,最好刻画分类问题的是概率,因为概率从0到1之间是连续值,同样它也是一个很好的映射,如当数据将数据带入模型的时候,如果输出分类为A的概率为p,输出分类为B的概率为1−p(如果是多分类问题就是p1,p2,p3,...,pn,它们的和为1),那么如果p>0.5说明这个模型预测出该数据分类为A的概率更大,于是将其分类为A,否则分类为B,当p=0.5的时候,说明这个模型非常糟糕,不适合再使用,因为如果人工选择一个数据分类为A或者B的概率就是50%分对,不需要构建这样一个模型。因此,解决这个问题就是要引入一个函数,使得线性模型输出在负无穷到正无穷的情况下,映射到0到1,于是就有sigmoid函数:h(x)=1+e−x1,观察这个函数limx→+∞h(x)=1,limx→−∞h(x)=0,h′(x)=(1+e−x)2e−x>0这个函数在负无穷到正无穷都有定义,且是单调递增的,所以他是连续的,刚好满足映射函数的需求,于是就构建函数p(x)=h((ω)T⋅x+b)=h((θ)T⋅x)=1+e−(ωTx+b)1=1+e−((θ)T⋅x)1,(θ=(θ0,θ1,θ2,θ3,...,θn),x=(1,x1,x2,x3,...,xn)假设有n个特征,其中θ0是常数,即偏移项)与线性回归一样,训练模型就是要找最优的(θ)T。而这个函数p(x)就是当自变量x是第i个数据的x(i)时,因变量p(x(i))是为A类或B类的概率。
3)逻辑回归的定义:逻辑回归是用于二分类任务的统计学习模型,通过 Sigmoid 函数将线性回归结果映射到 [0,1] 区间,输出事件发生的概率。
2.逻辑回归的数学计算
1)逻辑回归的概率函数的特征:设有一个二分类问题,将其中一类设为1,另一类设为0,即y(i)={0,1},设分类为1的概率为p(y=1),在1.2)中描述,分类为A或B的概率为p(x)=1+e−((θ)T⋅x)1,现假设A类为1,B类为0,那么,p(y=1∣x,θ)=1+e−((θ)T⋅x)1=1+e(θ)T⋅xe(θ)T⋅x(其中p(y=1∣x,θ)的意思是给定x和θ的条件下,y=1的概率),显然,p(y=0∣x,θ)=1−p(y=1∣x,θ)=1+e(θ)T⋅x1。于是ln(p(y=0∣x,θ)p(y=1∣x,θ))=(θ)T⋅x
2)最大似然估计:
a.似然函数的定义:似然函数是观测到数据后,描述模型参数与数据匹配程度的函数,本质是 “基于已有数据,参数的可能性分布”。
b.似然函数与条件概率的关系:条件概率p(D∣θ)是在参数θ的条件下,D发生的概率,即θ是固定的,而似然函数L(θ∣D)是固定了事件D,衡量不同参数θ使D发生的概率,于是,在数学上他们的关系是:若D有p个样本,D={x1,x2,x3,...,xp},那么L(θ∣D)=L(θ∣xi)=∏i=1pP(xi∣θ),举个例子:假设有一枚硬币正面的概率为θ,有三个样本{正,正,反},那么他的似然函数是:L(θ∣xi)=θ2(1−θ)。当它的概率不是离散的,而是连续的,如满足正态分布,泊松分布等的时候,似然函数仍然成立。
c.最大似然估计:对于硬币的例子:它的样本是:{正,正,反},现在想要估计最优的概率θ使得它满足现有的样本,那么显然观察这三个样本,θ贴近于32因为三个样本中有两个是正的,一个是反的。对于似然函数:L(θ∣xi)=θ2(1−θ)(θ∈[0,1]),dθdL(θ∣xi)=2θ−3θ2=θ(2−3θ),显然,这个函数在θ∈[0,32]单调递增,在θ∈[32,1]是单调递减的,这个函数在θ的定义域范围里最大值是当θ=32之时,恰好满足刚刚的推断θ贴近于32时满足样本。于是最优的概率θ就是似然函数的最大值点。
3)逻辑回归的似然函数:对于逻辑回归的问题,假设有m个数据(样本),每个数据有n个特征,每个样本分类为0或1,逻辑回归的目标是寻找最优的(θ)T使得模型最优即很好地做分类。对于逻辑回归的似然函数的第i个样本的条件概率P(Xi∣θ)=[p(y(i)=1∣θ,x)]y(i)(若这个样本分类为1);P(Xi∣θ)=[p(y(i)=0∣θ,x)]1−y(i)=[1−p(y(i)=1∣θ,x)]1−y(i)(若这个样本分类为0)(其中Xi是指第i个样本,既包括y(i),也包括x)故逻辑回归的似然函数为:L(θ)=∏i=1m[p(y(i)=1∣θ,x)]y(i)[p(y(i)=0∣θ,x)]1−y(i)=∏i=1m[p(y(i)=1∣θ,x)]y(i)[1−p(y(i)=1∣θ,x)]1−y(i)。这个似然函数刻画为:参数(θ)T,对于现有分类样本出现的概率。比如,有五个数据(样本)x=(x1,x2,x3,x4,x5),y(i)={0,1,1,0,1},他们的分类概率分别是{0.2,0.75,0.8,0.1,0.9}(注意这个分类概率是对第i个样本来说的,如第一个样本分类为0,由p(x)计算得它分类为1的概率为0.2,分类为0的概率为0.8),那么似然函数就是描述使用(θ)T得到的这个样本概率{0,1,1,0,1}的概率,那就是:L(θ)=(1−0.2)×0.75×0.8×(1−0.1)×0.9=0.3888,与硬币的例子相似。
4)逻辑回归的目标函数:想要最优化(θ)T,就需要最大化其似然函数,即最大化L(θ)=∏i=1m[p(y(i)=1∣θ,x(i))]y(i)[1−p(y(i)=1∣θ,x(i))]1−y(i),为了简化计算最大化L(θ)等价于最大化ln(L(θ))因为L(θ)∈(0,1)(似然函数刻画的是概率,其范围理应是[0,1],在正常情况下,L(θ)不太可能是0或1,因为当有一个样本概率为0,那么1−0=1,同样,只有当所有条件概率均为1的时候,L(θ)才会是1),而ln(x)在(0,1)是单调递增的。令f(θ)=ln(L(θ))=∑i=1m(y(i)ln(p(y(i)=1∣θ,x(i)))+(1−y(i))ln(1−p(y(i)=1∣θ,x(i))))=∑i=1m(y(i)ln(σ((θ)T⋅x(i)))+(1−y(i))ln(1−σ((θ)T⋅x(i))))(σ(x)=1+e−x1),如果想要化简它,就是:∑i=1m(y(i)ln(1+e(θ)T⋅x(i)e(θ)T⋅x(i))+(1−y(i))ln(1+e(θ)T⋅x(i)1))=∑i=1m(y(i)[(θ)T⋅x(i)−ln(1+e(θ)T⋅x(i))]+(1−y(i))[−ln(1+e(θ)T⋅x(i))])=∑i=1m(y(i)(θ)T⋅x(i)−ln(1+e(θ)T⋅x(i))),于是可得它的损失函数J(θ)=−m1f(θ)=−m1∑i=1m(y(i)ln(σ((θ)T⋅x(i)))+(1−y(i))ln(1−σ((θ)T⋅x(i))))(i是指第i个数据),也可以写成J(θ0,θ1,θ2,θ3,...,θn)=−m1∑i=1m(y(i)ln(σ(θ0+θ1x1(i)+θ2x2(i)+...+θnxn(i)))+(1−y(i))ln(1−σ(θ0+θ1x1(i)+θ2x2(i)+...+θnxn(i)))),称其为交叉熵损失。
5)使用梯度下降法求解最优:想要最大化似然函数等价于最小化损失函数(因为损失函数是:J(θ)=−m1f(θ),而m>0)。于是,优化目标为:θ∗=argminθJ(θ)(其中argminθJ(θ)是使得函数J(θ)最小时,自变量θ的取值或取值集合)。对于σ(x)=1+e−x1,σ′(x)=dxdσ(x)=(1+e−x)2e−x,σ(x)σ′(x)=1+e−xe−x=1−σ(x),1−σ(x)−σ′(x)=1+ex−ex=−σ(x),按照梯度下降法,先求∂θj∂J(θ0,θ1,θ2,..,θn)=−m1∑i=1m(y(i)σ(θ0+θ1x1(i)+...+θnxn(i))σ′(θ0+θ1x1(i)+...+θnxn(i))xj(i)+(1−y(i))1−σ(θ0+θ1x1(i)+...+θnxn(i))−σ′(θ0+θ1x1(i)+...+θnxn(i))xj(i))=−m1∑i=1m(y(i)(1−σ(θ0+θ1x1(i)+...+θnxn(i)))xj(i)+(1−y(i))(−σ(θ0+θ1x1(i)+...+θnxn(i))))=m1∑i=1m(σ(θ0+θ1x1(i)+...+θnxn(i))−y(i))xj(i),将其写成向量的形式就是:∂θj∂J(θ)=m1∑i=1m(σ((θ)T⋅x(i))−y(i))xj(i)(注意,x0(i)=1)。与线性回归相似,使用梯度下降法更新θ,θj′=θj−α⋅∂θj∂J(θ)(α是学习率且α>0),所有的θj同时更新,最终找到最优的θ。同样的,与线性回归一样,逻辑回归也有正则化,L1正则化:J(θ)=∂θj∂J(θ)=m1∑i=1m(σ((θ)T⋅x(i))−y(i))xj(i)+λ∣∣θ∣∣1(∣∣θ∣∣1=∑j=1n∣θj∣,它是1-范数);L2正则化:J(θ)=∂θj∂J(θ)=m1∑i=1m(σ((θ)T⋅x(i))−y(i))xj(i)+2mλ∣∣θ∣∣22(∣∣θ∣∣2=∑j=1n(θj)2,它是2-范数)(无论是哪一个正则化,其正则项的j都是从1开始的)
3. 多分类问题
1)多分类的定义:给定输入特征x,预测其所属类别 (y(i)∈{1,2,...,k})且k≥3,其中各类别互斥(一个样本仅属一类)且穷尽(所有样本必属某一类)。
2)多分类问题的引入:逻辑回归使用的sigmoid函数,只能解决二分类问题,当涉及到多分类,无法使用它去解决。对于多分类问题,对于类别而言,其条件概率为:p(y=c∣x,θc)(其中θc的意思是对于每一个类别c,都有其对应的θ,θc=(θc0,θc1,θc2,...,θcn)T;x=(1,x1,x2,...,xn)T假设有n个特征),显然,必定满足∑c=1kp(y=c∣x,θc)=1且0<p(y=c∣x,θc)<1,每一个类别c,都有一个θc,所以每一个类别c,都有一个线性预测值:zc=(θc)T⋅x
3)softmax函数与多分类问题:softmax函数用于将一个实数向量映射为概率分布的函数,写为:ϕ(Z)i=∑i=1peziezi(Z=(z1,z2,z3,...,zp)T)例如,有一个向量Z=[1,2,3]T,其softmax函数的映射值为:ϕ(Z)1=e1+e2+e3e1=0.09003057317038046;ϕ(Z)2=e1+e2+e3e2=0.24472847105479767,ϕ(Z)3=e1+e2+e3e20.6652409557748219,有其函数特性可知∑i=1pϕ(Z)i=1且0<ϕ(Z)i<1,所以它适合当多分类问题的映射函数,将每一个类别c,的线性预测值形成一个向量Z=(z1,z2,z3,...,zk)T(有k个分类),于是就得到了p(y=c∣x,θc)=ϕ(Z)c=∑c=1kezcezc=∑c=1ke(θc)T⋅xe(θc)T⋅x。
4)多分类的最大似然:对于数据(样本),有m个,即:{x(1),y(1)},{x(2),y(2)},...,{x(m),y(m)},其中y(i)∈{1,2,...,k}(k≥3)。首先,使用Θ表示所有的θ,Θ=(θ1,θ2,θ3,...,θk)T,其中θc=(θc0,θc1,θc2,...,θcn)T其表示为第c个分类对应的θ0到θn。然后,构造多分类的似然函数,与逻辑回归(二分类)的似然函数类似,其刻画的是在参数Θ下得到特定样本{y(1),y(2),y(3),...,y(m)}的概率,于是就有:L(Θ)=∏i=1mp(y=y(i)∣x(i),Θ)=∏i=1m∑c=1ke(θc)T⋅x(i)e(θq)T⋅x(i)(q=y(i),后面皆用q表示y(i),指的是第i个样本的y(i))。要最大化L(Θ)等价于最大化ln(L(Θ))=∑i=1m((θq)T⋅x(i)−ln(∑c=1ke(θc)T⋅x(i)))。
5)多分类的损失函数及梯度下降:令f(Θ)=ln(L(Θ)),于是多分类的损失函数为:J(Θ)=−m1f(Θ)=−m1∑i=1m((θq)T⋅x(i)−ln(∑c=1ke(θc)T⋅x(i))),其一般形式为:J(Θ)=−m1∑i=1m((θq0+θq1x1(i)+θq2x2(i)+...+θqnxn(i))−ln(∑c=1ke(θc0+θc1x1(i)+θc2x2(i)+...+θcnxn(i)))),称它为多分类的交叉损失熵。同样的,要最小化损失函数。目标:要更新每个类别c的θc。于是,J(Θ)对θc求偏导,得到的结果为:(∂θc0∂J(Θ),∂θc1∂J(Θ),∂θc2∂J(Θ),...,∂θcn∂J(Θ))T(依次求解c,从1到k,就可以得到每个类别的θc),要求每一个特征j对应的∂θcj∂J(Θ),先看第一项:θq0+θq1x1(i)+θq2x2(i)+...+θqnxn(i),当且仅当q=y(i)=c的时候,它对θcj偏导为xj(i);再看第二项:ln(∑c=1ke(θc0+θc1x1(i)+θc2x2(i)+...+θcnxn(i))),它对于θcj的偏导为:∑c=1ke(θc0+θc1x1(i)+θc2x2(i)+...+θcnxn(i))xj(i)e(θc0+θc1x1(i)+θc2x2(i)+...+θcnxn(i))=p(y=c∣x,Θ)=ϕ(Z)c(Z=(z1,z2,z3,...,zk)T,zc表示第c个分类的线性预测,zc=(θc)T⋅x=θc0+θc1x1+θc2x2+...+θcnxn)。于是,∂θcj∂J(Θ)=m1∑i=1m(p(y=c∣x,Θ)−I(y(i)=c))xj(i)=m1∑i=1m(ϕ(Z)c−I(y(i)=c))xj(i)(x0(i)=1)(其中I(y(i)=c)含义为当满足y(i)=c时I(y(i)=c)=1,否则I(y(i)=c)=0,ϕ(Z)c=∑c=1kezcezc)。于是关于J(Θ)对θc求偏导的结果为:∂θc∂J(Θ)=m1∑i=1m(ϕ(Z)c−I(y(i)=c))x(i)。梯度下降法更新θc,(θc)′=θc−α⋅∂θc∂J(Θ)。
6)关于多分类问题的L1和L2正则化:与逻辑回归一样,多分类问题亦有正则化,L1正则化:J(Θ)=−m1∑i=1m((θq)T⋅x(i)−ln(∑c=1ke(θc)T⋅x(i)))+λ∑c=1k∑j=1n∣θcj∣;L2正则化:J(Θ)=−m1∑i=1m((θq)T⋅x(i)−ln(∑c=1ke(θc)T⋅x(i)))+2mλ∑c=1k∑j=1nθcj2(无论是哪一个正则化,其正则项的j都是从1开始的)。