【Hinton实验室探访】Capsule后最新研究,用软决策树更好理解DNN分类

简介: 《纽约时报》今日发文,记者走访Hinton在多伦多的实验室,为我们带来Hinton新作“Capsule Network”的更多信息。同时,新智元注意到Hinton和Capsule Network作者之一的Nicholas Frosst最近新发表了论文,使用训练好的神经网络创建一种软决策树(soft decision tree),以此更好地理解神经网络如何做出分类决策。

2012年,Geoffrey Hinton改变了机器“看”世界的方式。

Hinton和他的两名学生Alex Krizhevsky和Ilya Sutskever一起,发表论文《ImageNet Classification with Deep Convolutional Neural Networks》,提出了深度卷积神经网络模型AlexNet,在当年的ImageNet大规模图像识别竞赛中获得冠军,将Top-1和Top-5误差分别降到了37.5%和17.0%,比此前的技术要好很多很多。后来Hinton加入谷歌大脑,AlexNet成为图像识别中最经典的模型之一,在产业界也得到普遍应用。

用Capsule Network克服传统CNN缺陷,让机器拥有人类的3D视觉

2017年,Hinton跟他在谷歌大脑两个同事Sara Sabour和Nicholas Frosst一起,发表了《Dynamic Routing Between Capsules》,提出新的神经网络模型Capsule Network(胶囊网络),在特定任务上比传统的卷积神经网络取得了更好的效果。

虽然Capsule Network还有种种有待提高之处,但正如“Hands-On Machine Learning with Scikit-Learn and TensorFlow”一书作者Aurélien Géron分析的那样,“胶囊网络已经达到对MNIST数据集的最佳精度。在CIFAR10数据集上的表现还可以继续提升,也是很值得期待的。胶囊网络需要较少的训练数据。它提供等变映射,这意味着位置和姿态信息得以保存。这在图像分割和目标检测领域是非常有前景的。此外,路由协议算法对于处理拥挤的场景具有很好的效果。路由树还映射目标的部分的层次结构,因此每个部分都分配给一个整体。它对旋转、平移和其他仿射变换有很强的健壮性。激活向可解释性也比较好。最后,这是Hinton大神的idea,前瞻性是毋庸置疑的。”

今天《纽约时报》发表了一篇文章,NYT记者走访了Hinton在多伦多的实验室,采访了Hinton和《Dynamic Routing Between Capsules》论文的一作Sara Sabour,阐释了Hinton对Capsule Network的抱负。

16e18c5189ba6e1825d14a70d7771c61b77d4e81

你能把图中两个模型组合成一个金字塔吗?看上去简单的任务,大多数人都做不到。来源:NYT

传统的神经网络,训练好可以识别一个马克杯,但当这个马克杯稍有倾斜就识别不出了。这是传统CNN的缺点。而Hinton想要用Capsule Network实现人类的3D视觉。NYT的记者在报道中描述了这样一件事,看上图中Hinton和Sabour手中分别拿着的石膏模型。这两个石膏模型实际上能够组合成一个金字塔,听上去很简单的事情,但是很多人都做不到,包括这位记者,也包括MIT两位已经取得终身教职的教授——一位拒绝尝试,一位坚称用这两个模型无法组成一个金字塔。

Hinton解释,这是因为人类在看东西时,将整个物体视为一个三维整体,而这两个模型恰好用一种不常见的方式将金字塔拆分,因此大多数人难以完成。

Hinton想要让Capslue Network让机器拥有人类一样的3D视觉,不管马克杯如何放置,上下颠倒也好,左右倾斜也罢,同一个网络都能识别。

将神经网络“蒸馏”为软决策树,更好理解神经网络分类决策

除了克服传统神经网络的缺点,Hinton也一直致力于理解深度神经网络。

日前,第16届意大利人工智能学会年会(AI*IA)召开。AI*IA 2017同期举行了一个题为“AI和ML可理解性和可解释性”的研讨会(Comprehensibility and Explanation in AI and ML,CEX workshop)。顾名思义,CEX研讨会关注人工智能和机器学习系统的“可理解性”(comprehensibility)和“可解释性”(explanation),提交的工作从理论和应用的角度,致力于更好地理解智能、智能系统以及人机交互时如何考虑这些维度。研讨会上讨论的工作包括如何形式化定义智能系统的可理解性,如何从心理学的角度评估系统的可理解性,以及如何设计和构建更好的可解释的AI和ML系统。

2894aa9055f3d936c9fb45662f461fa7664503e8

在这个研讨会上,Hinton和他谷歌大脑的同事Nicholas Frosst合著并提交了一篇论文“Distilling a Neural Network Into a Soft Decision Tree”。Nicholas Frosst也正是Capslue Network的另一位作者。

f7ac99b5cd2327e371ed71a1d468bc8ea5177ea2

摘要

深度神经网络已被证明是执行分类任务一种非常有效的方法。当输入是高维数据、输入与输出间关系复杂,且有大量标注训练样本时,深度神经网络的性能极其优异。但是,由于网络依赖分布式分层表示,很难解释为什么学习网络对特定的测试用例做出特定的分类决定。如果我们能将神经网络获得的知识用一个依赖层次化决策的模型来表达,那么解释神经网络的某个特定的决定就容易多了。我们描述了一种使用训练好的神经网络创建一种软决策树(soft decision tree)的方法,这种决策树相比从训练数据中直接学习的网络能够更好地泛化。

深度神经网络优秀的泛化能力取决于隐藏层中使用的分布式表示,但这些表示很难理解。我们能够理解是什么激活了第一个隐藏层的单元,也可以理解最后一个隐藏层的激活单元产生的效果,但对于其他隐藏层,理解某个特征被激活的原因就要困难得多。

不仅如此,隐藏层中的单元将输入向量的表示分解为一组特征激活,这一组激活综合在一起的效果在下一个隐藏层中得到分布式的表示。因此,每个特征激活的边际效应都受同一层中所有其他单元的影响,很难单独去理解某个特定的特征激活的作用。

我们知道,深度神经网络通过对训练数据的输入和输出之间关系中大量的弱统计规律进行建模来做出可靠的决定,但神经网络中并没有任何东西可以区分这些弱规律。因此,试图通过理解单个的隐藏单元来理解深度神经网络如何做出分类决定,显然是不明智的。

相比之下,决策树如何做分类就很好理解,因为每个决策序列相对较短,而且每个决策都直接基于输入数据。但是,决策树往往无法像神经网络那样泛化。与神经网络中的隐藏单元不同,决策树中较低级的节点仅被一小部分训练数据使用,因此决策树较低的部分容易过拟合,除非训练集的大小与树的深度相比要大很多很多。

于是,在本文中,作者在可泛化和可解释性之间取得了一个平衡。他们没有试图去了解深度神经网络如何做出决定,而是使用深度神经网络训练了一个决策树,让这个决策树去模仿神经网络发现的输入输出函数,但是工作方式完全不同。现在他们已经得到一个模型,这个模型做出的决策是可解释的。

4e27b6e4af1b1c627d242525c98a51b7a49d99ff

软决策树如何进行分类:MNIST上训练的深度为4的软决策树的可视化图。内部节点处的图像是已学习的过滤器,而叶子处的图像是对已学习的类别概率分布的可视化。每片叶子最终最可能的分类,以及每个边缘的可能分类都被注释了。以最右边的内部节点为例,可以看到,在树的层级上,潜在的分类只有3或8,因此,学习的过滤器只是简单地学会区分这两个数字。其结果是一个查找连接3的末端的两个区域的过滤器,输出一个8。

284ce06ea3f2dc2bfaa494ed03b740a9920548c3

这是在Connect4数据集上训练的软决策树的前两层的可视化。通过检查学习过滤器,我们可以看到游戏可以分为两个不同的子类型——玩家将棋子放在棋盘的边缘,以及玩家将棋子放置在棋盘中央。

这项工作的主要动机是建立一个行为易于解释的模型;目的是充分理解为什么给一个特定的样本一个特定的分类,可以简单地检查沿着根和分类的叶节点之间的路径所学习的所有过滤器。这个模型的关键在于它不依赖分层特征(hierarchical feature),而是依赖分层决策(hierarchical decision)。传统的神经网络的分层特征使其能够学习输入空间的表示,但是通过一个或两个单独的层后,他们就变得非常难以处理。

作者在论文中写道,“目前有关神经网络解释的一些尝试依赖于使用梯度下降来找到正好是激活某个给定神经元的输入,但结果是一个输入流形的一个单节点,这意味着其他输入可以产生相同的神经模型兴奋,所以它并不能反映整个流形。 Ribeiro et al. 提出了一种策略,依赖一些可解释的模型,这个模型“对可解释成分的缺失/存在起作用”,是围绕输入空间中某个感兴趣区域的深度神经网络的行为。这是通过从输入空间抽样并查找感兴趣区域周围的模型,然后将可解释的模型拟合到模型的输出来完成的。这样就避免了通过在流形上单个点的可视化来解释特定输出的问题,但是却引入了输入空间中的每个感兴趣区域需要新的可解释模型的问题,并试图通过对输入空间进行离散化解释的一阶变化来解释模型行为的变化。通过依赖分层决策而不是分层特征,我们避开了这些问题,因为每个决策都是在读者可以直接参与的抽象层次上进行的。”

在描述方法时,作者介绍说,如果有大量未标记的数据,可以使用神经网络创建一个更大的标记数据集来训练决策树,从而克服决策树的统计效率低的问题。如果没有可用的未标记的数据,也可以利用生成建模方面的最新进展(比如GAN),从一个类似的数据分布中生成未标记的数据。不仅如此,即使不使用未标记的数据,通过“蒸馏技术”(Distillation)[Hinton等,2015,Bucilua等,2006]和一种特殊的决策树(能够做出软决策),他们也能将神经网络的泛化能力转移到决策树上。

Hinton说,历史将会重现

Hinton的最新工作如何?让我们引用NYT的报道。

Hinton认为Capsule网络最终将超越视觉,推广到更广阔的应用场景,包括会话式计算。NYT的报道中写道,Hinton当然明白很多人对Capsule网络存疑,但他指出,这个情况就像5年前很多人对神经网络存疑一样。“历史将会重现,”Hinton说:“我觉得。”


原文发布时间为:2017-11-29

本文作者:闻菲、刘小芹

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:【Hinton实验室探访】Capsule后最新研究,用软决策树更好理解DNN分类

相关文章
|
机器学习/深度学习 计算机视觉 Python
来自OpenCv的DNN模块助力图像分类任务
来自OpenCv的DNN模块助力图像分类任务
183 0
来自OpenCv的DNN模块助力图像分类任务
|
机器学习/深度学习 算法
DL之LiR&DNN&CNN:利用LiR、DNN、CNN算法对MNIST手写数字图片(csv)识别数据集实现(10)分类预测
DL之LiR&DNN&CNN:利用LiR、DNN、CNN算法对MNIST手写数字图片(csv)识别数据集实现(10)分类预测
DL之LiR&DNN&CNN:利用LiR、DNN、CNN算法对MNIST手写数字图片(csv)识别数据集实现(10)分类预测
|
机器学习/深度学习 算法框架/工具
Keras之DNN:利用DNN【Input(8)→(12+8)(relu)→O(sigmoid)】模型实现预测新数据(利用糖尿病数据集的八个特征进行二分类预测
Keras之DNN:利用DNN【Input(8)→(12+8)(relu)→O(sigmoid)】模型实现预测新数据(利用糖尿病数据集的八个特征进行二分类预测
Keras之DNN:利用DNN【Input(8)→(12+8)(relu)→O(sigmoid)】模型实现预测新数据(利用糖尿病数据集的八个特征进行二分类预测
|
机器学习/深度学习 算法框架/工具
Keras之DNN:基于Keras(sigmoid+linear+mse+predict)利用DNN实现回归预测——DIY多分类数据集&预测新数据点
Keras之DNN:基于Keras(sigmoid+linear+mse+predict)利用DNN实现回归预测——DIY多分类数据集&预测新数据点
Keras之DNN:基于Keras(sigmoid+linear+mse+predict)利用DNN实现回归预测——DIY多分类数据集&预测新数据点
|
机器学习/深度学习 数据挖掘 算法框架/工具
Keras之DNN:基于Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN实现分类预测概率——DIY二分类数据集&预测新数据点
Keras之DNN:基于Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN实现分类预测概率——DIY二分类数据集&预测新数据点
Keras之DNN:基于Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN实现分类预测概率——DIY二分类数据集&预测新数据点
|
机器学习/深度学习 数据挖掘 算法框架/工具
Keras之DNN::基于Keras(sigmoid+binary_crossentropy+predict_classes)利用DNN实现二分类——DIY二分类数据集&预测新数据点
Keras之DNN::基于Keras(sigmoid+binary_crossentropy+predict_classes)利用DNN实现二分类——DIY二分类数据集&预测新数据点
Keras之DNN::基于Keras(sigmoid+binary_crossentropy+predict_classes)利用DNN实现二分类——DIY二分类数据集&预测新数据点
|
机器学习/深度学习 TensorFlow 算法框架/工具
基于tensorflow+DNN的MNIST数据集手写数字分类
2018年9月17日笔记 tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流。 DNN是deep neural network的简称,中文叫做深层神经网络,有时也叫做多层感知机(Multi-Layer perceptron,MLP)。
1513 0
|
机器学习/深度学习 算法 PyTorch
OpenCV-图像着色(采用DNN模块导入深度学习模型)
OpenCV-图像着色(采用DNN模块导入深度学习模型)
177 0
|
XML 机器学习/深度学习 数据格式
DNN Navisuite菜单模块原始XML文件的格式
DNN 比较好用的一个菜单模块式Navsuite模块,这个模块因为使用XML+XSL的技术手段,可以灵活的生成各种各样的菜单样式。 你可以通过修改style目录下的xsl文件来创建自己的菜单样式,但有一个问题是这个模块没有非常详细的手册,生成的XML是什么格式我们并不熟悉,我这里把生成的XML贴出来给大家参考。
818 0