『机器学习』机器学习验证集为什么不再有新意?


机器学习中 , 一般将样本数据分成独立的三部分:训练集、验证集和测试集 。
其中验证集在机器学习中所起到的作用是:开发模型总需要调节模型的参数 , 而整个调节过程需要在验证集数据上运行训练的模型 , 从而给出其表现的反馈信号来修改网络模型及参数 。
然而在对样本数据的划分上 , 往往受限于一些过时的规则以及思维定式的限制 , 在划分验证集以及解决验证集目前存在的一些问题上 , 面临着比较大的阻碍 。
数据科学家 Ray Heberer 专门撰写了一篇文章来介绍验证集目前存在的一些问题 , 并表达了自己的看法:验证集如今变得不再有新意 。
对此 , 他提出用心理模型来改善验证集当前的困局 。
正文内容如下:
研究者们入门数据科学世界时 , 意识到的第一件事便是 , 拥有训练和验证机器学习模型的独立数据集 , 至关重要 。 但是要实现这一点 , 很不容易 。 尽管我们对于为何要对数据集进行划分的背后有一个简单的直觉 , 然而深入理解这一困扰这个行业的问题 , 仍存在许多阻碍 。
其中一个阻碍便是坚持使用已过时的“拇指规则”(也叫经验法则) , 例如“ 按 70:30 的比例分割训练集和测试集”(70–30 train-test split)或大数据出现之前的黑暗时代遗留下来的方法 。
另一个阻碍是:我们许多人在学习“除了测试集之外 , 我们还应该有一个独立验证集用于调整超参数”的过程中都会遇到一个问题:如果我们仅通过调整超参数就会导致测试集过拟合 , 那么就不会导致验证集过拟合吗?然而针对这一问题 , 研究者们还没有找到一个好的答案 。
对于该问题的回答当然是肯定的 。 这会导致验证集过拟合 , 并且这已经不是新鲜事了 。 这里本文我尝试探索一些方法来思考为什么会发生这种情况 , 并希望通过这样做 , 还能开辟出一条更深入地理解过拟合和数据划分的道路 , 而不仅仅是讨论上面这两个人们为准备面试而需要了解的命题陈述 。
本文首先将探讨损失曲面(Loss Landscapes)的概念 , 以及如何利用样本曲面与总体曲面之间的关系理解验证集泄漏 。 在此过程中 , 将基于一些简化的假设来开发有用的心理模型(Mental Model ) 。 最后 , 将通过一个快速的实验来验证我们的理解 。
让我们开始吧!
一、损失曲面
『机器学习』机器学习验证集为什么不再有新意?
本文插图
双变量函数(GitHub代码地址:https://gist.github.com/rayheberer/bd2d94443e77b9734d52a7a4c736bbf3)
如果你熟悉机器学习 , 尤其是研究过神经网络和梯度下降算法 , 以及阅读过下面这篇关于梯度优化算法的(文中有丰富的可视化图片和动画)文章 , 那么你对损失曲面概念一定不陌生 。

  • 文章地址:https://ruder.io/optimizing-gradient-descent/#visualizationofalgorithms
具体而言 , 损失曲面就是将机器学习模型的损失或误差作为其参数的函数 。
如果你觉得这个概念过于简单而不必特别关注 , 我十分能理解 。 尽管你已经理解了相关基本概念 , 但“损失曲面”实际上是这类函数的名称 , 知道它后你可以轻松查阅各种有趣的内容和相关研究 。
  • 相关阅读参考:https://arxiv.org/abs/1712.09913

『机器学习』机器学习验证集为什么不再有新意?
本文插图
“曲面”一词唤起了我们的物理直觉 。 照片由 Fabrizio Conti 在 Unsplash 上提供
损失曲面是可以通过梯度下降或其他方法(例如模拟退火、演化方法)进行遍历的函数 。 即使你要处理的函数通常位于高维空间中 ,这样命名让我们不由得根据物理直觉来思考它 。
尽管我们通常将损失曲面视为模型参数函数 , 但也可将它们视为超参数函数 。


推荐阅读