在学习理论的最后,我们介绍一种不同的机器学习模型。之前介绍的都是批学习,先从训练集合中学习,再在测试集上评估。本文介绍的是在线学习,边学习边预测。
给定学习算法一个序列例子 (x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)),算法先遇到 x(1),然后预测 y(1) 是什么,做了预测后,y(1) 的真实值会给算法,算法使用这个信息来执行学习。然后给算法 x(2) 并要求做预测,然后再给 y(2) 的真实值,再次执行学习,直到 (x(m),y(m))。在在线学习中,我们对算法在执行过程中的错误总数很感兴趣。
我们将给感知机算法的在线学习错误一个上界,为使连续求导容易些,我们还使用标识 y∈{-1,1}
感知机算法有参数 θ∈Rn+1,做预测是根据
hθ(x)=g(θTx)
其中
给定训练集 (x,y),感知机学习规则以下面方式更新。如果 hθ(x)=y,那么对参数不作更改。不然执行以下更新:
θ:=θ+yx
下面定理给了感知机算法的在线学习错误一个上界。注意下面给的上界,并不明显依赖于序列的例子个数 m 或者输入的维度 n。
定理:给定序列 (x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)),假设对所有的 i,都有 ||x(i)||≤D,且有一个单位长度向量 u(||u||2=1),使得 y(i)(uTx(i))≥γ(例如,当 y(i)=1 时,uTx(i)≥γ,当 y(i)=-1 时,uTx(i)≤-γ,所以,是 u 以至少 γ 的间隔把数据分开)。感知机在序列上犯错的总数至多是 (D/γ)2。
证明:感知机只是在它犯错时才更新权重,令 θ(k) 表示犯第 k 个错误时的权重,θ(1)=0(权重初始化为 0),如果第 k 个错误时在例子 (x(i),y(i)) 上,那么 g((x(i))Tθ(k))≠y(i),所以
(x(i))Tθ(k)y(i)≤0
从感知机学习规则,有 θ(k+1)=θ(k)+y(i)x(i)。
然后可得
通过推导,可得
(θ(k=1))Tu≥kγ
同样可得到
同样应用归纳法
||θ(k+1)||2≤kD2
联合式子,可得
第二个式子的依据是,u 是个单位长度的向量,zTu=||z||·||u||cosΦ≤||z||·||u||,其中 Φ 是 z 和 u 的角度。
结果显示 k≤(D/γ)2,所以感知机的第 k 个错误, k≤(D/γ)2。
参考资料:
1、http://cs229.stanford.edu/notes/cs229-notes6.pdf