深度学习和传统的人工神经网络机器学习有啥区别? [关闭]
Posted
技术标签:
【中文标题】深度学习和传统的人工神经网络机器学习有啥区别? [关闭]【英文标题】:What is the difference between Deep Learning and traditional Artificial Neural Network machine learning? [closed]深度学习和传统的人工神经网络机器学习有什么区别? [关闭] 【发布时间】:2016-08-03 09:10:41 【问题描述】:您能否简要说明Deep Learning 与使用神经网络的传统机器学习之间的区别?需要多少层才能使神经网络“深”?这一切都只是营销炒作吗?
【问题讨论】:
【参考方案1】:当层数变大时,标准的反向传播算法(梯度下降)会出现严重问题。误差函数中局部最小值的概率随着每一层的增加而增加。不仅数学意义上的局部最小值会导致问题,有时误差函数中只有平坦区域(修改一个或多个权重不会显着改变误差)梯度下降不起作用。
另一方面,具有多层的网络可以解决更困难的问题,因为每个单元层也可以提供一个抽象层。
深度学习正好解决了这个问题。基本思想是除了对整个网络使用梯度下降之外,还对每一层执行无监督学习过程。无监督学习的目标是让每一层都从其输入中提取特征特征,以供后续层使用。
尽管“深度学习”这个词目前被广泛使用,但它不仅仅是一种营销炒作。
编辑:几年前,包括我自己在内的很多人都认为,无监督预训练是深度学习的主要推动力。从那时起,其他技术开始流行,在许多情况下产生更好的结果。正如@Safak Okzan 的评论中提到的(在他自己的回答下面),这些包括:
残差网络
批量标准化
整流线性单位
【讨论】:
谢谢!这正是我正在寻找的解释类型。【参考方案2】:我不同意@Frank Puffer 的回答。我不明白他在隐藏层等上执行无监督学习程序是什么意思。
深度学习是指通常具有 2 或 3 个以上隐藏层的神经网络模型。大多数 DL 模型有 10 到 100 层或更多层。
深度学习模型的最新革命依赖于两件事: 1、海量数据的可用性——互联网时代的产物 2. GPU 的可用性
用于优化 DL 模型的算法称为反向传播算法(在数学上相当于梯度下降)。 Backprop 实际上至少从 80 年代就已经存在了——它不是 DL 特定的东西。
由于模型的复杂性和大小,DL 模型通常需要大量数据。它们通常具有数百万个可调权重参数。由于训练数据的大小和每次迭代需要计算的数百万个偏导数(相对于权重),优化需要高计算能力。
本质上,深度学习并不是一种营销炒作。这是一个大型的多层神经网络模型,需要大量数据和强大的 GPU 进行训练。一旦经过训练,它们在某些任务上的准确度就会超过人类。
【讨论】:
我认为我们的答案之间没有太大的矛盾,我们只是强调了不同的方面。我的主要观点是标准反向传播在超过 3 层的网络上表现不佳。这不仅仅是计算能力的问题。当天真地将反向传播应用到超过 10 层的网络时,它在大多数情况下都会卡住,即使对于简单的问题也是如此。在过去的几年中,已经开发了不同的改进和技巧来克服这个问题。其中之一是我提到的无监督预训练。确实发现它没有最初想象的那么有用。 @FrankPuffer。我不确定 无监督预训练 的有效性和广泛使用程度。但这不一定是 DL 成为可能的原因。然而,一些架构创新,例如使用 ReLU(ResNet 和 LSTMs ) 已经使反向传播训练工作得很好,并且可能会被添加到列表中。还有其他架构设计(如 Batch normalization 或 Xavier initialization)有助于训练更深层次的模型,但我们应该不要在这篇文章中涉及它们。 对,似乎无监督预训练最近变得不那么流行了,有利于您提到的其他技术。因此,我编辑了我的答案。顺便说一句,我发现你的评论比你原来的答案更合适,因为如果我们仍然使用与 30 年前相同的网络架构,硬件性能和数据可用性将几乎毫无用处。 在 ML 中我们必须进行手工编码的特征工程,但在 DL 中我们不必进行特征工程,模型会自行学习重要的特征。【参考方案3】:近年来,为解决各种机器学习问题而开发的模型变得更加复杂,层数非常多。例如,谷歌的 Inception-v3 模型(我认为)有 42 层。传统的神经网络过去通常只使用少数隐藏层。在“深度学习”和“深度卷积神经网络”的上下文中使用的术语“深度”是对所涉及的大量层数的一种认可。
【讨论】:
对,但我想说这个答案忽略了要点:您不能简单地添加越来越多的层,同时仍然使用反向传播等传统学习算法。这根本行不通。但幸运的是,一些聪明人想出了改进的学习算法。有人为此找到了一个华丽的名字:“深度学习”。 我同意你的中心观点,实际上我会建议发帖者接受你的回答。另一方面,核心训练算法并没有发生多少变化,这实际上是非常令人难以置信的——例如,深度卷积神经网络采用了非常不同的连接结构,但我们仍然使用随机梯度下降和反向传播的微小变化来训练它们。我想说最大的变化在于层的结构和为处理过度拟合而开发的各种技术(例如,分别是卷积层和 dropout)。【参考方案4】:从应用程序的角度来看,我将在以下几行中区分 DL 和 ML 中使用的神经网络:
层数 - 简单神经网络的隐藏层数较少(通常在 10 以内),而深度神经网络的隐藏层数可能较多(如上所述,10 到 100 或更多)。 目的 - 深度学习具有专门的神经网络(在架构方面),可用于特定任务,例如用于图像分析的 CNN、用于序列的 RNN/LSTM 等。简单的神经网络可用于任务例如线性回归,分类(单/多类)。 处理复杂性 - 训练深度学习模型需要比传统机器学习神经网络更多的数据和计算资源。【讨论】:
【参考方案5】:传统的人工神经网络处理的隐藏层数量较少,而深度学习处理的隐藏层数量接近 1000 个。 例如:在他们两个中,你都有一个输入层,它被传递到不同的层,如第 1、2 层等。在深度学习的情况下,您有更多的隐藏层,因此在执行回溯时需要计算和更新更多的权重,而在 ANN 中,权重会相当少。
【讨论】:
以上是关于深度学习和传统的人工神经网络机器学习有啥区别? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章