【Perceptron Learning Algorithm】林轩田机器学习基石

直接跳过第一讲。从第二讲Perceptron开始,记录这一讲中几个印象深的点:

1. 之前自己的直觉一直对这种图理解的不好,老按照x、y去理解。

a) 这种图的每个坐标代表的是features;features的值是有物理意义的。

b) 而圈圈和叉叉是为了标注不同的样本(正样本 负样本),即label;为了后续的很多简便表示,这里正样本取+1,负样本取-1

2. Perceptron Learning策略的几何意义:表示临界线(面)的法向量旋转方向

由于label设为了+1和-1,可以直接用w+yx来表示遇上错分样本时临界线的旋转策略,很巧妙和简洁。

这里是有一个疑问的,如果每次根据一个点调整,能保证调整后这个点一定就对了么?

我想这个答案是否定的:当轮调整后,这个点不一定就对了。

比如y=+1的例子,如果W向量特别长,x特别短,而且W与x的夹角特别大,那么就可能出现W+yx之后还是不能保证W(t+1)x是正的(即夹角转不过来);

但是这并不影响最后总体的收敛趋势(如果是Linear seperable的)

3. 为什么在Linear Seperable的条件下,Perceptron Learning Algorithm的算法策略是收敛的?

林的思路是这样的:

a) 首先假设数据是linear seperable的,在这个条件下,我们认为存在一个理想的分界线法向量Wf

b) 如果我们要求的W与Wf越接近,则认为越好

c) 如何衡量W与Wf越接近?向量内积越大,则认为越接近(夹角越小)

基于上述思路可以得到

大意就是说,按照PLA的算法策略,可以保证每一轮Wf与W的内积总是越来越大的,这个就保证了算法朝着好的方向发展。

但是还有问题,每一轮W的长度也在变化啊,这样单纯比较Wf与W的内积大小就没意义了。

因此,更进一步,有了如下的推导:

至于这里为什么用2范数,我理解主要为了表述方便一些。

这么一大段的意思就每轮算法策略迭代后,我们要求的W的长度的增长速度是有上限的。(当然,也不一定是每轮都增长的,如果展开式子的中间项是比较大的负的,还可能减小)

上面两个PPT合在一起想说明一个直观的问题:算法策略每轮朝着好的方向发展的,而且W的增速是有上限的。

有了这样的一个直观的理解,我们就可以猜测,在一定迭代次数内,算法策略是可以收敛的。即,证明如下式子:

证明过程课件并没有给出,自己划一划也就出来了:

自己的字太难看,但是这样比较快捷,凑合看了。

这个证明过程,条件放松的都蛮宽的,但是可以证明PLA的算法策略是收敛的。

时间: 2024-08-19 14:43:14

【Perceptron Learning Algorithm】林轩田机器学习基石的相关文章

【Feasibility of Learning】林轩田机器学习基石

这一节的核心内容在于如何由hoeffding不等式 关联到机器学习的可行性. 这个PAC很形象又准确,描述了“当前的可能性大概是正确的”,即某个概率的上届. hoeffding在机器学习上的关联就是: 如果样本数量足够大,那么在训练集上获得的学习效果是可以平移到测试集上的.即如下, 这里保证的仅仅是“训练集的效果平移到测试集”,平移的仅仅是效果,没说效果好坏:如果训练效果是垃圾的,那么测试效果也基本是垃圾的. 如果假设空间是有限的,那么结果又如何呢?如下, 如果假设空间是有限的,根据公式推导:当

台大林轩田·机器学习基石记要

台大林轩田·机器学习基石记要 昨天开始看林轩田的机器学习基石,从今天起开始去粗取精 第一讲比较基础,一些概念自己早已经理解了,所以不再做笔记,有点印象的是讲到了ML.DL.AI的一些联系与区别,ML主要是想从数据中学习/逼近一个理想的函数f(x) 第二讲讲到了PLA,感知器学习算法,并且证明了线性可分时感知器收敛定理(与Haykin的Neural Networks and Learning Machines证明相同,另外补充的是学习速率不一定为1,只要非负即可,但是这个地方还有一些疑问,在Hay

【Deep Learning】林轩田机器学习技法

这节课的题目是Deep learning,个人以为说的跟Deep learning比较浅,跟autoencoder和PCA这块内容比较紧密. 林介绍了deep learning近年来受到了很大的关注:deep NNet概念很早就有,只是受限于硬件的计算能力和参数学习方法. 近年来深度学习长足进步的原因有两个: 1)pre-training技术获得了发展 2)regularization的技术获得了发展 接下来,林开始介绍autoencoder的motivation. 每过一个隐层,可以看做是做了

【Linear Regression】林轩田机器学习基石

这一节开始讲基础的Linear Regression算法. (1)Linear Regression的假设空间变成了实数域 (2)Linear Regression的目标是找到使得残差更小的分割线(超平面) 下面进入核心环节:Linear Regression的优化目标是minimize Ein(W) 为了表达简便,首先需要把这种带Σ符号的转换成matrix form,如下: 1~2:多个项的平方和可以转换成向量的平方 2~3:把每个列向量x都横过来,组成一个新的X矩阵 最后转换成了最终的min

【The VC Dimension】林轩田机器学习基石

首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么Ein跟Eout的表现会比较接近 3. 如果算法A选的g足够好(Ein很小),则可能从数据中学到了东西 ================================================== 现在正式引出VC Dimension的概念:啥叫VC Dimension: VC Dimensi

【Training versus Testing】林轩田机器学习基石

接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系. 机器学习是否可行的两个关键点: 1. Ein(g)是否足够小(在训练集上的表现是否出色) 2. Eout(g)是否与Ein(g)足够接近(在训练集上的表现能否迁移到测试集上) (1)如果假设集合数量小(M小),可知union bound后,Ein与Eout是接近的:但由于可选择的假设集合少,Ein(g)效果可能不佳: (2)如果假设集合数量大(M大),有可能Ein(g)会获得更多的选择,测试集上效果更好:但由于M数量过大,训练集

【作业三】林轩田机器学习基石

关注了Q18~Q20三道编程作业题.这三道题都与Logistic Regression相关. Q18~19是用全量梯度下降实现Logistic Regression:Q20要求用随机梯度下降实现Logistic Regression. 这三题的代码都何在一个py文件中了.个人觉得,这道题的程序设计,完全用了矢量化编程的路子:运行效率很快,迭代2000次,基本是1秒完成. #encoding=utf8 import sys import numpy as np import math from r

【作业一】林轩田机器学习基石

作业方面,暂时只关注需要编程的题目了,用python完成代码. Q15~Q17应用的是传统PLA算法,给定的数据集也是保证线性可分的. 代码需要完成的就是实现一个简单的PLA,并且“W = W + speed*yX”中的speed是可以配置的(即学习速率) 代码1 #encoding=utf8 import sys import numpy as np import math if __name__ == '__main__': W = [ 0.0, 0.0, 0.0, 0.0, 0.0 ] h

【Hazard of Overfitting】林轩田机器学习基石

首先明确了什么是Overfitting 随后,用开车的例子给出了Overfitting的出现原因 出现原因有三个: (1)dvc太高,模型过于复杂(开车开太快) (2)data中噪声太大(路面太颠簸) (3)数据量N太小(知道的路线太少) 这里(1)是前提,模型太复杂: (1)模型越复杂,就会捕获train data中越多的点(这当中当然包括更多的噪声点) (2)数据量N太小,根据VC Dimension理论,Eout会增大 这里的noise包括两类: 1. stochoastic noise: