logistic回归的数学推导

1、引入

1.1 分类问题的描述

对于分类问题,我们通常将整个问题记为D={xi,yi}Ni=1 ,我们的对于y 的预测值记为

y=f(x)=argmaxcp(y=c|x,D)
这个公式中,y 为离散值,其取值范围为y={1,2,...,C} ,表示有C 个类别。当C=2 时即为二分类问题,在下面将详细讨论这种分类问题。在正式的讨论之前,回顾一下贝叶斯公式。

1.2 贝叶斯公式

贝叶斯公式中有三个概率:先验概率、后验概率、类条件概率。

先验概率:p(y=c)
类条件概率:p(x|y=c)
后验概率:p(y=c|x)

这里用一个例子来说明:
假设y=1 表示某个病人得病,x 表示血液中白细胞的数量。
类条件概率 指的是当得了病之后,血液中白细胞的数量为某值的概率;
先验概率 指的是这个人本身得病的概率;
后验概率 指的是通过检查已经知道了某个人血液中的白细胞数量,这个人得病的概率。

我们熟悉的贝叶斯公式为:

P(A|B)=P(B|A)P(A)P(B)

1.3 logistic回归引入

接着第一部分的内容,当C=2 时,即为最简单的两分类问题,对于这类问题,y 的取值为0和1两个,因此有p(y=1|x)+p(y=0|x)=1 ,求出其中一个就可以得到另一个概率。这里我们将这种二分类问题的分布称作Bernoulli分布。

p(y|x)=Ber(y|μ(x))

Tips:其中的μ(x)=E(y|x)=p(y=1|x) 表示的是整个分布的均值。
(其中的E(y|x)=1×p(y=1|x)+0×p(y=0|x)

这里介绍一下bernoulli分布:

Ber(x|θ)=θx(1θ)(1x)
对于这个式子,他的正确性是肯定的,举个例子:
Ber(x|θ)={1θ,x=0θ,x=1

我们所说的logistic回归,就是在bernoulli分布的基础上,将μ(x) 替换为μ(x)=sigmoid(wTx)
其中的sigmoid函数为:

sigmoid(η)=11+exp(η)=exp(η)exp(η)+1

图像为:
sigmoid函数图形

针对我们的logistic回归,μ(x)=sigmoid(wTx) 一式中的wTx 的取值范围为(,+) ,而bernoulli分布参数的取值是[0,1] ,因此这里的sigmoid函数的作用就是将取值范围为(,+) 的参数转换到[0,1] 上。

2、损失函数与优化

2.1 损失函数与极大似然估计

在引入了logistic回归后,按照机器学习的常规操作需要确定损失函数,这里的损失函数使用负log似然

J(w)=NLL(w)=i=1Nlog[(μi)yi×(1μi)(1yi)]=i=1N[yilog(μi)+(1yi)log(1μi)]
这里根据Ber(x|θ)=θx(1θ)(1x) 得到w 的分布。
在上式中,我们称其中的
yilog(μi)+(1yi)log(1μi)
logistic损失,也称作极大似然估计

2.2 计算梯度

由2.1中得到的损失函数可以进行梯度的计算,由于步骤比较繁琐,这里使用图片进行表示。
损失函数J(w)=i=1N[yilog(μi)+(1yi)log(1μi)]
梯度J(w)w=w[i=1N[yilog(μi)+(1yi)log(1μi)]]
梯度计算
计算梯度

这里的计算也不复杂,主要是用了复合函数的求导。

在最后一步得到的μ(xi)yi 称为预测的残差。
在上图中,公式wμ(x)=μ(x)(1μ(x))x 的推导为如下所示:
计算梯度2
这里的求导主要用的是对于分数的求导,也不是很复杂,细心推一下就可以推出来。

在求得导数之后,我们如果想要使用牛顿法等二阶优化算法的话,需要计算对梯度再求一次导,也就是去计算他的Hessian矩阵。

H(w)=w[g(w)T]=i=1N(wμi)xTi=μi(1μi)xixTi=XTdiag(μi(1μi))X
也就是可以写成这样的形式,最后一个等号后面的矩阵表示说明了他是一个正定的矩阵,可以使用凸优化的方法对其进行优化。

2.3 牛顿法

主要思想是使用f(x) 泰勒展开的前几项来寻找f(x)=0 的解
首先对式子进行泰勒展开:

0=g(w^)=g(wt)+(w^wt)H(wt)+O(w^wt)
去掉后面的高阶无穷小项,即可得:
g(wt)+(w^wt)H(wt)=0
也就可以推得:
w^=wtH1(wt)g(wt)
因此可以得到参数的更新规则为:
wt+1=wtH1(wt)g(wt)
这种方法也叫作二阶梯度下降法,因为他的参数更新形式与梯度下降法是很相似的,但是使用的是Hessian矩阵,也就是梯度的梯度进行更新。

另外,牛顿法一般比梯度下降的方法要快,可能的原因是使用牛顿法这种二阶梯度下降的算法“看”的更远,因此会有比一般梯度下降更快的收敛速度。

3、正则化

如果损失函数取logistic损失,那么logistic回归的目标函数为:

J(w)=i=1N[yilog(μi)+(1yi)log(1μi)]
加上L2正则化后,变为
J(w)=i=1N[yilog(μi)+(1yi)log(1μi)]+λ||w||22
或者L1正则:
J(w)=i=1N[yilog(μi)+(1yi)log(1μi)]+λ|w|
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章