第二讲介绍了Perceptron Learning Algorithm (PLA),是以后学习的基础。
PLA是二元的线性分类器,类似于神经感受器,用于做是非题。
1. PLA的假设函数:h(x) = sign(w‘x)。
这里w‘是列向量,x是行向量。x代表一个数据点,这个点可能包含了d个维度,即x = (x1, x2, ..., xd)。举例来说,x可以是一个人,里面包含了人的各种特征,比如年龄、性别、职业、收入等等。w‘是每个维度所占的权重。比如银行要给客户发信用卡,就要考虑客户各个方面以决定是否发卡。每个方面重要性可能不同,比如收入可能重要一些,则相应的权重高一些。当客户的综合能力超过某个阈值时,银行就可以发卡;没有达到时,银行就不发卡。把这个阈值作为第0维,整合到w‘中。h(x)只有两个取值{+1, -1},对应于发卡和不发卡。PLA的目的是根据已有资料找到一个w‘,这个w‘能根据已经分好类的资料,学会如何分类,并用于新的数据。
2. 算法描述(知错能改):
从某个w0开始,当找到一个点(xn(t), yn(t)),使得sign(wt‘xn(t)) ≠ yn(t)时,更正wt+1‘ = wt‘ + yn(t)xn(t),直到没有错误,不用更正为止。将最后一个w作为找到的假设g。
3. PLA的前提:数据D线性可分。
当数据D线性可分时,可以保证最后找到的w就是目标f所对应的wf。证明思路:每次更正,都会使wt和wf的内积增大。内积增大有两个原因,一个是两个向量靠近(夹角变小)了,一个是两个向量模变大了。可以证明wt的模的增长是有上界的。所以,每次更正都会使wt接近wf,最终找到wf。更正次数T是有上界的。证明如下:
4. PLA的优缺点:
优点:简单,快速,可用于任意维度
缺点:必须假设数据线性可分,不知道何时停止(尽管实际很快)
5. 有噪音情况的PLA:更正时,保留错误最少的wt。