Perceptron Learning Algorithm
在上一节中,给出了 hepothesis 之后,我们就要考虑如何找到 g 。从此出发,在这一小节,林老师带我们见识了第一个机器学习演算法,‘Perceptron Learning Algorithm’ 即PLA,翻译过来就是感知学习算法,林老师也叫这个机器学习算法为“知错能改”算法。
我们来看一下这个算法的主要原理:
上一节中提到了,其实向量 x 与 权重向量 w 内积就是一个将空间分割成两部分的超平面(也因为只能分为两部分,所以“感知器”只能用来解决回答是或否的问题),所以,PLA的过程,就是一个不断修正这个超平面的位置,使得所有数据处于它应该位于的平面某一侧。
而这一过程是一个迭代修正的过程,每一步只修正一个错误点(但是同时可能会有新的错误出现),最后使得所有点都正确。修正过程如下:
找到某一个错误之后,为什么步骤二能起到修正作用呢,再看下图:
我们可以看到,如果 y 的值应该为+1,但是它 x 与 w 的内积却是负的,说明 x 与 w 的向量夹角大于90度,所以过程只要让新的 w 为 w+yx 即可。同理有 y 的值应该为-1的情况。
但是,到这里就有疑问:
- 这样执行的迭代修正过程一定会终止吗?
- 可行的 g 一定存在吗?
- 如果有错误数据存在,PLA还是正确的吗?