台湾大学林轩田机器学习基石课程学习笔记2--Learning to Answer Yes/No

版权声明:未经作者同意,不得转载! https://blog.csdn.net/weixin_41790863/article/details/82429139

台湾大学林轩田机器学习基石课程学习笔记2--Learning to Answer Yes/No

 作者:一直特立独行的猫

上节课,我们主要讲述了机器学习的定义及其重要性,并用流程图的形式介绍了机器学习的整个过程:根据假设集H,使用演算法A,在训练集D上进行训练,得到的g(学到的技能)就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f。本节课将继续深入探讨机器学习的问题,介绍感知机Perceptron模型,并推导课程的第一个机器学习算法:Perceptron Learning Algorithm(PLA)。 

一、Perceptron Hypothesis Set(感知机假设集)

引入这样一个例子:某银行要根据用户的年龄、性别、年收入等情况来判断是否给该用户发信用卡。现在有训练样本D,即之前存储在银行里的用户的信息和是否发了银行卡的记录。这是一个典型的机器学习问题,我们要根据D,通过A,在H中选择最好的h,即g,g接近目标函数f,也就是根据先验知识选择是否给用户发信用卡的模型。银行用训练好的模型(技能/g)对以后的用户进行判断:发信用卡(+1),不发信用卡(-1 )。

在这个机器学习的整个流程中,有一个部分非常重要:就是模型的选择,即Hypothesis Set的选择。选择什么样的模型,很大程度上会影响机器学习的效果和表现。下面介绍一个简单常用的Hypothesis Set:感知机(Perceptron)模型。

还是刚才银行是否给用户发信用卡的例子,我们把用户的个人信息作为特征向量x,假设总共有d个特征,每个特征赋予不同的权重w,表示该特征对输出(是否发信用卡)的影响有多大。让所有特征的加权和的值与一个设定的阈值trhreshold进行比较:大于这个阈值,输出为+1,即发信用卡;小于这个阈值,输出为-1,即不发信用卡。感知机模型,就是当特征加权和与阈值的差大于0,则输出h(x)=1;当特征加权和与阈值的差小于0,则输出h(x)=-1,而我们的目的就是计算出所有权值w和阈值threshold。

为了计算方便,通常我们将阈值threshold当做w0,引入一个x0=1的量与w0相乘,这样就把threshold也转变成了权值w0,简化了计算。h(x)的表达式变成了如下:

为了更清楚的说明感知机模型(感知机假设),我们假设Perceptrons在二维平面上,即h(x)=sign(w0 + w1x1 + w2x2)。其中,w0 + w1x1 + w2x2= 0是平面上的一条分类直线,直线一侧是正类(+1),直线另一侧是负类(-1)。权重w不同,对应于平面上不同的直线,对应不同的h。我们的目的,就是从中选择出一个最好的h,当做g,g近似于f。

那么,我们所说的Perceptron模型,在这里就相当于一个Linear(Binary)Classifiers。注意一下,感知机线性分类不限定在二维空间中(在二维空间中,感知机的几何表示是一条直线),在三维空间中,感知机的几何表示是一个平面,在更高维空间中,感知机的几何表示是一个超平面,即只要是w\top x的线性模型,都属于线性分类Linear(Binary)Classifiers。

同时,这里所说的Linear(Binary)Classifiers是用感知机模型建立的,线性分类问题还可以用Logistic Regretion来解决。(附:我的一篇Logistic Regretion的博客:https://blog.csdn.net/weixin_41790863/article/details/81152297

 二、Percetron Learning Algorithm(PLA)

根据上一部分的介绍,我们已经知道了hypothesis set由许多条直线构成。接下来,我们的目的就是如何设计一个演算法A,来选择一个最好的直线,能将平面上所有的正类和负类完全分开,也就是找到最好的g,使得g近似于f。

如何找到这样一条最好的直线呢?我们可以使用逐点修正的思想,首先在平面上随意取一条直线,看看哪些点分类错误。然后开始对第一个错误点进行修正,即变换直线的位置使这个错误点变成分类正确的点。接着,再对第二个、第三个等所有的错误分类点进行直线修正,直到所有的点都分类正确了,就得到了最好的直线。这种“逐步修正”,就是PLA思想所在。

下面介绍一下PLA是怎么做的。

猜你喜欢

转载自blog.csdn.net/weixin_41790863/article/details/82429139
今日推荐