最近在班主任的带领下,开始观看台湾大学林轩田教授的机器学习基石课程,虽然吧,台湾人,汉语说得蛮6,但是还是听着怪怪的,不过内容非常值得刚刚入门的机器学习
小白学习,话不多说,直接进入正题。
1.基本介绍(貌似这里一般是应该背景介绍,但是,历史吗,自己去百度吧)
(1)preceptron
翻译中文叫做感知器,如果你之前听说过神经网络的,它其实就是网络中的一个神经元,它自身的作用非常小,只能对于数据只能实现二分类,然而如果连成网络的
话,神经网络的每一层都可以作为一个线性函数或非线性函数,将函数复合的话,理论上可以逼近任何函数(这里的数学模型或者说数学原理我还没有完全理解,如
果有大神的话可以互相交流)。这里林教授以发不发银行卡作为问题引入,即银行面对一位来申请银行卡的人,银行持有此人的一些基本资料,根据之前已有的发卡
记录,建立模型,来判断是否应该发卡给当前的申请人。在实际生活中,有许多是与不是得二分问题,譬如识别类的问题,感知器作为目前最简单的线性分类器,其
实还是有不错的分类能力的。下图是感知器的模型图:
从图中可以直观的看出感知器接受多个维度的数据,与对应的权值w相乘之后得到一个值,经过sign函数从而达到二分类的目的,为了表达的简单,我们将偏置值b一
起写入wx中,即w=b,x=1,这在下面的代码中会有体现。在林教授的课程中,偏置值b为阈值(threshold)的负数,即x与w的乘积大于此数值,表明银行可以发给
此人银行卡,反之,则不能发卡。具体的表现形式见下图:
(2)PLA
全称为"preceptron learning algorithm",在课程中林教授称之为“知错能改算法”,当然这其实也是这个算法的核心表现。(其实用的比较多的方法应该是梯度下降法,
但是我还是按照课程提供的方法进行)。我们首先考