在学习理论的最后一节我们会介绍一个与之前不同的机器学习模型。在前面的内容里我们讨论了太多批量学习的情形,即先在给定训练集上学习,将学习后的假设在另一个测试集上评估其表现。而在本节中,我们将关注在线学习这一情形,算法一边学习一边对输入进行预测。
在这种情景下,我们给学习算法一个有顺序的输入样本序列 (x(1),y(1)),(x(2),y(2)),…,(x(m),y(m)) 。当碰到输入 x(1) 后,它就开始预测 y(1) 的值。当它结束预测后,我们就将 y(1) 的真实值反馈给它(它根据反馈值进行学习)。紧接着我们就将 x(2) ,然后它继续做出预测并接收反馈,依次循环直至 (x(m),y(m)) 。在线学习的情形中,我们对整个学习过程中算法出错的总次数感兴趣,因为它反映这种算法的效果。
我们会对感知器算法在在线学习中的犯错数给出一个上界。为了使后面的推到更简单,我们定义输出的类标签 y∈{−1,1} ,权重 θ∈Rn+1 ,通过下列公式进行预测:
且:
当给定一个训练样本 (x,y) 后,感知器学习法这样更新权重:如果 hθ(x)=y ,不做任何改变;否则:
下面我们给出关于错误数上界的定理,需要注意的是,经此定理可知错误数的上界和样本数
m
以及输入维数
定理(Block, 1962,and Novikoff, 1962) 对于给定训练集序列 (x(1),y(1)),(x(2),y(2)),…,(x(m),y(m)) ,若输入的二范数满足 ∥x(i)∥≤D 对于所有i成立,且存在单位向量 u(∥u∥2=1) 使得 y(i)⋅(uTx(i))≥γ 对所有样本均成立。那么感知器算法在这一序列中犯错的总数不会超过 (D/γ)2 。
证明如下,若 θ(k) 是算法第k次犯错时的权重值。那么 θ(1)=0⃗ (权重是从零开始的)且第k次犯错时的样本为 (x(i),y(i)) ,则有:
另外由感知器学习法的性质可知 θ(k+1)=θ(k)+y(i)x(i) ,我们可推得:
依次递推下去,可得:
考察 θ(k+1) 的2范数有:
其中第三步的小于推导使用了方程(2),我们将上式进一步递推则有:
将不等式(3)和(5)结合起来可推得:
在第二步不等式的推导中使用了单位向量的性质( ϕ 表示z和u之间的夹角,有 zTu=∥z∥⋅∥u∥cosϕ≤∥z∥⋅∥u∥ )。最后可推得我们的结论 k≤(D/γ)2 。