深度学习和传统的人工神经网络机器学习有什么区别?

7
你能提供一个简明扼要的解释,说明使用神经网络的深度学习和传统机器学习之间的区别吗?需要多少层才能使神经网络变得“深度”?这是否只是营销炒作?
5个回答

11

标准反向传播算法(梯度下降)在层数增多时会出现严重问题。每层误差函数中局部最小值的概率随着层数增加而增加。不仅数学意义上的局部最小值会导致问题,有时误差函数中也存在平坦区域(修改一个或多个权重对误差没有明显改变),在此区域内梯度下降无法工作。

另一方面,具有许多层的网络可以解决更困难的问题,因为每个单元格层还可以提供一层抽象。

深度学习正好解决了这个问题。基本思想是除使用梯度下降优化整个网络之外,在每个单独的层上执行无监督学习程序。无监督学习的目标是使每个单独的层从其输入中提取特征,以便后续层可以使用。

尽管“深度学习”这个术语目前被过度使用,但它不仅仅是一种营销炒作。

编辑:几年前,包括我在内的许多人认为无监督预训练是深度学习的主要驱动因素。此后,其他技术变得流行,这些技术在许多情况下产生了更好的结果。正如@Safak Okzan(在他自己的答案下方)的评论中提到的:

  • 残差网络

  • 批量归一化

  • 修正线性单元


1
谢谢!这正是我在寻找的那种解释类型。 - Boo Radley

4

我不同意@Frank Puffer的答案。我不明白他所说的在隐藏层上执行无监督学习过程是什么意思。

深度学习指的是神经网络模型,通常具有两个或三个以上的隐藏层。大多数深度学习模型都有10到100个或更多的层。

深度学习模型的最近革命依赖于两件事:
1.大量数据的可用性——这是互联网时代的产物
2. GPU的可用性

用于优化DL模型的算法称为反向传播算法(在数学上等价于梯度下降)。反向传播算法实际上早在80年代就已经出现了——它不是一个特定于DL的东西。

由于模型的复杂性和规模,DL模型通常需要大量的数据。它们通常有数百万个可调节的权重参数。由于训练数据的规模和需要在每次迭代中计算的数百万个偏导数(相对于权重),优化需要高计算能力。

总之,深度学习不是一种营销炒作。它是一个需要大量数据和强大的GPU进行训练的大型多层神经网络模型。一旦训练完成,它们在某些任务上可以达到超人类的精度。


我认为我们的答案之间没有太大矛盾,我们只是强调了不同的方面。我的主要观点是标准反向传播在超过3层的网络上表现不佳。这不仅仅是计算能力的问题。当朴素地将反向传播应用于具有>10层的网络时,在大多数情况下它会卡住,即使是简单的问题也是如此。在过去的几年中,已经开发出了不同的改进和技巧来克服这个问题。其中之一就是我提到的无监督预训练。确实已经发现它比最初想象的要少用。 - Frank Puffer
@FrankPuffer。我不确定无监督预训练的有效性和广泛使用程度。但这并不一定是深度学习成功的原因。相反,一些架构创新,如使用ReLU(可能是使反向传播在具有超过3层的模型上工作的主要原因)和跳跃连接(例如_ResNet_和_LSTMs_),已经使反向传播训练效果良好,并可能被添加到列表中。还有其他架构设计(如_Batch_normalization_或_Xavier_initialization_),可以帮助训练更深层次的模型,但我们不应该在本篇文章中深入探讨它们。 - Safak Ozkan
没错,最近似乎无监督预训练技术变得不那么流行了,而更多人倾向于使用你提到的其他技术。因此,我已经修改了我的回答。顺便说一句,我认为你的评论比原来的回答更合适,因为如果我们仍然使用30年前的相同网络架构,硬件性能和数据可用性将大多无用。 - Frank Puffer
1
在机器学习中,我们必须手动编写特征工程,但在深度学习中,我们不需要进行特征工程,模型会自行学习重要的特征。 - kamran kausar

2

近年来,解决各种机器学习问题的模型变得更加复杂,层数非常多。例如,我认为 Google 的 Inception-v3 模型有 42 层。传统神经网络通常只使用少数隐藏层。在“深度学习”和“深度卷积神经网络”的背景下,“深度”一词指的是涉及的层数非常多。


没错,但我认为这个答案忽略了主要观点:您不能简单地添加更多层,同时仍然使用传统的反向传播等学习算法。这样根本行不通。但幸运的是,一些聪明的人提出了改进的学习算法。有人为此想出了一个响亮的名字:“深度学习”。 - Frank Puffer
我同意你的中心观点,实际上我建议海报接受你的答案。另一方面,令人惊讶的是,核心训练算法在多大程度上没有改变 - 例如,深度卷积神经网络采用非常不同的连接结构,但我们仍然使用随机梯度下降和反向传播的轻微变化来训练它们。 我认为最大的变化在于图层的结构以及开发用于处理过度拟合的各种技术(例如,卷积层和dropout)。 - Aenimated1

1

从应用角度来看,我会按照以下方面区分DL和ML中使用的神经网络:

  • 层数 - 简单的神经网络有较少的隐藏层(通常在10层以内),而深度神经网络可以有更多的隐藏层(如上文所述,10到100层或以上)。
  • 目的 - 深度学习具有专门的神经网络(就体系结构而言),可用于特定任务,例如用于图像分析的CNN、用于序列的RNNs/LSTMs等。简单的神经网络可用于诸如线性回归、分类(单/多类)等任务。
  • 处理复杂度 - 训练深度学习模型需要比传统机器学习神经网络更多的数据和计算资源。

0
传统人工神经网络处理的隐藏层数较少,而深度学习处理的隐藏层数接近1000。例如:在两者中,您都有一个输入层,该层被传递到不同的层,如第1层、第2层等等。在深度学习的情况下,您将拥有更多的隐藏层,因此在执行回溯时需要计算和更新更多的权重,在ANN中,权重会相对较少。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接