Logistic Regression and its Maximum Likelihood Estimation

从 Linear Regression 到 Logistic Regression

给定二维样本数据集 D={(x1,y1),(x2,y2),,(xn,yn)},其中 x1,,xnXd 维向量(即 X 的size 为 n×d), y1,,ynY。我们希望得到一条直线 Y=Xβ+ε 来刻画 XY 之间的一般关系,由于真实数据集存在随机项 εiN(0,σ2),一般情况下这条直线不可能精准地穿过所有的数据点,因此我们希望它尽可能地贴近所有的数据点。如何定义这个 “尽可能地贴近”?数学上来说,我们通过求最小化均方误差(MSE)来实现,即:


S=argminβ||YY^||2=argminβ||YXβ||2


注意到表达式中的 Xβ 已经包含了直线的常数项。初学者可能会碰到的一个问题是,为什么上式中的最小化目标是 ||YXβ||2,而不是 ||YXβε||2?原因是,直线 Y=Xβ+ε 是我们的 model ground truth,我们容忍随机变量 εN(0,σ2) 作为误差存在,而误差作为随机项无法消除,是数据集本身的特性,并非是模型的问题。我们通过解以上最优化问题,能够得到一个最优参数 β,反过来我们将 X 代入得到的模型 Y^=Xβ,此时的 Y^ 代表着预测值,它会与 ground truth Y 产生一个残差 e=YY^。注意到 eε 在定义上是不同的,ε 是理论模型中的随机变量,它是无法被描述为具体某个值的,而残差 e 则是针对一系列已观测的数据点根据线性回归模型求出的具体值。


上述最优化问题的偏导求解如下:


Sβ=||YXβ||2β=(YXβ)T(YXβ)β=XT(YXβ)+[(YXβ)T(X)]T=2XT(YXβ)


Sβ=0,即:


Sβ=2XT(YXβ)=0XTY=XTXββ=(XTX)1XTY


因此,我们拟合出的直线 Y^=Xβ 可以直接写作:


Y^=Xβ=X(XTX)1XTY


Logistic Regression

这和 Logistic Regression 有何联系呢?Logistic Regression 是一个二分类模型,对于每一个 xX 我们希望根据 x 得到其对应的 label y{0,1},在离散空间上取值。一个思想是,我们设计一个中间函数 g(z){0,1},例如:


g(z)={0,z01,z>0


如此,我们便将连续的 z 转换为二元取值 g(z),再采取类似的方法优化 g 中的参数,使得预测结果贴近真实的 Y。然而如上设计的 g 并不连续,故而不可微,这并不符合广义线性模型(GLM)的条件。我们希望这么一个中间函数 g,它的取值在 (0,1) 上,并且单调可微,因此便有了 sigmoid 函数的提出:


σ(z)=11+ez


不难判断出对于 zR: σ(z)(0,1),且 σ(z)R 上单调递增且可微。我们令:


y=σ(z)=11+ezz=wTx+by=11+e(wTx+b)


我们发现,对于输入任意的 xX,sigmoid 函数先将 x 转化为一个取值在 (0,1) 上的标量。除此之外还有:


lny1y=ln(ewTx+b)=wTx+blny1y=wTx+b


这样等式的右边又回到 Linear Regression 的简单结构。


Maximum Likelihood Estimation

我们会发现存在这么一个问题,即,数据集最终的 label 取值在 {0,1} 中,为离散值,而经由 sigmoid 计算得到的值却在 (0,1) 间连续取值。这个问题的解决办法是,我们不再将 sigmoid 函数生成的值(y)视作 label,而是视作 “对于给定的 x,其 label 为 y=1” 的概率,即:


y=P(y=1 | x)lnP(y=1 | x)1P(y=1 | x)=lnP(y=1 | x)P(y=0 | x)=wTx+b


注意到以上第一个式子中等式两边的 y 的含义并不相同,等式左侧的 y 代表着 “对于给定的 x 其 label 为 1 的概率”,而等式右边的 y 为真实 label {0,1}


我们会发现,由 total probability:P(y=1 | x)+P(y=0 | x)=1P(y=1 | x)P(y=0 | x)P(y=1 | x) 较大(P(y=0 | x) 较小)时较大,极端情况下将趋于正无穷,对数值也将趋于正无穷;相反,在 P(y=1 | x) 较小(P(y=0 | x) 较小)时较小,极端情况下将趋于 0,对数值将趋于负无穷。当模型无法判断对于一个 x 其 label 更偏向于 0 还是 1 时,此时 P(y=1 | x)=P(y=0 | x)=0.5,使得对数值为 0。因此,在这种假设下,当训练好的模型计算的 wTx+b>0,模型将认为其 label 为 1;相反,当 wTx+b<0 时模型认为其 label 为 0


在这种情况下,显然:


P(y=1 | x)=11+e(wTx+b)=ewTx+b1+ewTx+bP(y=0 | x)=1P(y=1 | x)=11+ewTx+b


我们希望对于拥有真实 label yi=1 的所有 x,模型得到的 P(y=1 | x;w,b) 越大越好,即:


xi s.t. yi=1P(y=1 | xi;w,b)


同理,对于拥有真实 label yi=0 的所有 x,模型得到的 P(y=0 | x;w,b) 越大越好,即:


xi s.t. yi=0P(y=0 | xi;w,b)=xi s.t. yi=0(1P(y=1 | xi;w,b))


如何将以上两个目标统一起来(将两个式子写入一个式子中,使得该式摆脱对下标 yi 的依赖)呢?即,我们希望建立一个式子 P(y=yi | xi;w,b),表示对于任意 xiX 以及真实 label yi{0,1},模型预测成功(y=yi)的概率。当这个综合表达式被建立后,我们便可以通过最大似然估计(MLE)求出在训练集上最优的参数 w,b,即:


maxiP(y=yi | xi,w,b)


周志华的《机器学习》里提到这么一种构建方法:


P(yi | xi;w,b)=yiP(y=1 | xi;w,b)+(1yi)P(y=0 | xi;w,b)


这样构建能够满足我们的目标,即:当 yi=1 时,P(yi | xi;w,b)=P(y=1 | xi;w,b);当 yi=0 时,P(yi | xi;w,b)=P(y=0 | xi;w,b)。但是,这样会使得 MLE 求解变得复杂:


maxw,bL(w,b)=maxw,bi(yiP(y=1 | xi;w,b)+(1yi)P(y=0 | xi;w,b))=maxw,bi(yiewTx+b1+ewTx+b+(1yi)11+ewTx+b)


哪怕取对数似然:


maxw,bl(w,b)=maxw,bln(i(yiP(y=1 | xi;w,b)+(1yi)P(y=0 | xi;w,b)))=maxw,bln(i(yiewTx+b1+ewTx+b+(1yi)11+ewTx+b))=maxw,biln(yiewTx+b1+ewTx+b+(1yi)11+ewTx+b)=maxw,bilnyiewTx+b+1yi1+ewTx+b=maxw,bi(ln(yiewTx+b+1yi)ln(1+ewTx+b))


并不能直接得到书中的目标结果:


minw,bi(yi(wTx+b)+ln(1+ewTx+b))


一个更好的 P(yi | xi;w,b) 设计方法是:


P(yi | xi;w,b)=P(y=1 | xi;w,b)yiP(y=0 | xi;w,b)1yi


这种形式也能满足我们上述的要求,并且我们对参数求解 MLE:


maxw,bl(w,b)=maxw,blni(P(y=1 | xi;w,b)yiP(y=0 | xi;w,b)1yi)=maxw,biln(P(y=1 | xi;w,b)yiP(y=0 | xi;w,b)1yi)=maxw,bi(yilnP(y=1 | xi;w,b)+(1yi)lnP(y=0 | xi;w,b))=maxw,bi(yilnewTx+b1+ewTx+b+(1yi)ln11+ewTx+b)=maxw,bi(yi(wTx+b)yiln(1+ewTx+b)+(yi1)ln(1+ewTx+b))=maxw,bi(yi(wTx+b)ln(1+ewTx+b))=minw,bi(yi(wTx+b)+ln(1+ewTx+b))


即为书中所求。

posted @   车天健  阅读(220)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示