林轩田机器学习基石笔记(第7节)——PLA算法

机器学习的流程如下图,我们的目标是找到 f,但是我们不知道 f 长啥样,但是我们有一堆数据D,现在我们要用数据D进行训练,然后会得到一个假设集hypothesis,然后我们再设计一条演算法,该演算法的任务就是从假设集hypothesis中找到一个 g,使得 g≈f

现在回到上一节提到的信用卡发卡问题,我们计算客户是否符合发卡要求的公式是,但是我们其实不知道具体的到底长啥样,它表现在平面上有无限种可能,也就是有无限条线。现在我们的目标就是找到一条合适的线g,把所有的结果进行一个分类(圈圈叉叉都分在不同的两边),如下图:

那么如何下手呢?首先我们从一条线开始,令这条线为W0,然后以这条线为基准,不停的旋转修正它,直到把所有的圈圈和叉叉都分在不同的两边为止。

这里我们需要用到向量的加减的相关知识,顺便复习一下。

下面是向量加减法的运算法则:

接下来我们就要用上面的数学知识去找到合适的线,直到能够把所有的圈圈叉叉都分在不同的两边。具体的方法如下:

如上图,假设现在我们需要的值是+1,但是我们所拥有的W与X进行sgin(WX)运算后却不等于+1,即,根据符号函数的定义(符号函数sign假设 y=sign(x) 当x>0,y=+1;当x=0,y=0;x<0,y=-1),我们知道这是由于向量W和X之间的夹角太大,我们需要把它们的夹角变小,这样才能够更接近我们的需要。

相反,如果我们需要的是-1,而实际上向量W和X之间的夹角又太小,所以我们需要做减法把向量间的夹角变大,如下图:

通过这种方式进行筛选g的算法叫做PLA,即Perceptron Learning AIgorithm.

以下就是在林軒田老师的视频中旋转图的其中一个画面,我这里只拿出一张来解释其中的含义。

如图,W(t)表示我们当前拥有的向量,它的法向量就是我们所需要的那条最终的线g,显然没有符合我们的需求,因为X0还在红色的那一边,所以我们从原点O连接X0作为向量X,这说明W(t)离X0太远了,我们需要让它们的夹角更小,于是就两个向量相加得到W(t+1),然后又对W(t+1)做一条法向量,观察其是否能够把圈圈叉叉都分在不同的两边,如果是,那就表示我们找到了一条适合的g。这样不断的循环往复,直至能够把所有的圈圈叉叉都分在不同的两边为止才能拿到正确的g。

但是问题来了,这样的循环什么时候停止?要知道平面上可是有无限多条线!并且,我们真能保证 g≈f 吗?答案是不能!所以下面的课我们要解决这些问题,记住喔,要不然下一节课你又莫名其妙了,无法连贯起来。

=================================================================================

加入我们

估计这一节课会把不少人给绕晕,我现在也还有蛮多疑问,比如在符号函数y=sign(WX)中我们要讨论的向量的积,但为何最后变成讨论向量的加减法,它们之间有什么联系?欢迎大家加入Q群讨论:463255841

猜你喜欢

转载自blog.csdn.net/zhangdongren/article/details/81433777