generalization ability
Posted satyrs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了generalization ability相关的知识,希望对你有一定的参考价值。
为什么能够学习?
机器学习是什么?为什么数学推导很重要?概率的作用是?
能够学习,即能够在sample中找到f,f未知。sample源自f。能找到f吗?找到h使得在sample中的误差和h对不在sample中的数据的误差限制在一定范围内,能够肯定在这个范围内吗?
为什么误差有上界则为能够学习?使用统计来预测就是在统计的概念上,大数之上能够成立的定律。
泛化能力越强则说明预测越强。只通过测试集的结果无法真正说明找到的h预测能力强?泛化误差来描述预测能力,即期望风险。
为什么可以用期望风险来描述预测能力?三个因子,H复杂程度、样本量、容忍度。数据量多则预测能力增强,H(f的各种可能性,f也呈现某分布)复杂度高则学习到的h的预测越弱,容忍度(和方差有关)越高则更容易达到。
H为什么和预测能力有关?即,从H中学习到的h和真实的f之间到底怎样的关系?真实的f在H(也是有各种分布)中吗?其实我们只能得到H中最贴近f的h(而H越复杂,则要求的数据量要上升,类似未知数越多想要得到更确定的结果必须要有更多的方程且线性无关)。
离开H、即不同的H所得到的h有可比性吗?这就是我们为什么有些情况下选择svm有些情况下kmean可能更好。可比吗?若只以测试集的结果来比较,其实是不合理的。那以什么比较呢?我们不能够得到所有sample外的数据,那么到底什么程度上我们可以说sample内的数据够了,可以用来比较不同H下h的结果?理论上对无限的H得到的h预测能力有证明吗? [....]
H和概率的关系?H有限时Hoeffding能证明上界,但也是松上界。
为什么sample重要,因为当v越接近于u(真实),则h预测出来的u也将越接近于对sample之外数据(大数意义上)的v。怎样说这是个好的sample?sample数据独立性?[....]
数学推导是作用在H上,将模型的H设定下,标准设定好。用算法(梯度下降、迭代尺度、cart等)来找到符合数学证明出的条件的h。这里有可否能够找到的问题,NP问题则找不到最优的h。所以本质上是数学,但是联系到现实,涉及算法,通过算法才能够找到,既能够学习到f。否则还是只是理论上证明出的条件。数学推导涉及到概率中的很多定理,建立在概率中大数定律之上的证明。可以说是对大数、统计的应用。
H可以通过限制为符合某分布(贝叶斯),也可以其他方法。而input X必须满足是符合某分布的,这个分布没有限制,未知。这是学习里真正必须使用概率的地方。
1000个coins每个10次则某个coin出现10次heads的概率是63%(至少某个的问题则从反面考虑,1-p,p为没有任何一个出现10次heads(1-(1/2)^10)^1000),这个概率问题对应的学习问题是学得太过了?即当coins个数太多,出现异常的概率非常大。学习中即为H复杂度若以数量表达则为1000,测试集的结果非常好,但却无法反应真实f的概率非常大。即过拟合问题。
bins的例子: 1个bin(input),则为1个hypothesis。Hoeffding证明了可通过sample将泛化误差限制一定范围(意义为sample的v将在€的范围内以一定概率(等式右边)接近真实u)。多个bins,则为机器学习的情况有多个hypothesis,多个hypothesis中某一个使sample结果很好时,该hypothesis的泛化能力可能很不好(如1000coins例子),因为这是Hoeffding不支持,只能有更松的上界,和hypothesis个数有关。但是我们更关心预测能力。所以应限制hypothesis复杂程度。
什么是过拟合,即为什么对training数据拟合很好到testing数据就很差了?假设空间过大,导致虽然使得sample结果很好,经验风险很小,但与期望风险的差异却可能会非常大(正如1000个coins例子),某个10次都为heads的则是学习中的过拟合的那个hypothesis,不能用来作为我们学习的结果,因为和f差异太大。
总结:Hoeffding(大数定律之一)本质表达了我们能够学习,但在H复杂度有限时(无限的情况需要其他大数定理另考虑)。并表达了我们能够以多大程度预测到f,即泛化能力,和H复杂程度、样本量、容忍度有关。有实践意义吗?实践层面,则是对这三个因子的考虑,大小控制在什么范围可以说我们真的学习到了,我们的h是有预测能力的。这当然只是最低要求,因为Hoeffding是上界,特定的h完全可以更好。
[....]为存疑。
以上是关于generalization ability的主要内容,如果未能解决你的问题,请参考以下文章
[Locked] Generalized Abbreviation
python-子集Generalized Abbreviation(广义缩写)