ICLR 2017会议于法国土伦召开,我们收到了截止日期内提交的论文,与预期的关于深度学习新研究的涓涓细流不同,我们迎来了一场凶猛的洪水。这是一个研究领域的宝库,每时每刻都有新的文章发表。许多论文都对如今最前沿的技术做出了进一步的完善。我本希望能够找到一些更基本的关于深度学习本质的理论和实验成果,但是很遗憾的是,这样的论文寥寥无几。尽管如此,仍有两个研究令人眼前一亮,此外,还有一篇论文值得关注,我曾一度怀疑这篇论文,但最终还是接受了它那难以置信的结果。这确实是一个好消息,但也是一个不好的开始。
首先,让我们来讨论下好消息。这个难以置信的发现是,你可以训练一个神经网络,让它学会如何学习(即元学习)。具体来说,已经有一些研究团队训练出了能够执行随机梯度下降(SGD)的神经网络。不仅这些研究团队可以证明他们的神经网络能够学习SGD,而且这种网络的效果比任何人工调试的方法都要好。这两篇发表的文章分别是《Deep Reinforcement Learning for Accelerating the Convergence Rate》和《Optimization as a Model for Few-Shot Learning》。可惜的是,在这之前,这两个研究团队被Deep Mind抢先一步,其论文《Learning to Learn by gradient descent by gradient descent》介绍了这种做法。后两篇论文均训练了一个长短期记忆网络(LSTM),而第一篇论文则通过强化学习的方式进行训练。我本以为实现元学习需要更久的一段时间,但它的发展之快超出了我的预期。
另外两个团队也不甘示弱,实现了能够设计新型深度学习网络的机器,而且通过这种方式,我们可以改进现有的技术。这是在学习如何设计神经网络。两篇发表的论文分别是《Designing Neural Network Architectures using Reinforcement Learning》和《Neural Architecture Search with Reinforcement Learning》。前一篇论文使用了强化Q学习算法来发现卷积神经网络架构。你可以在Caffe中找到一些他们生成的卷积神经网络。而后一篇论文才是真正令人震惊的(没有Google的计算资源,你根本做不到这一点)。他们不仅展示了最新的卷积神经网络,而且这种机器实际上学习了一些LSTM节点的变种。由机器创建的LSTM节点如下所示(左图和下图):
所以,不仅手工优化梯度下降方法的研究人员失业了,那些依靠设计神经网络来谋生的人们也难逃一劫!实际上这仅仅是能够自学习的深度学习系统的开始。所以,在这里我要分享一幅施米德胡贝的漫画,它恰当地描述了正在发生的事情。
这绝对是令人震惊的,而且我们对深度学习算法能发展得多快一无所知。这种元特性允许你将其应用至自身,递归地创建出越来越优秀的系统。
现在,请允许我告诉你那个坏消息。这里有一篇论文传达了这个消息:《Understanding Deep Learning required Rethinking Generalization》。我对泛化思考了很多,也在Quora上提了一些关于泛化和随机性的问题,希望有人可以分享一下他们对此的见解。然而,直到上述论文的作者进行了一系列有趣的实验之前,没有人给出一份令我满意的答案或理解这个问题的重要性。以下是他们论文中的一部分发现:
1.神经网络的有效容量是足够大的,甚至足够使用暴力记忆的方式记录整个数据集。
2.即便使用随机标签,进行优化仍然是很容易的。实际上,与使用真实标签进行训练相比,随机标签的训练时间仅仅增长了一个小的常数因子。
3.标签随机化仅仅是一种数据转换,学习问题的其他性质仍保持不变。
那个令人震惊的真相显现出来了。深度学习网络仅仅是大规模的关联记忆存储。深度学习网络即使在拟合随机数据时,仍能保持良好的泛化能力。这确实很奇怪,许多支撑神经网络有效性的依据都建立在这样一个猜想之上:“自然”数据往往存在于多维空间中一个非常窄的流形中。然而,随机数据并不具备这样的趋势。
在今年早些时候,John Hopcroft写了一篇论文,检验神经网络与关联记忆间的二元性。下面是他论文中的一幅插图:
《Understanding Deep Learning required Rethinking Generalization》这篇论文甚至进一步检验了我们行之有效且久经考验的泛化工具(即正则化),并发现:
显式正则化或许能提高泛化性能,但这既不必要也不足以控制泛化误差。
换句话说,我们所有的正则化工具可能并没有我们想象中那么有效!而且,更难以置信的是,SGD那不可思议的效果,实际上只是另一种碰巧有效的正则化方法!
参照线性模型,我们分析了SGD如何进行隐式的正则化。
事实上,另一个团队在提交至ICLR2017的名为《An Empirical Analysis of Deep Network Loss Surfaces》的论文中,确认了这些网络的局部极小值是不同的:
我们的实验表明,不同的最优化方法会找到不同的极小值,即使在训练过程中非常靠后的阶段,从一种方法切换至另一种方法,也同样如此。此外,我们发现,不同最优化方法找到的极小值具有不同的形状,但这些极小值在最重要的度量——泛化精度上是相似的。
这表明,你对学习算法的选择“操纵”着算法如何得出最终结果。随机性是无所不在的,无论你如何规范自己的网络或者使用何种SGD变种算法,网络都会趋近于收敛(如果你设置了正确的随机条件)!SGD的什么性质使机器具备了学习的能力?是同分化关联的属性还是其他更一般的属性?如果我们可以让一个网络学会执行SGD,那么我们能够教会它执行这种未知的广义学习方法吗?
实际上,在今年早些时候论文《A Powerful Generative Model Using Random Weights for the Deep Image Representation》证明了这种随机性的有效性。这篇论文也是由John Hopcroft合著,表明你可以使用随机初始化的未经任何训练的网络生成逼真的图像。这怎么可能呢?
因此,要理解深度学习,我们必须拥抱随机性。随机性起源于最大熵,而最大熵最有趣的是它的自身结构!神经网络的存储容量似乎最接近于随机权重。这里很奇怪的是,宇宙中随机性无处不在。熵值更大的方向反映了时间流向。那么,如果这个性质也是学习机器的基础,那又会发生什么呢?
联系客服