深度学习和传统的人工神经网络机器学习有什么区别?
What is the difference between Deep Learning and traditional Artificial Neural Network machine learning?
您能否简明扼要地解释一下 Deep Learning 与利用神经网络的传统机器学习之间的区别?制作一个神经网络需要多少层 "deep"?这一切只是营销炒作吗?
近年来,为解决各种机器学习问题而开发的模型变得更加复杂,层数非常多。例如,Google 的 Inception-v3 模型有(我认为)42 层。传统的神经网络过去通常只使用少数几个隐藏层。在 "Deep Learning" 和 "Deep Convolutional Neural Nets" 的上下文中使用的术语 "Deep" 是对所涉及的大量层的认可。
当层数变大时,标准反向传播算法(梯度下降)会出现严重问题。误差函数中局部最小值的概率随着每一层的增加而增加。不仅数学意义上的局部最小值会导致问题,有时误差函数中只有平坦区域(修改一个或多个权重不会显着改变误差)梯度下降不起作用。
另一方面,多层网络可以解决更难的问题,因为每一层单元格也可以提供一层抽象。
深度学习正是解决了这个问题。基本思想是除了对整个网络使用梯度下降之外,还对每一层执行无监督学习过程。无监督学习的目标是使每个单层从其输入中提取特征特征,供后续层使用。
虽然 "Deep Learning" 这个词目前被广泛使用,但它不仅仅是一种营销炒作。
编辑:几年前,很多人,包括我自己,都认为无监督预训练是深度学习的主要推动力。从那时起,其他技术开始流行,在许多情况下产生更好的结果。正如@Safak Okzan 在评论中提到的(在他自己的回答下方),这些包括:
残差网络
批量归一化
修正线性单位
我不同意@Frank Puffer 的回答。我不明白他所说的对隐藏层等执行无监督学习程序是什么意思。
深度学习指的是一般隐藏层数在2或3层以上的神经网络模型。大多数 DL 模型有 10 到 100 层或更多层。
最近深度学习模型的革命依赖于两件事:
1.海量数据的可用性——互联网时代的产物
2. GPU 可用性
用于优化 DL 模型的算法称为反向传播算法(在数学上等同于梯度下降)。 Backprop 实际上至少从 80 年代就已经存在——它不是 DL 特定的东西。
由于模型的复杂性和规模,深度学习模型通常需要大量数据。它们通常具有数百万个可调权重参数。由于训练数据的大小和每次迭代需要计算的数百万个偏导数(相对于权重),优化需要高计算能力。
从本质上讲,深度学习并不是一种营销炒作。它是一个大型多层神经网络模型,需要大量数据和强大的 GPU 进行训练。一旦经过训练,它们在某些任务中就能达到超人的准确度。
从应用的角度来看,我会在以下几行中区分 DL 和 ML 中使用的神经网络:
- 层数 - 简单神经网络的隐藏层数较少(一般在 10 以内),而深度神经网络可以有更多的隐藏层数(如上所述 10 到100 或以上)。
- 目的 - 深度学习具有专门的神经网络(在架构方面),可用于特定任务,例如用于图像分析的 CNN,用于序列的 RNNs/LSTMs等。简单的神经网络可以用于线性回归、分类(single/multi class)等任务。
- 处理复杂性 - 训练深度学习模型需要比传统机器学习神经网络更多的数据和计算资源。
传统人工神经网络处理的隐藏层数较少,而深度学习处理的隐藏层数很多,接近 1000。
例如:在它们中,你都有一个输入层,它被传递到不同的层,如第 1 层、第 2 层等。在深度学习的情况下,你有更多的隐藏层,因此在执行回溯时需要计算和更新的权重更多,而在 ANN 中,权重会相当少。
您能否简明扼要地解释一下 Deep Learning 与利用神经网络的传统机器学习之间的区别?制作一个神经网络需要多少层 "deep"?这一切只是营销炒作吗?
近年来,为解决各种机器学习问题而开发的模型变得更加复杂,层数非常多。例如,Google 的 Inception-v3 模型有(我认为)42 层。传统的神经网络过去通常只使用少数几个隐藏层。在 "Deep Learning" 和 "Deep Convolutional Neural Nets" 的上下文中使用的术语 "Deep" 是对所涉及的大量层的认可。
当层数变大时,标准反向传播算法(梯度下降)会出现严重问题。误差函数中局部最小值的概率随着每一层的增加而增加。不仅数学意义上的局部最小值会导致问题,有时误差函数中只有平坦区域(修改一个或多个权重不会显着改变误差)梯度下降不起作用。
另一方面,多层网络可以解决更难的问题,因为每一层单元格也可以提供一层抽象。
深度学习正是解决了这个问题。基本思想是除了对整个网络使用梯度下降之外,还对每一层执行无监督学习过程。无监督学习的目标是使每个单层从其输入中提取特征特征,供后续层使用。
虽然 "Deep Learning" 这个词目前被广泛使用,但它不仅仅是一种营销炒作。
编辑:几年前,很多人,包括我自己,都认为无监督预训练是深度学习的主要推动力。从那时起,其他技术开始流行,在许多情况下产生更好的结果。正如@Safak Okzan 在评论中提到的(在他自己的回答下方),这些包括:
残差网络
批量归一化
修正线性单位
我不同意@Frank Puffer 的回答。我不明白他所说的对隐藏层等执行无监督学习程序是什么意思。
深度学习指的是一般隐藏层数在2或3层以上的神经网络模型。大多数 DL 模型有 10 到 100 层或更多层。
最近深度学习模型的革命依赖于两件事:
1.海量数据的可用性——互联网时代的产物
2. GPU 可用性
用于优化 DL 模型的算法称为反向传播算法(在数学上等同于梯度下降)。 Backprop 实际上至少从 80 年代就已经存在——它不是 DL 特定的东西。
由于模型的复杂性和规模,深度学习模型通常需要大量数据。它们通常具有数百万个可调权重参数。由于训练数据的大小和每次迭代需要计算的数百万个偏导数(相对于权重),优化需要高计算能力。
从本质上讲,深度学习并不是一种营销炒作。它是一个大型多层神经网络模型,需要大量数据和强大的 GPU 进行训练。一旦经过训练,它们在某些任务中就能达到超人的准确度。
从应用的角度来看,我会在以下几行中区分 DL 和 ML 中使用的神经网络:
- 层数 - 简单神经网络的隐藏层数较少(一般在 10 以内),而深度神经网络可以有更多的隐藏层数(如上所述 10 到100 或以上)。
- 目的 - 深度学习具有专门的神经网络(在架构方面),可用于特定任务,例如用于图像分析的 CNN,用于序列的 RNNs/LSTMs等。简单的神经网络可以用于线性回归、分类(single/multi class)等任务。
- 处理复杂性 - 训练深度学习模型需要比传统机器学习神经网络更多的数据和计算资源。
传统人工神经网络处理的隐藏层数较少,而深度学习处理的隐藏层数很多,接近 1000。 例如:在它们中,你都有一个输入层,它被传递到不同的层,如第 1 层、第 2 层等。在深度学习的情况下,你有更多的隐藏层,因此在执行回溯时需要计算和更新的权重更多,而在 ANN 中,权重会相当少。