1.首先我们一直说,训练集,通过训练数据得出模型。测试集验证模型的准确率。但是为什么要这样做呢?
答:数学上有一个不等式叫做霍夫丁不等式(Hoeffding’s Inequality),这个不等式:
当N足够大的时候,v和u相等的概率很大,意思就是如果我从一大堆数据中,取一部分数据做训练。如果这个训练得到的模型的误差很小,那么这个模型在这一大堆数据中的误差也很小。所以我们才会采取一部分训练,取拟合整个数据集。
2.但是如果我们的数据集有问题的?训练的时候最好的,测试最差?
答:假设我们的假设只有M个,也就是从M个模型中挑选最好的。那么这个M个模型在训练集的结果应该和测试集一样。意思就是你训练的结果不好,测试也不好。说明数据集是好的。如果你训练的好,测试的不好。那么你的数据集就有问题。
所以机器学习的流程就变成两部了
1.使用M个模型对数据集测试
2.M个模型中损失最小的就是target了
、
如果M是有限的,数据量N足够大,对于A选择的所有g,都有Eout(g)=Ein(g);如果A找到了一个g且Ein(g)≈0时,PAC保证了Eout(g)≈0,这时候我们就说学习是可行的。新的问题又出现了,当M无限大的时候(就像在PLA里有无数条线一样),那么我们应该怎么办呢?请听下回讲解。
参考: