转载

【译文】Little Explanations #1 -神经网络与模型压缩

本文为数盟原创译文,转载时请务必注明出处为“数盟社区”,并将原文链接置于文首。

作者:V. Alexander Saulys

前言:这是我对Singular Distillations的技术解释部分的全部内容。我将每年出版一次我对一些论文的解读。我相信,有些是相当复杂的,其他的则需要简单解释。我会将那些令我印象深刻文章向所有对它们好奇的人展示出来。

我们最近很少会直接使用模型了。一个简单的最小二乘线性回归就足够,这种日子一去不复返了。甚至连随机森林或adaboost模型也很难满足。相反,在处理困难问题的时候,集合或组合模型将被使用。

这些集合存在一个问题,它们太大。我个人就训练过占用成百上千M空间的集合体,所以我想Google或Facebook使用的更复杂的模型会占用许多G。在训练时,这通常是好的。毕竟大型的集合体可以在性能强大的电脑上训练,但谈到可用性时,更多问题就来了。用户期望即时结果和大型集合体可以同时进行预测。当试图将其缩小至移动设备上运行时很头疼,对性能有了很多约束。

康奈尔大学的Bucila、Caruana和Niculescu-Mizil试图解决这个问题。他们试图把集合体压缩得更小但仍有能力的模型。为此,他们决定利用一个独特的属性。神经网络倾向于与数据过拟合(为什么会这么做我们择日再讨论)。模型压缩利用更小的网络与结果更大的模型过拟合来进行。

要做到这一点,我们假设我们有一个非常庞大而复杂的小模型。假设其因太大而不适用于日常研究。我们可以将较小的网络与这个更大的模型过拟合。这很简单,但可能没有足够的容器来充分过拟合这个模型。为了弥补,我们需要生成合成数据。

合成数据由几个不同的方式形成。论文本身就包含了几个例子,欢迎阅读,但他们提到的一个重要关键词是Munge。Munge生成新的数据采样与给定的概率分布。这用于连续数据。更多分类数据,利用现有的过度拟合训练数据集和压缩较小的模型已经足够。

这些数据经过训练后,模型的预测也被使用。重要的是不要使用实际的目标值,这将会导致从头训练模型。通过训练预测值,较小的模型将会过拟合大模型的预测,从而压缩它。

这最终会形成100000 x的压缩比。我下面演示的是一个小的模型压缩。

https://gist.github.com/valexandersaulys/0fbab2a04ba4d7ddaabc 【可能需要翻墙】

[ 论文 ] → https://www.cs.cornell.edu/~caruana/compression.kdd06.pdf

原文  http://dataunion.org/23361.html
正文到此结束
Loading...