您的位置:首页 > 其它

Machine Learning Foundations 第9节-第12节

2015-07-21 20:31 274 查看
機器學習基石 (Machine Learning Foundations) 学习要点小结:

课程来自coursera:

https://class.coursera.org/ntumlone-002/lecture


主要学习了几个不同的model。

第9节 Linear Regression

目标y是实数空间R。



常用的错误衡量方法:squared error



所以线性回归的目标就是:寻找这样的直线/平面/超平面,使得输入数据的残差最小。

根据前几节课的推导,我们只需保证Ein越小越好,这样就能达到learning的效果。







令上式 = 0 ,即可以算出w。

经过计算推导,我们归纳出线性回归算法的步骤:



下面我们将linear regression与linear classification进行对比:



通过计算比较可以发现,linear regression的error measure结果实际上是linear classification的error measure结果的上界,因此我们其实是可以用linear regression来做二元分类问题的。



当然,最好的选择是使用linear regression计算得到的w作为linear classification(NP-hard)的初始w。

第10节 Logistic Regression

目标y是[0, 1]。

Logistic regression选择的映射函数是S型的sigmoid 函数。





使用的错误衡量方法:cross-entropy error



因此我们的任务就是:



优化的方法使用梯度下降法。

完整的logistic regression algorithm如下:



第11节 Linear Models for Classification

目前为止,已经学习了三种线性模型:

(1)linear classification

(2)linear regression

(3)logistic regression

对比如下:







线性分类(PLA)、线性回归、逻辑回归的优缺点比较:

(1)PLA

优点:很高效,但依赖数据的线性可分。

缺点:只有在数据线性可分时才可行,否则需要借助POCKET 算法(没有理论保证)。

(2)线性回归

优点:最简单的优化(直接利用矩阵运算工具)。

缺点:y*s 的值较大时,与0/1 error 相差较大(loose bound)。

(3)逻辑回归

优点:比较容易优化(梯度下降)。

缺点:y*s 是非常小的负数时,与0/1 error 相差较大。

实际中,逻辑回归用于分类的效果优于线性回归的方法和POCKET 算法。线性回归得到的结果w 有时作为其他几种算法的初值。

随即梯度下降SGD(Stochastic Gradient Descent):

传统的梯度下降每一次更新w需要遍历一遍data,当数据量太大或者一次无法遍历全部data时是不可行的。



因此,便产生了SGD,每次随机选取一个数据(xn,yn) 来获取“梯度”,以此对w 进行更新。



这种方法在统计上的意义是:进行足够多的更新后,平均的随机梯度与平均的真实梯度近似相等。注意:在这种优化方法中,一般设定一个足够大的迭代次数,算法执行这么多的次数时我们就认为已经收敛(防止不收敛的情况)。

η经验上取值在0.1附近会比较合适。

多类别分类问题的两种解决方法:

(1)OVA(One Versus ALL):任意选择一个类作为+1,其他类都看做-1,在此条件下对原数据进行训练,得到w;经过多轮训练之后,得到多个w。

预测:对于可以明确区分的x,只会有1个相应的分类器识别该x;对于不明确的x,这时我们就需要找到可能性最大的那个分类器。

(2)OVO(One Versus One):每轮训练时,任取两个类别,一个作为+1,另一个作为-1,其他类别的数据不考虑,这样,同样用二值分类的方法进行训练;目标类有k个时,需要 k*(k-1)/2 轮训练,得到 k*(k-1)/2 个分类器。

预测:对于某个x,用训练得到的 k*(k-1)/2 个分类器分别对其进行预测,哪个类别被预测的次数最多,就把它作为最终结果。即通过“循环赛”的方式来决定哪个“类”是冠军。

可以看出,以上的多元分类是利用二元分类的方法进行的。

第12节 Nonlinear Transformation

这节面对的是线性不可分的数据。

总体应对思路:将线性不可分的数据转换成线性可分的数据。



这里的转换可以叫做特征转换(feature transform),特征转换需要付出一定的代价,即更高的模型复杂度。

有一个公式可以推算出转换后需要的参数数量:



我们常常从最简单的模型开始学习。



hypothesis set是结构化的,多项式次数越高,模型越复杂,对输入的数据拟合的越充分,会使Ein越低,但是Eout会变高,因此在实际工作中,通常采用的方法是:先通过最简单的模型(线性模型)去学习数据,如果E_in 很小了,那么我们就认为得到了很有效的模型;否则,转而进行更高次的假设,一旦获得满意的E_in 就停止学习(不再进行更高次的学习)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: