机器学习||林轩田机器学习基石(第十节)个人学习笔记

机器学习个人学习笔记 2020-10-10

概述

逻辑回归并不是回归问题,而是分类问题。分类算法是典型的监督式学习,所用到的训练样本包含着样本的特征和标签信息。
在线性回归中,输出通常是连续的。它的定义域和值域可以是[+∞,-∞]。
而在逻辑回归中,它的输入可以是[+∞,-∞],可是它的输出是只有有限多个类别的。
举个例子:譬如输出只有{0,1},这可以表示输入的数据x被分为两类,比如硬币的 正/反 面,血常规的 正常/超标 等等。而上述所提到的就是典型的二元逻辑回归问题。
总的来说:逻辑回归就是将输入数据x通过逻辑回归模型,将其映射到有限的输出y上,而每个y都代表着实际的类别,从而达到将x分类的目的。

本节课将分为四个小节来学习,分别是:逻辑回归问题、逻辑回归误差、逻辑回归梯度,梯度下降法。

1.逻辑回归问题

机器学习||林轩田机器学习基石(第十节)个人学习笔记
首先对于心脏病预测问题来说,我们拿到的数据集D是有噪声的版本,它的目标函数可以用目标分布P(y|x)来表示。如果要判断一个人是否心脏病复发,我们把P(+1|x)放入sign函数里让它与0.5来判断,如果值大于0.5则被预测为+1,即表示复发,否则没复发;这是一个典型的二分类问题。但是现在我们要告诉来看病的人“心脏病复发的概率”,这显然要求输出的P(y|x)是一个在[0,1]之间的具体数目,我们把这类问题叫做‘soft’ binary classification(软二分问题)。

机器学习||林轩田机器学习基石(第十节)个人学习笔记
我们想要拿到的理想的资料如绿色图中所示,要得到的其实是P(+1|x)的具体大小是多少,但是还是拿心脏病的例子来讲,我们通常拿到的数据只是知道患者心脏病复发还是没复发而已。我们可以把实际的资料看成是立项资料的有噪声版本。由于没有具体的值,所以我们在原有数据集上进行了抽样,但是我们发现绿色框框中0.6的值竟然被抽样得到了0,。所以我们现在的问题就是:如何使用这些实际的训练数据来解决软二分类的问题呢?我们的假设函数如何设置?

机器学习||林轩田机器学习基石(第十节)个人学习笔记
在之前的线性问题中,我们通常把样本特征拿来,赋予权重进行加权处理计算出一个分数S。我们怎么样把计算出来的分数通过逻辑回归的思想映射到有限个类别中实现正确的预测呢?在这里,我们想到了一个S形状的函数来描述它。于是给出了logistic hypothesis: h(x) = θ(wT x)

机器学习||林轩田机器学习基石(第十节)个人学习笔记
这个函数其实就是sidmoid函数。我们不妨把几个特殊的值带入其中,来检查一下设定的这个函数是否满足我们的需求。三个特殊的值带入之后发现确实是把输出限制在了[0.1]之间,而我们知道一件事情发生的概率恰巧是0~1,所以是合理的。由于h是线性加权的函数,所以我们把wx带入表示就得到了最终的h(x)。

机器学习||林轩田机器学习基石(第十节)个人学习笔记
这个题我理解的意思就是说把h(x)直接拿来放进sign函数里做二分预测。令sign(h(x) -0.5)=0,得到h(x)=0.5,当h(x)=0.5时,wx=0,h(x)>0.5时,应该被判断为+,反之则为-。这与②的表述一致。

2.逻辑回归误差

机器学习||林轩田机器学习基石(第十节)个人学习笔记
我们结合上两节学习的线性分类和线性回归做个对比。发现他们都用到的是分数s=wt。不同的除了h(x)之外还有他们的错误衡量。线性分类用0-1误差,线性回归用平方误差,那我们的逻辑回归误差err应该是怎么样的呢?

机器学习||林轩田机器学习基石(第十节)个人学习笔记
机器学习||林轩田机器学习基石(第十节)个人学习笔记**原本:**假设f是这些资料的目标函数。即:f产生了这些资料。
概率说法:f产生这个资料的可能性非常非常大。
**于是:**也要h产生这个资料的可能性非常非常大。
**所以:**我们想要找到使得上述概率最大的h来当做要找的g

机器学习||林轩田机器学习基石(第十节)个人学习笔记
由于在衡量可能性时,x1…Xn概率都是一样的,所以我们可以把灰色部分给忽略掉。并根据上述逻辑函数的特性将算式化成以下形式:机器学习||林轩田机器学习基石(第十节)个人学习笔记
之后我们发现,h的似然只与每个样本产生h的连乘有关。

现在我们要寻找的似然最大的假设函数h:
机器学习||林轩田机器学习基石(第十节)个人学习笔记
由于我们考虑的是线性加权的h,机器学习||林轩田机器学习基石(第十节)个人学习笔记
所以h由权重w决定,假设函数h与加权向量w一一对应,因此可以变为:机器学习||林轩田机器学习基石(第十节)个人学习笔记
我们进一步希望连乘变为连加的形式,所以取ln:机器学习||林轩田机器学习基石(第十节)个人学习笔记
ln放入连乘变为连加,之后进一步把最大化改写为最小化:接着,我们将maximize问题转化为minimize问题,添加一个负号就行,并引入平均数操作1/N。

机器学习||林轩田机器学习基石(第十节)个人学习笔记
将其带入sigmoid函数:
机器学习||林轩田机器学习基石(第十节)个人学习笔记
紫蓝色部分就是逻辑回归的err,叫做:交叉熵误差cross-entropy error。
机器学习||林轩田机器学习基石(第十节)个人学习笔记
这道题主要是在于画出交叉熵误差的函数图像,画完之后我们发现他是没有上界的函数,所以②不对。(PS:谁画出来了记得小窗口滴滴我一下,万分感谢!!!)

3.逻辑回归误差的梯度

机器学习||林轩田机器学习基石(第十节)个人学习笔记
我们发现这个Ein图像的性质:连续,可微,二次可微,凸。

接下来的问题就是:如何找到合适的向量w,让上述的 Ein最小 ?
根据之前Linear Regression的思路:我们只要计算 Ein对w的梯度,使其为0,求出w,即为最优解。
机器学习||林轩田机器学习基石(第十节)个人学习笔记
链式求偏导数分为三层,一层一层求就可以了!
机器学习||林轩田机器学习基石(第十节)个人学习笔记
(我直接粘我做的ppt了,我太懒了)
机器学习||林轩田机器学习基石(第十节)个人学习笔记
PLA算法是一步一步修正迭代进行的,每次对错误点进行修正,不断更新w值。
PLA的迭代优化过程表示如下:即找到一个分类错误的点,用它去修正w。
机器学习||林轩田机器学习基石(第十节)个人学习笔记
机器学习||林轩田机器学习基石(第十节)个人学习笔记

4.梯度下降法

我们现在的任务就是找:v和η。PLA中v来自错误修正。
在整个下坡儿过程的两个重要因素为:
1.方向v,设v作为单位向量仅代表方向
2.下山的步长η,
在 η固定的情况下,
如何选择 v 的方向保证更新速度最快?
是按照 Ein(w)最陡峭的方向更改。
即在 η固定,|v|=1的情况下,
最快的速度(有指导方向)找出使得 Ein(w)最小的w

机器学习||林轩田机器学习基石(第十节)个人学习笔记
机器学习||林轩田机器学习基石(第十节)个人学习笔记
之后是我手写的似然函数替换的具体展开过程:主要思想就是在wt点进行泰勒展开。
机器学习||林轩田机器学习基石(第十节)个人学习笔记
下面求得是v的值怎么表示,如下:
机器学习||林轩田机器学习基石(第十节)个人学习笔记
机器学习||林轩田机器学习基石(第十节)个人学习笔记
那么如何选择步长呢?
机器学习||林轩田机器学习基石(第十节)个人学习笔记
机器学习||林轩田机器学习基石(第十节)个人学习笔记
机器学习||林轩田机器学习基石(第十节)个人学习笔记
机器学习||林轩田机器学习基石(第十节)个人学习笔记

总结

机器学习||林轩田机器学习基石(第十节)个人学习笔记