现在(2016年)的深度学习神经网络与我四年前(2012年)学习的神经网络有何不同?


13

Wikipediadeeplearning4j中有人说深度学习NN(DLNN)是具有> 1隐层的NN。

对于我来说,这类NN在大学中是标准的,而DLNN如今非常受炒作。到那儿去了,做完了-有什么大不了的?

我还听说堆叠式NN被认为是深度学习。如何真正定义深度学习?

我的NN背景主要来自大学,而不是工作:

  • 研究了NN在工业中的应用
  • 关于artif的课程大约有5门。英特尔。和马赫。学习。-尽管其中有2个在NN上
  • 使用NN进行小型,简单的图像识别项目-使用3层前馈NN
  • 没有对他们做真正的研究(如在博士论文中)

@NeilSlater:我在2012
。– Make42 '16

Answers:


23

没错,深度NN的基本概念自2012年以来就没有改变。但是对深度NN的训练方式进行了许多改进,使它们在质量上更加强大。今天,还有各种各样的架构可用。我列出了自2012年以来的一些发展,按培训改进和体系结构改进分组:

训练深度神经网络的改进

  • 硬件:最明显的变化只是摩尔定律的必然发展。今天有更多的计算能力可用。云计算还使人们无需购买大型钻机即可轻松训练大型NN。

  • 软件:深度学习的开源软件自2012年以来确实有了很大的改进。早在2012年,就有Theano,也许还有Caffe。我敢肯定还有其他人。但是今天,我们还拥有TensorFlow,Torch,Paddle和CNTK,所有这些都得到了大型科技公司的支持。这与硬件要点密切相关,因为这些平台中的许多平台都使得在GPU上进行训练变得容易,从而大大缩短了训练时间。

  • 激活功能:目前,ReLU激活功能的使用可能更加广泛,这使得对深度网络的训练变得更加容易。在研究方面,正在研究各种各样的激活函数,包括泄漏ReLU参数ReLUmaxout单位

  • 优化算法:今天有更多的优化算法。 AdagradAdadelta分别于2011年和2012年推出。但是我们现在也有了Adam优化器,它已成为非常受欢迎的选择。

  • 辍学:在过去的几年中,辍学已成为训练神经网络时进行正则化的标准工具。Dropout是用于NN的计算廉价的形式。通常,在数据集的随机样本上训练的一组模型将优于在整个数据集上训练的单个模型。对于神经网络来说,这很难做到,因为它们的训练是如此昂贵。但是,只要在每个步骤中随机“关闭”神经元,就可以近似得出类似的效果。NN中的不同子图最终要接受不同数据集的训练,从而学习不同的东西。像集成一样,这倾向于使整个NN更加适合过度拟合。辍学是一种简单的技术,似乎可以在几乎每种情况下提高性能,所以它

  • 批量归一化:一段时间以来,人们都知道神经网络在归一化的数据上训练最好,即均值和单位方差为零。在一个非常深的网络中,当数据通过每一层时,输入将被转换,并且通常将漂移到缺少这种良好的,归一化的属性的分布。这使得在这些更深层次的学习变得更加困难,因为从其角度来看,其输入不具有零均值和单位方差。平均值可能很大,方差可能很小。 批量归一化通过将输入转换为具有零均值和单位方差的图层来解决此问题。这在训练非常深的NN方面似乎非常有效。

  • 理论:直到最近,人们一直认为难以训练深层NN的原因是优化算法陷入了局部最小值,难以摆脱并找到全局最小值。在过去的四年中,许多研究似乎表明这种直觉是错误的(例如,Goodfellow等,2014)。)。在深度NN的高维参数空间中,局部最小值趋向于不比全局最小值差那么多。问题实际上是,在训练时,NN会发现自己处于一个宽阔的高原上。此外,这些高原可能突然在陡峭的悬崖上结束。如果NN采取较小的步骤,则需要很长时间才能学习。但是,如果步幅太大,则在遇到悬崖时会遇到巨大的坡度,这会撤消所有较早的工作。(这可以通过2012年后的另一项创新-渐变修剪来避免。)

新架构

  • 残留网络:研究人员已经能够使用残留网络训练难以置信的深度网络(超过1000层!)。这里的想法是每一层不仅接收来自上一层的输出,而且还接收原始输入。如果训练有素,这会鼓励每一层学习与以前的层不同的东西,以便每个附加层都可以添加信息。

  • 宽和深网络:宽和浅网络倾向于简单地记住其输入和输出之间的映射。深度网络的泛化能力要好得多。通常,您需要良好的概括性,但是在某些情况下(例如推荐系统),没有概括性的简单记忆也很重要。在这些情况下,您希望在用户进行常规查询时提供良好的实质性解决方案,但在用户进行非常具体的查询时提供非常精确的解决方案。 广而深的网络能够很好地完成此任务。

  • 神经图灵机:传统的递归NN(无论是标准RNN还是更复杂的LSTM之类)的缺点是它们的记忆有些“直观”。他们通过保存他们将来产生的隐藏层激活来设法记住过去的输入。但是,有时显式存储一些数据更有意义。(这可能是与记住的数量有大约7位数,有一对夫妇中就有3脂肪酸,也许中间有破折号的地方在一张纸上写下一个电话号码下的区别。)的神经图灵机是尝试解决此问题的一种方法。这个想法是网络可以学习将某些事实明确地提交给存储库。这并不是一件容易的事,因为反向传播算法需要可区分的功能,但是将数据提交到内存地址是一种固有的离散操作。因此,神经图灵机通过将少量数据提交到不同内存地址的分配中来解决此问题。这些架构似乎还不能很好地工作,但是这个想法非常重要。这些的某些变体将来可能会变得很普遍。

  • 生成对抗网络GAN是一个非常令人兴奋的想法,似乎已经看到了许多实际用途。这里的想法是同时训练两个NN:一个试图从潜在的概率分布中生成样本(生成器),另一个试图区分由生成器生成的真实数据点和虚假数据点(一个鉴别器)。因此,例如,如果您的数据集是卧室图片的集合,生成器将尝试制作自己的卧室图片,而判别器将尝试确定是查看的是真实的卧室图片还是假的卧室图片。最后,您有两个非常有用的NN:一个非常擅长将图像分类为卧室还是非卧室,另一个非常擅长生成逼真的卧室图像。


好点子!我没有意识到辍学是最近的发展!我现在添加了。谢谢!
J. O'Brien Antognini

0

由于最近在各种机器视觉/对象检测挑战中进行了重大改进,因此深度学习(尤其是深度卷积神经网络)现在非常流行。尤其是深度学习修道院已被用来将ImageNet分类错误从2010年的28%减少到2014年的7%。深度学习固然被夸大了,但是这不应该损害机器视觉领域的有意义的改进。


DLNN已经存在了很长一段时间-但已经调整为最近运行良好。是吗
Make42 '16

还有,那是什么定义?
Make42

是的,它们已经存在了一段时间,但是由于它们现在可以更有效地进行调整而受到欢迎。就像尼尔·斯莱特(Neil Slater)所说的那样,DL的定义很广泛,因为它有点流行。我将其定义为具有3个以上隐藏层的任何网络。DL还包括完全连接的网络,自动编码器和卷积网络。经常性网也可能会归类为DL类别,具体取决于您询问的人
Ryan Zotti

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.