机器学习笔记之基础回归问题

前言

本文参考了《机器学习》周志华著中的3.2节中的线性回归内容和《统计学习方法》李航著的6.1节中的逻辑回归内容,并结合逻辑回归两个实验进行总结。

线性模型

什么是线性模型呢?给定的样本有n个属性,xi表示第i个属性,而形如如下:
机器学习笔记之基础回归问题_第1张图片

线性回归

我们已经知道了线性模型是什么,那么线性回归是干啥的呢?按照统计学习方法的三要素,模型已经确定,接下来就是策略。按策略来看,我们需要确定损失函数,损失函数是一种性能度量,在线性回归问题中,我们经常ongoing均方误差来作为损失函数(更准确的叫法应该叫经验风险)。
机器学习笔记之基础回归问题_第2张图片
均方误差有非常好的几何意义,它对应了欧氏距离,就是常用的那个初高中背的两点距离公式。既然有了损失函数,就可以将模型选择转化为一个最优化问题,根据经验风险最小化策略,我们选择使得经验风险也就是上面那个式子进行最小化的w和b,就是最好的模型。基于均方误差最小化来进行模型求解的方法称为最小二乘法,在线性回归中,最小二乘法就是试图找到一条直线,使得所有样本到直线的距离之和最小。
如果按最基础的高等数学的思想那就是直接对w和b求偏导,然后解出极小值点,对应的w和b就是模型的参数了。但为了便于讨论,我们其实可以将b归到w中去,作为一个w0,也就是写成下面这个样子。
在这里插入图片描述
那损失函数就可以写成
在这里插入图片描述
再换成矩阵形式
机器学习笔记之基础回归问题_第3张图片
在这里插入图片描述
然后在矩阵形式下对W进行求导,也就是矩阵求导(求导过程略过,其实挺简单的,代代公式就好)
在这里插入图片描述
有了这东西之后那其实在python中使用numpy库,进行矩阵运算就很容易解出W的值。

线性模型是输入变量到输出变量的线性关系,那不一定要把这种形式定死,这就太局限了,其他的形式它也可以转换成线性模型从而变成线性回归问题来求解。

对数线性回归

假设我们认为输出标记是在指数尺度上变化,那就可以将输出标记的对数作为线性模型来逼近的目标,即
在这里插入图片描述
这就是对数线性回归,实质上它还是一个输入空间到输出空间的非线性函数映射,取对数就起到了将线性回归模型的预测值与真实标记联系起来的作用,因为取了对数以后单调性不变,该求极值害得求极值,没啥区别。

多项式拟合

回归问题说白了就是就是用于预测输入变量和输出变量之间的关系,或者说是拟合出一个输入变量到输出变量之间映射的函数,那这和多项式拟合有什么关系呢?
这么看,对于连续可导的函数来说,它都是可以进行泰勒展开的:
在这里插入图片描述
仔细看泰勒展开后的函数形式,和线性回归对比一下,是不是感觉特别像,把x^i换成xi就是线性模型了。所以其实多项式拟合也可以用线性回归的做法来做,甚至我觉得多项式拟合就是一种特殊形式的线性回归问题。当然了,除了用最小二乘法之外,还可以梯度下降法,共轭梯度法,牛顿法等都可以。

逻辑回归

大家别看叫逻辑回归,以为是一个回归问题,但其实它是一个分类问题。逻辑斯蒂回归(Logistic regression),还有另外一个名字——对数几率回归。那逻辑回归是怎么导出的呢?
考虑一个最简单的二分类问题,也就是二项逻辑回归,,输出标记y={0,1},而线性回归模型产生的预测值z=w’x+b('表示转置,或用T)是实值,我们需要将实值z转换成0、1。什么意思呢?就是一个二分类概率分布是一个离散的,但线性回归得到的映射函数却是个连续的,我们如何构建这样一个映射关系呢?这里有两种推导方式,一种直接利用“单位阶跃函数”
机器学习笔记之基础回归问题_第4张图片
只要我们选好阈值,比如这里的0,就能将y分成0,1。但这不是连续的啊,所以更进一步,我们利用对数几率函数,也是一种“Sigmoid函数”,形如以下:
在这里插入图片描述
机器学习笔记之基础回归问题_第5张图片
从函数图像上可以看得出来,这个函数在0附近很陡,它的坡地就和e的次方大小有关,y有了,那1-y也就有了。
在这里插入图片描述
上面这个东西不就是个线性的函数了吗,我们要做的就是求这个线性函数的参数,这里的y我们换成P(y=1|x),1-y换成P(y=0|x)
在这里插入图片描述
上面这个式子我们叫做对数几率,所以呢,就可以显然的推出
机器学习笔记之基础回归问题_第6张图片
那到现在为止我们也就获得了模型,这个是什么模型呢,好像还看不太出来,这么一个大式子,但我们也有了明确求解的对象,那就是求解w和b,这两个参数出来了那概率分布不也就出来了吗,为了简化讨论,我们按惯例把b归到w中,x增加一列全1,就变成了下面这种简便的形式。
在这里插入图片描述
上面那种推导好像不太严谨,怎么就能将离散的概率分布转成连续的了呢?毕竟我们要的是近似解嘛,我们只需要达到一定准确度的估计效果就好了。下面还有另一种推导的方向,对概率分布运用贝叶斯定理,得到下面这种形式
机器学习笔记之基础回归问题_第7张图片
那P(Y)是先验,是个常数值。P(X|Y)是X的后验概率,这是个什么东西,那其实根据中心极限定理,在适当的条件下,大量相互独立的随机变量的均值经适当标准化后其分布收敛于正太分布,那就一意味着其实大部分分布它的总体都能用正太分布来趋近。所以我们不妨设
在这里插入图片描述
在这里插入图片描述

将之代入
机器学习笔记之基础回归问题_第8张图片
在这里插入图片描述

好家伙,出来的还是个对数几率函数。
现在模型有了,剩下的就是对模型参数的估计了。参数估计最常用的就是最大后验估计和极大似然法了,那这里显然是用极大似然法比较好理解了。
到这里我们就要明确,极大化的是个什么玩意儿。我们极大化的是P(Y=yi|X),假设各样本间独立同分布
机器学习笔记之基础回归问题_第9张图片
那似然函数就是
在这里插入图片描述
为什么有yi次方呢,那是因为咱讨论的是0/1分布,y取值0或1。这东西看着就不好算,既然用极大似然法,常规讨论无非就是求导,极大化嘛,既然这种指数形式不好算,我还不能换种形式嘛,只要单调性不变就好嘛,不寒碜。这时候就要请出我们的好朋友对数似然函数了,对上述式子取对数,不改变单调性
机器学习笔记之基础回归问题_第10张图片
机器学习笔记之基础回归问题_第11张图片
这个式子看着就舒服多了,求导也好求多了,注意到,我一直叫它似然函数,而不是损失函数,一般损失函数是求最下化的,那对对数函数取个负就变损失函数了hhhh,全名叫对数似然损失函数。但这种形式就不好用最小二乘法了呀,但还可以用梯度下降法和牛顿法,这两种都是十分常用的求极值的计算方法。

梯度下降法

求解梯度
我们获得似然函数后,需要求解其极大值来获得参数 的估计,我们可以用梯度下降法使得梯度逼近于0,每次迭代方向都往梯度正方向走,当梯度逼近0的时候, 也就到达了极大值点附近。
对似然函数进行求导:
机器学习笔记之基础回归问题_第12张图片

设 n为样本数, m为特征数:
机器学习笔记之基础回归问题_第13张图片

则将导函数化成矩阵表达式为:
在这里插入图片描述

梯度grad的表达式便求出来了。
在这里插入图片描述

更新参数
获得梯度之后,我们就可以通过梯度来迭代更新 ,需要注意的是,上面求出来的梯度是似然函数上升最快的方向,而我们的目标是逼近似然函数的极大值,所以更新 的时候加上学习率与梯度的乘积:
在这里插入图片描述
其中学习率 α可以设个初始步长,但在随着迭代的进行,可以考虑对步长进行修改,比如当似然函数的值由大变小或来回抖动的时候,说明迭代已经到达极值点附近,但由于步长太大无法更精确的逼近,所以可以减小步长,然后设置grad精度使得迭代能结束,因为我们只能逼近极大值。

总结

那聊了线性回归,多项式拟合曲线,逻辑回归,它们有什么共同点呢?这里再强调一次逻辑回归是解决分类问题的,它不是回归问题。那为什么把它放到这来呢,因为它解决问题的过程是以一种回归的方式解决的,它确实构造出了输入变量到输出变量的映射关系,只不过是用连续的函数近似的表示了这种离散的概率分布函数,但解决问题嘛,不寒碜。而且其实在回归问题中,我们构建出模型,往往需要求的就是模型的参数,求解模型的参数就是通过损失函数的极小化来做的嘛,但其实通过后序的学习我们会发现,大部分的问题也都是通过求解模型参数从而完成模型的,所以极大似然估计、最大后验概率估计和贝叶斯估计这些参数估计方法真是太重要了。
注:本文只作讨论,并没有深入研究,其实真正实践起来要考虑的东西很多,特别是过拟合问题,建议大家都回归基本概念,从底层搭起知识体系框架,不然就会像我一样做了实验结果就感觉像照葫芦画瓢,结果啥也没学到。

你可能感兴趣的:(机器学习,机器学习)