现在(2016 年)与我 4 年前(2012 年)研究的深度学习 NN 有何不同?

数据挖掘 神经网络 深度学习
2021-09-14 02:04:07

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

这种神经网络对我来说在大学里是标准的,而 DLNN 现在非常流行。去过那里,做到了——有什么大不了的?

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

我的神经网络背景主要来自大学,而不是工作:

  • 研究神经网络在工业中的应用
  • 大约有 5 门关于人工制品的课程。英特尔。&马赫。学习。- 虽然可能有 2 个在 NN
  • 将 NN 用于图像识别的小型简单项目 - 使用 3 层前馈 NN
  • 没有对他们进行真正的研究(如在博士论文中)
3个回答

你是对的,深度神经网络的基本概念自 2012 年以来没有改变。但是深度神经网络的训练方式已经有了各种改进,这使得它们在质量上更加强大。今天也有更多种类的架构可用。我列出了自 2012 年以来的一些发展,按培训改进和架构改进分组:

训练深度神经网络的改进

  • 硬件:最明显的变化就是摩尔定律的不可阻挡的进步。今天有更多的计算能力可用。云计算还使人们可以轻松地训练大型神经网络,而无需购买大型装备。

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

  • 激活函数:现在 ReLU 激活函数的使用可能更加广泛,这使得训练非常深的网络变得更加容易。在研究方面,正在研究更多种类的激活函数,包括leaky ReLUparametric ReLUmaxout units

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

  • Dropout:在过去的几年里,dropout已经成为训练神经网络时正则化的标准工具。Dropout 是一种计算成本低廉的 NN 集成形式。通常,在数据集的随机样本上训练的一组模型将优于在整个数据集上训练的单个模型。这对于 NN 来说很难明确地做到,因为它们的训练成本很高。但是类似的效果可以通过在每一步随机“关闭”神经元来近似。NN 中的不同子图最终会在不同的数据集上接受训练,从而学习不同的东西。与集成一样,这往往会使整体 NN 对过度拟合更加稳健。Dropout 是一种简单的技术,似乎在几乎所有情况下都能提高性能,所以它

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

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

新架构

  • 残差网络:研究人员已经能够使用残差网络训练令人难以置信的深度网络(超过 1000 层!)这里的想法是,每一层不仅接收前一层的输出,还接收原始输入。如果训练得当,这会鼓励每一层学习与前一层不同的东西,这样每一层都会增加信息。

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

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

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

深度学习(尤其是深度卷积神经网络)现在非常流行,因为最近在各种机器视觉/对象检测挑战方面有了实质性的改进。特别是 Deep convents 已被用于将 ImageNet 分类错误从 2010 年的 28% 降低到 2014 年的 7%。深度学习当然被夸大了,但这不应该减损机器视觉领域已经有了有意义的改进这一事实。

在 CV 上提出了一个类似的问题:神经网络和深度学习之间的区别

深度学习 = 深度人工神经网络 +其他类型的深度模型

深度人工神经网络 = 超过 1 层的人工神经网络。(参见深度神经网络中的最小层数

仅供参考:这张关于深度学习的幻灯片声称 1980 年代的所有改进都只是由于更多的数据和更快的计算机,这有多真实?