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|

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值