机器学习的“风险最小化原理” 中, “风险”是指预测函数的预测结果与标记数据的结果之间的平均误差。
如果我们假设(超参数)在一组函数(函数类)F中, 寻找一个“效果最好的函数f”.
显然, 我们想要的是“泛化效果最好”, 也就是该函数对按概率分布的所有采样(无限的)误差最小。
一个显而易见的想法是, 把F中所有函数都应用于样本数据, 找出误差最小的那一个f。
这就是 “经验最小化原理”。
然而这里有个问题, 寻找到的这个函数有可能过拟合训练用的样本数据。所以我们需要用专门的测试数据来评价误差。
另外, 我们想要确认, 当我们有越来越多的数据(趋于无限),这个算法能得到最佳的泛化误差。
最后获得的预测函数, 泛化误差有两个部分组成:
一是函数类F不能捕获的那一部分特性, 这种情况, 最好的情况就是f根据出现的频率直接瞎猜,
这个缺陷是我们选择函数类F的时候就确定了, 无法通过训练来改善。
二是在F根据训练样本数据, 找到了过拟合的函数, 反而没有找到“泛化最佳”的函数, 这种情况应该尽量避免。
我们需要理论上确保可以找到F中最佳的函数。
理论证明, 当F是有限数量的时候, 当训练样本趋近无穷的时候, 有接近1 (100%)的概率找到最佳的函数。
那么对于函数数量无限的函数类F呢。 假如F中的各个函数, 我们可以通过一些参数来区分f<a,b,c, ..>, 那么利用这些参数,
函数可能记住训练样本, 这样会导致过拟合。 所以, 我们需要区分函数f到底是发现了数据的规律而降低了误差,
还是仅仅因为它记住了训练样本而减小了误差, 只有前一种才是我们想要的, 后一种将反而导致我们无法找到真正的误差最小的函数。 所以我们需要评估这个部分的误差, 并且把这部分还原出来后, 误差最小的那个函数。
这就是“结构化风险最小化原理”。
结构风险最小化原理, 从理论上证明这种直观的方法是否真能找到最佳的预测函数。