林轩田之机器学习课程笔记(when can machines learn之learning to answer yes or no)(32之2)
来源:互联网 发布:学生借款软件 编辑:程序博客网 时间:2024/04/27 21:23
- 概要
- 感知机模型的假设空间
- 感知机模型的演算法
- 感知机的理论保证
- 感知机如何处理不可分数据
欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
概要
本节课程主要是学习是非题目,在机器学习领域中,很多情况就是进行一个二分类,比如是否发信用卡,银行是否贷款,用户会不会点击广告等。这里从一个简单的机器学习模型——感知机模型出发,以是否授予信用卡为例。
感知机模型的假设空间
根据上节的课程,我们知道机器学习的流程:
我们需要在假设空间
那么如何来找
我们知道在得到一笔资料后,比如(身高,年龄,薪水,房产)等等。这些可以看做用户的特征。在机器学习中我们称之为特征。采用一组权重和每个特征进行乘积,得到一个分数,为了判断是否发信用卡,我们可以根据这个分数设定一个阈值,就像考试是否及格一样,设定为60分。
那么根据每个特征的权重不同,而有不同的
将上面的公式简化下:
这里假设的是用户的资料的第0维为一个常数。
在一个二维空间中,可以表示成如下所示:
因为是线性的,所以也称为线性模型。
感知机模型的演算法
演算法是从假设空间中找到一个
而
那是不是
比如我们可以随机的去搜索整个平面上的线,直到这条线的一边是正样本,另一边是负样本。这样岂不是要到天荒地老。。。。
可不可以随机的找一条线,然后根据所看的数据,不断的修正这条线,使得这条线趋近完美?这就是感知机的演算法。其实现在的大多数机器学习都是建立在这样的思想中,采用随机梯度下降。如下图所示:
找到一个使得该线犯错误的点,进行修正,直到该线条不再犯错误。
那么如何修正呢?假设该线的法向量是W,如果样本是正的,预测成了负的,那么法向量和该点这个向量之间的夹角过大,超过90度。当法向量和该点夹角垂直表示该线经过了该点。需要调整,那么进行调整。如果样本是负的,预测是正的。那就是代表夹角过小,小于90度,那么进行相减。最后调整的式子如下:
这里很明显,每次调整幅度很大,会导致调整一次,可能开始只错一个点,调整后,错的更多。
如图出现了错误,
如下图:
那么我们也知道, 这个演算法,在更新的过程中,不断的出现新的错误点,这样会不会进入死循环呢?下面进行讲解。
感知机的理论保证
pla的终止条件是资料可以线性可分,如果不可分,那就会进入死循环了。那么这里假设所有的点都是线性可分的,那么这个演算法到底会不会停下来呢?
假设存在一条直线 ,其法向量为
那么这个时候假设我们有一条直线,其法向量为
每次错误点更新,会导致直线
同时也可以证明,法向量的长度增长,不会超过x中的最大值。
如果我们可以证明如下等式成立,是不是就说明了
这个如何证明呢?这样去想,我们的直线和完美直线顶多是重复,这样的话就会导致
下面进行详细证明:
1)假设经过T轮更新,由上面得证:
因为经过T轮更新,我们得到
2)再来看每次
这里我们得到:
又因为
所以:
令:
那么我们可以得到:
证明得到,在线性可分的情况下,感知机迭代是收敛的。
感知机如何处理不可分数据
如果感知机在线性可分的情况先,是可以在有限次的情况下,算法收敛,但是我们其实是不知道给你一堆数据,到底是否线性可分的。及时线性可分,但是到底多好次呢?虽然上面已经证明但是这个依赖不可知的一个完美分割线的。成了一个先有蛋还是先有鸡的问题。
如果数据线性不可分,如何选择一条好的直线呢?我们可以找到一条线使得这条线犯的错误最少。麻烦的是这是个NP难问题。。。。。。没办法迅速找到答案。
NP难问题参考:https://baike.baidu.com/item/NP-hard/10680083?fr=aladdin
既然这是个NP难问题,该如何解决呢?这里就用到贪心算法喽,随时保持存放着比较好的直线, 不断更新。
这个东东我们成为pocket PLA算法。所以在机器学习中,我们基本上不可能得到我们完美的分割线,只是不断的去接近这个分割线。
关于pla的代码可以参考:http://blog.csdn.net/cqy_chen/article/details/76783261
欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
- 林轩田之机器学习课程笔记(when can machines learn之learning to answer yes or no)(32之2)
- 林轩田之机器学习课程笔记(when can machines learn之learning problem)(32之1)
- 林轩田之机器学习课程笔记(when can machines learn之types of learning)(32之3)
- 林轩田之机器学习课程笔记(when can machines learn之feasibility of learning)(32之4)
- 林轩田之机器学习课程笔记(why can machines learn之training versus testing)(32之5)
- 林轩田之机器学习课程笔记(why can machines learn之theory of generalization)(32之6)
- 林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
- 林轩田之机器学习课程笔记(why can machines learn之noise and error)(32之8)
- 林轩田之机器学习课程笔记( how can machines learn之linear regression)(32之9)
- 台湾大学林轩田机器学习基石课程学习笔记2 -- Learning to Answer Yes/No
- 台湾大学林轩田机器学习基石课程学习笔记2 -- Learning to Answer Yes/No
- 【笔记】机器学习基石(二)learning to answer yes or no
- 机器学习基石-2-Learning to Answer Yes/No
- 机器学习基石笔记 Lecture 2: Learning to Answer Yes/No
- 台大机器学习笔记(2)——Learning to Answer Yes/No
- 机器学习基石笔记(2)——Learning to Answer Yes/No
- 机器学习基石第二讲:learn to answer yes/no
- 机器学习基石notes-Lecture2 Learning to Answer Yes/No
- MapReduce的工作机制
- Prim输出无向图中所有的最小生成树
- 起始心得
- 实验六 图的遍历
- 练习-Oracle管理表
- 林轩田之机器学习课程笔记(when can machines learn之learning to answer yes or no)(32之2)
- Java基础--配置环境并运行
- 设计模式资料
- 从零开始学android编程之表格布局管理器(2-1)
- 为了工作,要做些什么
- 数据库显示中文乱码或者??
- http://chenfengcn.iteye.com/blog/375830
- 【深度学习】奇异值分解与Moore-Penrose伪逆
- 网络编程