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−θ)(1−x)
对于这个式子,他的正确性是肯定的,举个例子:
Ber(x|θ)={1−θ,x=0θ,x=1
我们所说的logistic回归,就是在bernoulli分布的基础上,将 μ(x) 替换为 μ(x)=sigmoid(wTx)
其中的sigmoid函数为:
sigmoid(η)=11+exp(−η)=exp(η)exp(η)+1
图像为:
针对我们的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)(1−yi)]=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]
这里根据
Ber(x|θ)=θx(1−θ)(1−x) 得到
w 的分布。
在上式中,我们称其中的
yilog(μi)+(1−yi)log(1−μi)
为
logistic损失,也称作
极大似然估计。
2.2 计算梯度
由2.1中得到的损失函数可以进行梯度的计算,由于步骤比较繁琐,这里使用图片进行表示。
损失函数: J(w)=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]
梯度: ∂J(w)∂w=∂∂w[∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]]
梯度计算:

这里的计算也不复杂,主要是用了复合函数的求导。
在最后一步得到的 μ(xi)−yi 称为预测的残差。
在上图中,公式 ∂∂wμ(x)=μ(x)(1−μ(x))x 的推导为如下所示:
这里的求导主要用的是对于分数的求导,也不是很复杂,细心推一下就可以推出来。
在求得导数之后,我们如果想要使用牛顿法等二阶优化算法的话,需要计算对梯度再求一次导,也就是去计算他的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^=wt−H−1(wt)g(wt)
因此可以得到参数的更新规则为:
wt+1=wt−H−1(wt)g(wt)
这种方法也叫作
二阶梯度下降法,因为他的参数更新形式与梯度下降法是很相似的,但是使用的是Hessian矩阵,也就是梯度的梯度进行更新。
另外,牛顿法一般比梯度下降的方法要快,可能的原因是使用牛顿法这种二阶梯度下降的算法“看”的更远,因此会有比一般梯度下降更快的收敛速度。
3、正则化
如果损失函数取logistic损失,那么logistic回归的目标函数为:
J(w)=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]
加上L2正则化后,变为
J(w)=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]+λ||w||22
或者L1正则:
J(w)=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]+λ|w|