Distilling a Nerual Network Into a Soft Decision Tree 翻译
下面是我对《Distilling a Nerual Network Into a Soft Decision Tree》的简单翻译
Abstract
深度神经网络在分类任务上有很出色的表现,但是却非常难解释其对一个具体的测例做出分类的原因。这是因为他们非常依赖于分布式的分层表示。如果我们将从神经网络中获取到的知识用一个依赖于分层决定的模型来进行表示,解释一个具体的决定会变得更加容易。我们提出了一种使用训练好的神经网络来创建一种软决策树的方法,其比直接从训练数据中学到的模型泛化的更好。
Introdcution
深度神经网络优秀的泛化能力取决于它们隐藏层中的分布式表示,但是这种表示非常难被理解。对于第一个隐藏层,我们可以理解使一个神经元激活的原因;对最后一个隐藏层,我们可以理解激活一个神经元的效果;但是对于其他隐藏层,我们很难从有意义的变量的角度,如输入变量和输出变量,来理解特征激活的原因和影响。而且,隐藏层中的神经元将输入的向量分解为一组特征激活,通过这样的方式这些激活特征的组合效果可以在下一个隐藏层中产生一种合适的分布式表示。这使得很难单独地理解任何特定的特征激活的效果,因为其边际效应取决于同一隐藏层中的所有其他神经元的效果。
深度神经网络可以通过模拟训练数据中输入和输出之间的大量弱统计规律来做出可靠的决定,并且神经网络中没有任何东西可以区分数据集中真实的弱规律性和训练集采样特性导致的虚假规律性,这进一步加剧了上述的困难。面对这些困难,放弃通过理解单个隐藏单元的行为来理解深度神经网络是如果做分类决策的想法看起来是明智。
相比之下,决策树是如何进行任何特定的分类是很容易进行解释的,因为每个分类取决于一个相对较短的决策序列,并且每个决策都是直接基于输入数据的。但是,决策树通常并没有深度神经网络泛化的好。不同于神经网络中的隐藏神经元,决策树中一个特定的低层节点只被非常少的训练数据使用。因此,除非训练集的大小和树的深度相比呈指数增长,否则决策树的底层部分会趋于过拟合。
在这篇文章中,我们提出了一种解决泛化性和可解释性之间矛盾的新方法。不同于尝试去理解一个深度神经网络是如何做出决策的,我们使用深度神经网络来训练一个决策树,其模仿神经网络发现的输入-输出函数,但以一种完全不同的方式工作。如果有非常多的无标记数据,则可以使用神经网络创建更大的标记数据集来训练决策树,从而克服决策树统计效率低下的问题。即使没有无标记数据,也可以使用最近先进的生成模型从一个接近于数据分布的分布中来生成合成的无标记数据。即使不适用无标记数据,也仍然可能使用一种叫分馏(distillation)的技术和一种做软决策的决策树来将神级网络中的泛化性转移到决策树中。
在测试时,我们使用了决策树作为模型。这可能会比神经网络表现的差一些,但是决策树会更快,并且我们有了一个可以解释并直接参与决策的模型。我们从描述我们所使用的特定类型的决策树开始。这个选择是为了便于将深度神经网络获取的知识轻松地提取到决策树中。