公开课 | 机器学习基石06 Theory of Generalization
来源:互联网 发布:2016最流行的编程语言 编辑:程序博客网 时间:2024/06/05 09:10
本篇介绍 Theory of Generalization(举一反三),通过求解成长函数 m_H(N) 的上界,得到 VC Bound。从而彻底解释机器学习的可行性。
前篇介绍了成长函数 m_H(N),m_H(N) 与 H 和 N 均有关系。求解 m_H(N) 本身比较困难。 可以转而求其次,求解 m_H(N) 的上界。求解之前,优先介绍 Break Point 和 Shatter 的概念。
Break Point 的定义:
梳理一下:
1. h(x) ∈ (o, x) => 指定一个 h,作用于x,会产生唯一的 o 或 x。
2. h(x1,x2,...,xn) ∈ (o, x)^N => 指定一个 h,作用于一个数据集(x1,x2,...,xn, size=n)) 会产生唯一的 o 或 x 向量(称为一个dichotomy)。
3. H(x1,x2,..., xn) ∈ (o, x)^N => 指定一个数据集(x1,x2,...,xn, size=n),H 中的所有 hypothesis 作用于这个数据集,会产生一堆 dichotomies(dichotomy集合)。我们更关心的是 |H(x1,x2,..., xn)|。
那么如果一个指定数据集(x1,x2,...,xn, size=n),如果 |H(x1,x2,...,xn)| = 2^n,则称为该数据集 D 可以被 H Shatter(打碎)。
Break Point of H 成为求解 m_H(N) 上界(Bound) 的关键。假定 H 的 Break Point = k, 去考察 m_H(N) 的上界(Bound)。
即:max m_H(N) when Break Point = k, 可以采用动态规划的思路求解。
先看简单情形,N=3, k=2, m_H(N) 的 Bound。采用试探法。
试探可知 m_H(N) <= 4(其中 N=3, k=2) 。
计算 m_H(N) 的一个思路:
定义:Bounding function B(N, k) = maximum possible m_H(N) when break point = k
截止目前,可以得出:
目前结论:
1. B(N, k)=2^N for N < k。
2. B(N, k)=2^N -1 for N = k。任意 k 个点都不能被 shatter。
计算 B(4, 3)
通过枚举,可以得出 B(4, 3) = 11。
重组:
推导:
继续填表格:
理论证明:
数学上可以进一步证明(二项式定理):
最终达成我们的设想,m_H(N) ≤ B(N, k) ≤ poly(N)。可以验证一下:
1. positive rays: k = 2,则 m_H(N) = O(N^1)
2. positive intervals: k = 3, 则 m_H(N) = O(N^2)
3. 2D perceptrons: k = 4, 则 m_H(N) = O(N^3)
先抛出结论: BAD Bound of General H (Bound 与 H 无关)
图解证明分为三步:
Step 1. Replace Eout by E'in
Eout(h) 是无限的,可以做 Sample,来估算 Eout(h)。那么:
简单说明下,如上图所示,E'in 和 Ein 都是在 Eout 附近浮动。|Ein - E'in| = |Ein - Eout + Eout - E'in| <=|Ein - Eout| + |E'in-Eout| <= 2· max{|Ein - Eout|, |E'in-Eout| }
Step 2. Decompse H by Kind
这一步不难理解。
Step 3. Use Hoffding without Replacement
理解为一个大小 2N 的罐子,应用一次 Hoffding 不等式。
最终得到 VC Bound:
小结
本篇彻底证明不管 H 是啥,只要 H 存在 Break Point 的话,也不管什么学习算法 A,坏事情发生的概率都很小(N很大,i.i.d情况下),即机器学习是可行的(比如 2D Perceptrons 就是可行的)。
转自:机器学习小蜜蜂
阅读伙伴公众号更多精彩内容,点击 “ 阅读原文 ”