Jaison's ink

Back

当我发现Gemini的回答到达了一字不易的完美度,我甚至有点怀疑我做这些notes解读的意义(其实读者也可以去问Gemini)他除了有时候废话有点多,其他都挺好的。

Online Learning and the Perceptron Algorithm#

我:这个证明到底在讲什么?可以向我解释一下吗。

当然可以。你提出的这个问题非常好,很多人第一次看到这个证明时都会有同样的疑问。这个证明看起来有点像“数学魔术”,从几个不等式里变出了一个结论。

我们来一步步拆解,搞清楚它到底在证明什么,以及是怎么证明的。

一句话解释这个定理在证明什么#

这个定理在证明一个非常重要的结论:

对于一个“足够好”的数据集,感知器学习算法保证是“会收敛的”,也就是说它不会永远犯错下去。它犯错的次数有一个明确的上限,这个上限由数据本身的“好坏”程度决定。

换句话 L 说,它为感知器算法的有效性提供了一个坚实的理论保证。


对这个“保证”的深入解读#

现在我们来理解这个“保证”到底包含了什么,也就是定理的前提条件:

1. “数据集足够好”是什么意思?#

  • 定理里用数学语言描述了这一点:存在一个完美的“标准答案” u(一个超平面),这个超平面不但能把正负样本(y=1 和 y=-1 的点)分开,而且是在两者之间留出了一条“安全通道”或“隔离带”(margin)。
  • 这个“隔离带”的宽度由 γ (gamma) 决定。γ 越大,说明正负样本分得越开,数据就越“好”,问题就越“简单”。
  • ||x^(i)|| ≤ D 的意思是所有的数据点都位于一个半径为 D 的大球里,数据不是无限分散的。D 越小,数据点越集中,问题也相对“简单”。

2. “犯错次数有上限”是什么意思?#

  • 算法每遇到一个它分类错误的样本,就会更新一次权重 θ,我们把这称为“犯了一次错”。
  • 这个定理证明了,总共犯错的次数 k 不会超过 (D/γ)²
  • 这意味着:
    • 算法一定会停止:只要数据满足前提,算法就不会无限循环下去。
    • 算法的收敛速度是可预测的:如果 γ 很大(数据分得很开)且 D 很小(数据很集中),那么 (D/γ)² 这个上限就很小,算法会很快收敛(犯很少的错就学会了)。反之,如果 γ 很小(数据贴得很近),算法可能需要犯更多的错才能找到答案。

这个证明的巧妙之处(核心思想)#

这个证明的核心思想是 “从两个不同的角度来约束权重向量 θ 的变化,最终找到一个矛盾点,从而推导出 k 的上限”

我们把权重向量 θ 想象成算法在学习过程中调整的“方向标”。证明过程追踪了两个关于这个“方向标”的指标:

角度一:θ 和“标准答案” u 的对齐程度#

  • 我们用 (θ^(k+1))^T u 来衡量 θ 在“标准答案” u 方向上的投影长度。你可以把它理解成 θ 和 u 的“对齐程度”或“相似度”。
  • 证明的第一部分 (θ^(k+1))^T u ≥ kγ 告诉我们:

    每犯一次错(k 增加 1),θ 就会朝着正确的方向 u 前进至少 γ 这么一小步。

  • 所以,随着犯错次数 k 的增加,θ 和 u 的对齐程度是线性增长的,而且会一直增长下去。这个值可以无限变大。

角度二:θ 自身的长度#

  • 我们用 ||θ^(k+1)||^2 来衡量 θ 向量自身的长度的平方。
  • 证明的第二部分 ||θ^(k+1)||^2 ≤ kD² 告诉我们:

    θ 的长度虽然也在增长,但增长得没那么快。

  • 具体来说,每次犯错更新时,因为 2y^(i)(x^(i))^Tθ^(k) 这一项是小于等于 0 的(这是犯错的定义),它会“拖慢”θ 长度的增长速度。θ 长度的平方最多是和犯错次数 k 线性增长,这意味着 θ 的长度 ||θ^(k+1)|| 的增长速度大概是 √k 这个级别的。

最后的“对决”#

现在,我们有了两个结论:

  1. θ 在正确方向 u 上的投影长度,至少以 k 的速度飞快增长 (≥ kγ)。
  2. θ 自身的全长,最多以 √k 的速度缓慢增长 (≤ √k D)。

你发现矛盾了吗?

一个向量在某个方向上的投影长度,永远不可能超过它自身的总长度。这就像你在墙上的影子(投影),不可能比你本人(向量自身)还高。

所以,必然有:

投影长度 ≤ 总长度

把我们上面得到的两个结论代入进去:

kγ ≤ (θ^(k+1))^T u ≤ ||θ^(k+RI+1)|| ≤ √k * D

我们就得到了关键的不等式:

kγ ≤ √k * D

对这个不等式两边进行简单的代数运算(两边除以 γ 和 √k,然后平方),就得到了最终的结论:

k ≤ (D/γ)²

这个结论告诉我们,如果犯错次数 k 试图无限增长,那么 就会增长得比 √k * D 快得多,迟早会打破“投影长度不能超过总长度”这个物理规律。为了不出现这个矛盾,k 必须有一个上限,这个上限就是 (D/γ)²

希望这个解释能帮助你理解这个证明的精髓!

CS229 notes6 Online Learning and the Perceptron Algorithm 解读
https://astro-pure.js.org/blog/cs229-notes6-online-learning-and-the-perceptron-algorithm/article
Author Jaison
Published at September 19, 2025
Loading comments…