机器学习:逻辑回归

逻辑回归

在谈逻辑回归之前,先看个列子。心脏病预测:
机器学习:逻辑回归_第1张图片我们有某个人的相关资料,以及他是否患有心脏病。用这些资料进行训练,我们可以得到一个预测某人是否患有心脏病的模型。这是一个二元分类问题,输出空间为 ( − 1 , + 1 ) {(-1,+1)} (1,+1),目标函数为 f ( x ) f(x) f(x)其表达形式如图所示。但是,在实际生活中,我们并不会直接说一个人是否一定患病,通常会给出一个概率值。比如我们在看过某个人的资料后,会告诉他,你患病的概率为70%。
机器学习:逻辑回归_第2张图片
更新目标函数的输出空间为[0,1]。那么问题就来了,如果采用二元分类,我们得到是只有{-1,+1}两种结果,如果用线性回归得到的是整个实数R上的一个集合。该如何处理算法,以满足我们的需求,让输出空间在[0,1]。

针对目标函数,理想的数据集,应该是这样的:
机器学习:逻辑回归_第3张图片
理想数据集给出的结果是发病的概率,然而真是的数据集确实这样的:
机器学习:逻辑回归_第4张图片
真实的数据集只有发病和没有发病两种情况,而不会在结录结果种出现概率。

可以将真实的训练集数据视为含有噪声的理想训练数据。问题就转化为:如何用真实的数据解决软二元分类问题,假使函数该如何设计。先回顾之前线性分类和二元分类所用的假使函数,看是否能在其中得到一点启发。线性分类是我们给出特征向量: x = [ x 1 , x 2 , x 3 . . . . x d ] x=[x_1,x_2,x_3....x_d] x=[x1,x2,x3....xd]然后计算出权重向量 W W W,在根据其来进行预测。
机器学习:逻辑回归_第5张图片
二元分类只不过是在其基础上进行了取正负号操作。我们可以采用和二元分类相似的方法来解决软二元分类问题。当 s s s计算出来以后,我们对 s s s进行某个函数映射,是他的值在0和1之间。一个非常好的选择就是sigmoid函数:
机器学习:逻辑回归_第6张图片
这个函数的图像如上图所示,可以实在从整个实数集R到[0,1]的映射。有个这个函数,我们就将假设函数设置为:
机器学习:逻辑回归_第7张图片
h ( x ) h(x) h(x)足够的接近 f ( x ) f(x) f(x)

三种线性模型

从开始到现在我们接触了三种线性函数:二元分类,线性回归,逻辑回归:
机器学习:逻辑回归_第8张图片
这三种函数种有一个共同点,那就是都会出现 W T X W^TX WTX,前两个的错误衡量方式分别为0/1误差和均方误差。那么逻辑回归的错误该怎么衡量呢?先简单介绍一个概念似然:对于目标函数 f ( x ) = P ( + 1 ∣ X ) f(x)=P(+1|X) f(x)=P(+1X),如果找到了假设函数很接近目标函数。也就是在假设空间h中找到了一个g与目标函数非常的接近,能和目标函数产生同样的数据集D,那么就称这个g是最大似然函数,公式如下:

机器学习:逻辑回归_第9张图片
由逻辑回归可以推导出下式成立:
在这里插入图片描述
考虑一个数据集 D = D= D={ ( x 1 , + 1 ) , ( x 2 , − 1..... ) (x_1,+1),(x_2,-1.....) (x1,+1),(x2,1.....)},则通过目标函数产生此种样本的概率可以下面的式子进行表示:
机器学习:逻辑回归_第10张图片
由目标函数 f f f 对公式做如下替换:

机器学习:逻辑回归_第11张图片
目标函数是未知的,已知的只有假设函数,应用极大似然公式,可以用假设函数 h h h替换目标函数:
l i k e h o o d ( h ) = P ( x 1 ) ∗ h ( x 1 ) ∗ P ( x 2 ) ∗ ) ( 1 − h ( x 2 ) ) ∗ . . . . . . likehood(h)=P(x_1)*h(x_1)*P(x_2)*)(1-h(x_2))*...... likehood(h)=P(x1)h(x1)P(x2)(1h(x2))......
逻辑回归的假设函数 h ( x ) = h(x)= h(x)= θ ( w t x ) \theta(w^tx) θ(wtx),有性质: 1 − h ( x ) = h ( − x ) 1-h(x)=h(-x) 1h(x)=h(x),因此可以将上式进行转化为:
在这里插入图片描述
因为 p ( x i ) p(x_i) p(xi)对于所有的 i i i都一样,也就是说似然函数只与每个样本的连乘有关,将真实样本输入 y n ( − 1 , + 1 ) y_n(-1,+1) yn(1,+1)引入公式:可以得到下面的式子成立:
机器学习:逻辑回归_第12张图片
因为寻找的是最大似然函数,可以得到下面的式子:
机器学习:逻辑回归_第13张图片
h ( x ) h(x) h(x)带入得:

在这里插入图片描述

连乘不易求解,因此对上式取对数,转化为连加形式:
机器学习:逻辑回归_第14张图片
通过引入符号,将最大化问题转化为最小化问题,同时引入平均系数 1 N \frac{1}{N} N1

使得公式与之前的错误衡量类似:

机器学习:逻辑回归_第15张图片
θ ( s ) \theta(s) θ(s)带入上式:
机器学习:逻辑回归_第16张图片

逻辑回归的误差梯度

误差的表达式已经得到,接下来要做的就是最小化这个误差。
在这里插入图片描述
比较幸运的事情是这个误差函数是个凸函数,可以象处理线性回归的误差函数那样来处理这个函数。对他进行求导,利用微积分的相关知识就可以完成这个工作,只不过求导过程略微有点麻烦。具体求导过程如下所示:
在这里插入图片描述
机器学习:逻辑回归_第17张图片
最终的计算结果为:
在这里插入图片描述
为了让误差最小,就要让最终的计算结果为0。上式可以看为 θ ( − y n w t x n ) \theta(-y_nw^tx_n) θ(ynwtxn) − y n x n -y_nx_n ynxn的线性加权,要使得这两部分的线性加权为0.有两种情况:

  • 线性可分:如果所有的权重 θ ( − y n w t x n ) \theta(-y_nw^tx_n) θ(ynwtxn)为0,那么整个式子自然为0,使得 θ ( − y n w t x n ) \theta(-y_nw^tx_n) θ(ynwtxn)为0的条件是, ( − y n w t x n ) (-y_nw^tx_n) (ynwtxn)小于0,也即: ( y n w t x n ) (y_nw^tx_n) (ynwtxn)>>根据sigmoid函数的性质整个函数值趋近于0. ( y n w t x n ) > 0 (y_nw^tx_n)>0 (ynwtxn)>0也就意味着所有的预测值和真实值相同,只有线性可分才能做到。
  • 线性不可分:比较麻烦,只能用迭代法进行。
    在开始之前先简单回顾一下PLA的相关内容:
    机器学习:逻辑回归_第18张图片
    每次出现错误时,PLA更新了两个内容,一个是方向也即 ( y n x n ) (y_nx_n) (ynxn)记为 v v v:另一个是步长。这个概念之前没有提过,记为: η \eta η。这两个参数和终止条件决定了迭代优化算法。
    机器学习:逻辑回归_第19张图片

梯度下降

逻辑回归求解最小误差使用类似PLA的迭代算法,通过一步步改变权值向量 w w w,寻找使得误差最小的权值向量 w w w,该迭代方法的公式如下:
机器学习:逻辑回归_第20张图片
上式中, v v v表示分心的方向, η \eta η表示更新的步长。逻辑回归的误差函数是处处可微的凸函数,其曲线的谷底对应最小的误差。
机器学习:逻辑回归_第21张图片
那么该如何选择这两个参数使得下降的最快,在步长确定的情况下,沿着梯度的方向下降最快,也即| v v v|=1
机器学习:逻辑回归_第22张图片
以上是非线性带约束公式,寻找最小的 w w w仍有困难,考虑将其转化为一个近似的公式,通过寻找公式中最小的 w w w,达到寻找原公式最小 w w w的目的,利用泰勒展开。
机器学习:逻辑回归_第23张图片
我们将 E i n E_{in} Ein w t w_t wt处展开 ≈ E i n ( w t ) + ( w t + η v − w t ) + Δ E i n ( w t ) \approx{E_{in}}(w_t)+(w_t+\eta{v}-w_t)+\Delta{E_{in}(w_t)} Ein(wt)+(wt+ηvwt)+ΔEin(wt)
进一步转化为:
机器学习:逻辑回归_第24张图片
迭代的目的是让 E i n ( w t ) E_{in}(w_t) Ein(wt)越来越小,即让 E i n ( w t + η v ) < E i n ( w t ) E_{in}(w_t+\eta{v})Ein(wt+ηv)<Ein(wt)
η \eta η为标量,如果两个向量方向相反,则他们的内积最小为负。也就是说更新方向和梯度方向相反的话,就能保证每次迭代 E i n ( w t + η v ) < E i n ( w t ) E_{in}(w_t+\eta{v})Ein(wt+ηv)<Ein(wt) 。于是令梯度下降方向为:
机器学习:逻辑回归_第25张图片
v v v是单位向量,每次都沿着梯度的反向更新,这种算法称为:梯度下降,实际应用中最常用的为随机梯度下降

更新方向确定后,再来看步长对下降的影响:
机器学习:逻辑回归_第26张图片
步长太小的话 下降速度过慢,步长过大又容易反复横跳。因此选取合适的步长就非常的重要:这里给出步长计算公式:
机器学习:逻辑回归_第27张图片
最终的计算公式为:

机器学习:逻辑回归_第28张图片
此时的 η \eta η称为固定学习率,公式称为固定学习率的梯度下降
总结以下梯度下降的算法的流程:
机器学习:逻辑回归_第29张图片

  • 初始化权重:初始化权重向量 w w w w 0 w_0 w0
  • 计算梯度: Δ E i n ( w t ) \Delta{E_{in}(w_t)} ΔEin(wt)
  • 迭代更新
  • 计算终止: Δ E i n ( w t ) \Delta{E_{in}(w_t)} ΔEin(wt)=0迭代结束

你可能感兴趣的:(机器学习,逻辑回归,机器学习,算法)