码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习基石——第1-2讲.The Learning Problem

时间:2015-02-04 12:57:08      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:机器学习基石

本栏目(机器学习)下机器学习基石专题是个人对Coursera公开课机器学习基石(2014)的学习心得与笔记。所有内容均来自Coursera公开课Machine Learning Foundations中Hsuan-Tien Lin林轩田老师的讲解。(https://class.coursera.org/ntumlone-002/lecture)

第一讲-------The Learning Problem

一、课程总体

Machine Learning是一个理论与应用混合的工具,本课程则主要是foundation oriented。课程整体分为四个部分来探讨:
1. When Can Machines Learn?
2. Why Can Machines Learn?
3. How Can Machines Learn?
4. How Can Machines Learn Better?技术分享

对于问题1. When Can Machines Learn? 机器学习的应用场景有很多,下面是几个例子:

  • Navigating on Mars:需要自适应
  • Speech/visual recognition:很难define the solution
  • High-frequency trading:需要快速决策
  • Consumer-targeted marketing:需要个性化

二、Machine Learning的定义技术分享

这里给出了一个Machine Learning的实用定义:利用Data和hypothesis set H得到g,使得g尽可能地接近真实的target f。 举个例子,银行需要根据一系列信用卡申请者的个人资料,决定能否发放信用卡。在这里:

input:x就是申请者信息;
output:y就是发放/不发放信用卡;
data:训练数据。银行中的历史数据,申请人资料,信用卡是否发放,信用卡使用情况等;
target f:理想的信用卡发放的condition,这个我们是不知道的。我们只有一系列的信用卡发放历史记录,以及他们是否正常还款等等的信息,需要从这些历史data中学出来这个target function;
hypothesis:我们假定的一些可能与真实的target f很接近的条件。譬如个人年薪>80W、债务>10W、或者工龄<2年等的情况下可以发放信用卡。这一系列的hypothesis构成了hypothesis set H;

三、Machine Learning与其他领域的关系

Machine Learning:use data to compute hypothesis g that approximates target f;

Data Mining: use (huge) data to find property that is interesting
当这里的‘interesting property‘ 指的是 ‘hypothesis that approximates target’,那ML = DM(每年的KDDCup就是这种情况);
当‘interesting property‘ 与 ‘hypothesis that approximates target’相关时,则DM与ML可以相辅相成;
传统的DM主要聚焦于efficient computation in large database

Artificial Intelligence: compute something that shows intelligent behavior
当ML中的target f 是something that shows intelligent behavior,那么ML是实现AI的一种途径;例如对下象棋来说,传统的AI是game tree;而ML for AI则是learning from board data。

Statistics: use data to make inference about an unknown process
ML中的g就是一个inference的结果,f则是unknown的,因此statistics 能用来实现ML
传统的statistics聚焦于provable results with math assumptions,对于computation不怎么关心。

第二讲-------Learning to Answer Yes/No

继续上一节的话题,机器学习就是算法A takes 数据D and 假设集H to get g,使得g尽可能地接近真实的target f。那么,这一节主要讲到底怎样我们才能有一个机器学习的算法来解决上一节提到的,银行判断要不要发放信用卡这件事情?或者更广义地说,机器怎么解决这种是、非的的问题。

一、感知机Hypothesis Set

我们可以把每个申请者想象成为一个向量x,这是申请者多个维度feature的一个组合(譬如年龄、年薪、工龄等)。每个维度可能有着不同正面或负面的影响,决定银行给不给信用卡。既然这样,那我们把这些维度综合的算起来,给使用者一个分数。如果这个分数超过了某个阈值,则给信用卡;否则不给信用卡。

为了数学简化起见,我们用+1代表给信用卡;-1代表不给信用卡。这样简化在数学上的好处就是将算出来的分数减去阈值,如果是正的则给信用卡;如果是负的则不给信用卡,所以就是取一下正负号的运算。

这样的hypothesis也即是下图中的h(x),就是所谓的感知机(perceptron)hypothesis

技术分享
将这个h(x)进一步做一个符号上的简化:

技术分享

举个例子,对于二维feature的情况来说,输入x (x1, x2) 表示申请者的两个feature,如下图分别代表x、y坐标轴;输出y则为+1或者-1,如下图分别的叉叉和圈圈;hypothesis则为下图中的直线(多维情况下则为超平面)。

技术分享

从几何的角度来看,感知机perceptron实际上就是平面上的每一条线,所以有时候也叫做线性分类器linear classifier

二、感知机学习算法Perceptron Learning Algorithm

根据上节,我们知道了H即hypothesis set就是平面上所有的线,现在问题来了:如何设计一个算法从这么多的线中选出最好的那条线出来作为最后的g?我们认为的最好的那条线当然是理想的最接近f的那条线啦。

f我们是不知道的,我们唯一知道的是我们的训练数据是从f产生的。我们可以先要求我们求出来的g在训练数据上跟真实的f是接近的。我们可以先假设已经有了一条线,然后在这个的基础上,把这条线越变越好。也就是说,如果当前的线不完美,第1步我们一定找的出某个点的预测这条线犯了错误;第2步我们尝试通过改变线来修复这个错误的点的预测。

技术分享

具体是怎么修复的?修正有两种,如上图右侧所示:
一种是希望的y=+1,而当前线w预测为负。代表目前w跟x的方向的角度太大,所以将w转向x的方向,即w用w+x来替换;
另一种是希望的y=-1,而当前线w预测为正。代表目前w跟x的方向的角度太小,所以将w转向x的另外一个方向,即w用w-x来替换。

因此,感知机算法其实就是不断的训练试错以寻找一个合适的超平面。“知错能改,善莫大焉”的算法。也就是说,PLA算法停下来的时候就能找到合适的超平面。那么问题又来了:
1. PLA的算法一定能停下来吗?
2. 假设能停下来,得到的g与真实的f 到底是否一样?

三、PLA的前提

对于训练数据D,对于标记为叉叉的点与标记为圈圈的点如果存在一条直线将其分开,则认为D是线性可分的,如下图左。否则为线性不可分,如下图右两种情况。对于线性不可分的情况,PLA是肯定不会停的;那么对于线性可分的情况,PLA会停吗?

技术分享

线性可分的意思就是存在一条线h(x),对于每一个点的预测与y的符号都是一致的。数学上来说,也就是如下图:

技术分享

衡量PLA在线性可分的情况下能否停下来,实际上也就是需要检测每一次更新,当前线是否与真实的f越来越接近了。衡量两个向量是否接近的其中一个方法就是将他们做内积,内积的值越大,某种角度就代表越接近。如上图的证明,w(t)每次的更新与w(f)的内积越来越大,也就是说“好像”他们越接近了。

为什么上面要说“好像”他们越来越接近了。这是因为两个向量长度一定的情况下,如果内积越大则两个向量的方向越接近。但是这里w(t)在更新的过程中,长度是有可能变的,所以这里我们证明只进行了一半,还需要处理向量长度的问题

PLA最重要的性质是:有错才更新。也就是说存在一些点,使得当前直线的预测与实际的y是不一致的,也就有如下的推导:

技术分享

如上图的推导说明了:w(t)在更新的过程中,向量的长度不会变的太快。所以,刚刚前面在说,w(t)跟w(f)越来越靠近,每一次更新都会靠近一定的分量;现在又说w(t)是慢慢增长的。那么结合起来可以推导
技术分享

上述推导说明了,经过T次的更新,当前超平面确实与理想中的f越来越接近了。既然这样,那究竟需要多少次的试错才能找到合适的超平面呢?请看如下题目:

技术分享

要解决这个问题,需要先将之前公式中的constant常数求出,推导很简单,过程如下所示。同时也从理论上证明了,在线性可分的前提下,PLA算法仅需要有限次的试错更新即可找到合适的超平面
技术分享

四、改进的PLA解决线性不可分数据

PLA算法的优点是简单易实现,并且适用于高维feature空间。缺点也是显而易见,首先得假设是线性可分的数据;其次虽然理论上证明了有限次试错可得超平面,但具体需要多少次也不得而知,因为实际上的次数依赖于w(f)。更大的问题是,训练数据不是线性可分的怎么办?

线性不可分的情况下,如下图,既然我们找不到一条最完美的超平面,那么我们可以退而求其次找到在训练数据上犯错误最少的超平面。如下的优化目标。

技术分享

可惜的是,这个问题已经被证明是NP问题,可以理解为是很难很难解决的问题。既然找不到犯错误最少的超平面,那么我们可以贪心地去找犯错误更少的超平面,这样的话更新一定次数后,我们就能找到一条还不错的超平面。

技术分享

也就是线性不可分的情况下,PLA的变形——Pocket PLA也能帮着处理。有一些理论已经证明了Pocket PLA也还能做到不错的效果,这里就不详细分析了。

 

关于Machine Learning Foundations更多的学习资料将继续更新,敬请关注本博客和新浪微博Sheridan

原创文章如转载,请注明本文链接: http://imsheridan.com/mlf_first_lecture.html


机器学习基石——第1-2讲.The Learning Problem

标签:机器学习基石

原文地址:http://blog.csdn.net/xyd0512/article/details/43484651

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!