林轩田机器学习基石课程个人笔记-第十一讲

75 阅读8分钟

上一讲学习了Logistic Regression的相关内容,在误差衡量选择交叉熵的基础上使用梯度下降来得到我们需要的很好的h
在这里插入图片描述

这一讲从四个小部分将前面学习的模型结合起来,看看它们是如何来解决常见的分类问题。
在这里插入图片描述

先对之前学习的几个模型做一个回顾。相同处在于都使用了有关输入的加权和的形式,来得到一个分数s.在线性分类中,我们使用的误差衡量是0/1error,最后通过sign(x)函数给出分类的结果,但是要想得到Ein(w)是一个NP难的问题;在线性回归中,使用平方误差,最后给出的就是加权的结果,它的Ein(w)是一个开口向上的曲线,通过最小二乘法可以求出解;那么在logistic 回归中,我们的h如上所示,这里使用的误差衡量是交叉熵,它的Ein(w)是平滑的凸函数,根据相关理论,可以使用梯度下降法求出其解。

通过分析我们就可以发现它们具有某些相似的地方,那么能不能使用linear regression或是logistic regression来帮助处理分类问题呢?
在这里插入图片描述

接下来我们从表达式入手来看一下,它们都存在一个分数s,对于二分类问题来说,最后的数字化结果就是输出+1或是-1。我们将三种情况下的err的表达式做一个组合和变换,就可以得到如下的情况
在这里插入图片描述
发现三个表达式中含有相同的部分ys,也就是上面提到的部分,这里将它们的成绩称为分类的正确度的得分
在这里插入图片描述
为了更加直观的进行比较,将三个表达式画图如下所示。横坐标轴表示ys,纵坐标轴表示误差err。0/1 err图像是一条折线,在ys为0的部分发生了变化,当ys<=0时,取值为1,其余为0;sqr err图像是一条开口向上的曲线,在ys=1时,取值为0,但是在两边当ys远小于1或是远大于1时,err都会取到很大的值;ce err 的图像是一条平滑向下的曲线,当ys越大时,err越小(为了方便,我们将其做了一些转化)。
在这里插入图片描述
仔细观察可以发现,三个图像在ys=1的附近大小是近似的,因此我们可以得到如下的结论
在这里插入图片描述
由前面学习的VC维的知识可以得到
在这里插入图片描述
通过上面的分析知道如果有一个小的Ein,那么就可以得到一个小的Eout,这和之前学的分类问题正好对应上了,说明我们可以使用linear regression和logistics regression来解决线性分类问题

在这里插入图片描述
因此我们可以在y取值为+1和-1的数据集上运行回归算法得到w,带入第二个公式就得到g,通过sign函数来出入分类的结果
在这里插入图片描述
下面给出了三种方法的相关优缺点,了解一下
在这里插入图片描述
因此在实际使用中,经常做的是将linear regression得到的w作为我们其他算法初始化的w0,然后再运行算法得到最后的分类结果
在这里插入图片描述
之前PLA算法和logistic regression都可以称为一种迭代优化的方法
在这里插入图片描述
PLA每次迭代 只会更新一个点,它每次迭代的时间复杂度是O(1);logistic regression每次迭代要 对所有N个点都进行计算,它的每时间复杂度是O(N)。
在这里插入图片描述
为了提高logistic regression中 gradient descent算法的速度,可以使用另一种算法:随机梯度下降算法(Stochastic Gradient Descent)。随机梯度下降算法每次迭代只找到一个点,计算该点的梯度,作为我们下一步更新w 的依据。这样就保证了每次迭代的计算量大大减小,我们可以把整体的梯度看成这个 随机过程的一个期望值。
在这里插入图片描述
随机梯度下降可以看成是真实的梯度加上均值为零的随机噪声方向
在这里插入图片描述
单次迭代看,好像会对每一步找到正确梯度方向有影响,但是整体期望值上看,与真实梯度的方向没有差太多,同样能找到最小值位置。随机梯度下降的优点是减少计算量,提高运算速度,而且便于online学习;缺点是不够稳定,每次迭代并不能保证按照正确的方向前 进,而且达到最小值需要迭代的次数比梯度下降算法一般要多
在这里插入图片描述
对于logistic regression的SGD,它的表达式为:
在这里插入图片描述
我们发现,SGD与PLA的迭代公式有类似的地方,如下图所示:
在这里插入图片描述
我们把SGD logistic regression称之为’soft’ PLA,因为PLA只对分类错误的点进行修 正,而SGD logistic regression每次迭代都会进行或多或少的修正。另外,当 , 且 足够大的时候,PLA近似等于SGD。

在实际应用中,通常要考虑两个问题:
• SGD的终止迭代条件:没有统一的终止条件,一般设置一个足够大的迭代次数,就认为得到的结果足够的好了
• 学习速率:它的取值是根据经验来定,比如可以取0.1等周围的数字

在有了理论支撑后,来看一下多分类问题。多分类问题广泛的存在于我们的生活中,如下所示的例子,图中有四种图像,我们需要将其分为分别的类别,但是到目前为止我们并没有学过专门的应用于多分类问题的算法,接下来只能考虑如何用前面学的二分类的方法来解决这个问题

在这里插入图片描述
那我们可以使用二分类的方法,在每一次分类时,将具体的某一类归为一类,其余所有的类归为另一类,经过多次这样的操作,可以得到多分类的结果
在这里插入图片描述
假设经过多次运行算法后,分类的结果如下图所示,看起来不同的类别的图像大致都位于不同颜色的区域,效果还不错。但是这就存在一个问题:在分类结果区域不结合的部分不会有分类的疑惑,但是在不同类别重叠的部分,就很难确定的说是所有哪一类了。那如何处理出现的这个新问题呢?
在这里插入图片描述
上面的分类称之为硬分类,也就是就是是,不是就一定不是。为了解决这个问题,我们给出一种软分类的方法,它不是给出具体的确定的分类结果,而是给出了属于某一类别的概率,表现在图像上就是颜色的深浅,颜色越深表示属于某类别的概率越大,否则表示概率越小
在这里插入图片描述

故当给定某一个点时,不是给出它具体属于哪一个类,而是给出它分别属于多个类别的概率,值最大的那个类别就是最后的结果
在这里插入图片描述
这种多分类的处理方式,我们称之为OneVersusAll(OVA) Decomposition。这种方法的优点是简单高效,可以使用logistic regression模型来解决;缺点是如果数据类别很多时,那么每次二分类问题中,正类和负类的数量差别就很大,数据不平衡,这样会影响分类效果。但是,OVA还是非常常用的一种多分类算法
在这里插入图片描述
为了解决这个在当数据集类别很多且数据不平衡的情况时,引入一种新的方法。每次只取两类进行binary classification,取值为{1,+1}。假如k=4,那么总共需要进行6次二分类。那么,六次分类之后,如果平面有个点,有三个分类器判断它是正方形,一个分类器判断是菱形,另外两个判断是三角形,那么取最多的那个,即判断它属于正方形,我们的分类就完成了。这是一种投票的机制,结果为票数最多的那一类。
在这里插入图片描述
这种多分类方法叫做OneVersusOne(OVO)。优点是更加高效,因为虽然需要进行的分类次数增加了,但每次只需要进行两个类别的比较,也就是说单次分类的数量减少了。而且一般不会出现数据unbalanced的情况。缺点是需要分类的次数多,时间复杂度和空间复杂度可能都比较高。它作为另一种多分类的方法,也可以应用到一些多分类的问题中,也许不能一步到位,但可以作为中间的某一步使用的方法
在这里插入图片描述
最后总结一下,这一讲我们知道了之前学习的回归算法同样可以用来解决分类问题;以及如何来处理多分类问题,提出了OVA、OVO两种方法
在这里插入图片描述