标准反向传播算法(梯度下降)在层数增多时会出现严重问题。每层误差函数中局部最小值的概率随着层数增加而增加。不仅数学意义上的局部最小值会导致问题,有时误差函数中也存在平坦区域(修改一个或多个权重对误差没有明显改变),在此区域内梯度下降无法工作。
另一方面,具有许多层的网络可以解决更困难的问题,因为每个单元格层还可以提供一层抽象。
深度学习正好解决了这个问题。基本思想是除使用梯度下降优化整个网络之外,在每个单独的层上执行无监督学习程序。无监督学习的目标是使每个单独的层从其输入中提取特征,以便后续层可以使用。
尽管“深度学习”这个术语目前被过度使用,但它不仅仅是一种营销炒作。
编辑:几年前,包括我在内的许多人认为无监督预训练是深度学习的主要驱动因素。此后,其他技术变得流行,这些技术在许多情况下产生了更好的结果。正如@Safak Okzan(在他自己的答案下方)的评论中提到的:
残差网络
批量归一化
修正线性单元
我不同意@Frank Puffer的答案。我不明白他所说的在隐藏层上执行无监督学习过程是什么意思。
深度学习指的是神经网络模型,通常具有两个或三个以上的隐藏层。大多数深度学习模型都有10到100个或更多的层。
深度学习模型的最近革命依赖于两件事:
1.大量数据的可用性——这是互联网时代的产物
2. GPU的可用性
用于优化DL模型的算法称为反向传播算法(在数学上等价于梯度下降)。反向传播算法实际上早在80年代就已经出现了——它不是一个特定于DL的东西。
由于模型的复杂性和规模,DL模型通常需要大量的数据。它们通常有数百万个可调节的权重参数。由于训练数据的规模和需要在每次迭代中计算的数百万个偏导数(相对于权重),优化需要高计算能力。
总之,深度学习不是一种营销炒作。它是一个需要大量数据和强大的GPU进行训练的大型多层神经网络模型。一旦训练完成,它们在某些任务上可以达到超人类的精度。
近年来,解决各种机器学习问题的模型变得更加复杂,层数非常多。例如,我认为 Google 的 Inception-v3 模型有 42 层。传统神经网络通常只使用少数隐藏层。在“深度学习”和“深度卷积神经网络”的背景下,“深度”一词指的是涉及的层数非常多。
从应用角度来看,我会按照以下方面区分DL和ML中使用的神经网络: