原文链接:Deep Learning Algorithms : The Complete Guide

深度学习正在影响整个世界。

深度学习的炒作始于 2012 年:一个神经网络(Neural Network)在图片识别任务上表现出超人的性能,并且只有少数人能预测将会发生什么。

在过去 10 年,越来越多的算法落地到我们生活中。越来越多的公司开始将其加入到日常业务中。

这里,我尝试覆盖近几年各种应用如计算机视觉和自然语言处理(Natural Language Processing)中所涉及的所有最重要的算法和构思。

其中有一些算法比其他一些使用的更加频繁并且每一种都有其自身的优点和缺点。

我的主要目标是给你一个当前领域通用的思路去帮助你理解每一种情况应该使用什么算法。 因我知道它看起来会对一些从零开始的人造成一定程度的混乱。

但是通过阅读这份指南,我有信心你会认识到什么是什么并且你可以准备好去立即使用他们。

所以如果你正在寻找一份深度学习真正的完整指南,那就让我们开始吧。

Contents

  1. 但是什么是深度学习?

  2. 神经网络

  3. 前馈神经网络(FNN)

  4. 卷积神经网络(CNN)

  5. 循环神经网络(RNN)

  6. 递归神经网络(Recurisive Neural Network)

  7. 自编码器(AutoEncoders)

  8. 深度信念网络 (Deep belief network)和受限玻尔兹曼机 (Restricted Boltzmann machine)

  9. 生成对抗网络(GAN)

  10. Transformers

  11. 图神经网络(GNN)

  12. 自然语言处理中的深度学习

  13. 计算机视觉中的机器学习

深度学习在科学和企业界取得了疯狂的人气。从 2012,卷积神经网络(CNN)在图像识别竞赛( ImageNet Large Scale Visual Recognition Challenge)中获得了惊人的准确性,每年都出现了越来越多的研究论文并且越来越多的企业将神经网络收录到他们的业务中。据估计,深度学习目前的市场规模为 25 亿,预计到 2023 年将达到 181.6 亿。

但是什么是深度学习?

根据维基百科:「深度学习(英語:deep learning)是机器学习的分支,是一種以人工神經網路為架構,對資料進行表徵學習的算法。」

在我看来, 深度学习是一系列启发于人脑在处理数据和创建用于决策的模式方面的工作的算法的集合,这是对成为人工神经网络(Artificial Neural Network)得单一模型架构的思想的扩展和改进。

神经网络

神经网络(Neural Networks)就像人脑一样由神经元组成。每一个神经元接收信号作为输入,用权重相乘,对它们求和并应用非线性函数。这些神经元彼此相邻堆叠并分层组织。

但是通过这些我们能做些什么呢?

事实证明,神经网络是出色的 函数逼近器(function approximators)

我们可以假设每一个行为和系统可以最终被表示为一个数学函数(可能会异常复杂)。如何我们设法找到该函数,那么我们就可以从本质上理解系统的所有内容。但是找到该函数可能非常困难。因此,我们需要对其进行估算。输入神经网络。

反向传播(Backpropagation)

神经网络可以使用大量数据和被称为 backpropagation 的算法学习描述函数。我们将数据输入到网络,它生产输出,我们将该输出与所需的输出进行对比(使用损失函数(loss function)),然后我们根据差异再调整权重。

然后一直重复。使用称为随机梯度下降(stochastic gradient descent)的非线性优化技术执行权重的调整。

一段时间之后,网络将在生产输出上变的足够好。因此,训练接结束了。因此,我们设法接近我们的函数。如果我们将输出未知的输入传递给网络,它会基于近似函数(approximated function)给我们一个答案。

让我们通过一个例子让其更容易理解。比如基于一些原因我们想鉴别一张图片中是否有树。我们将任意类型的图片输入到网络然后网络产生输出。由于我们知道一张图片是否包含树,我们可以对比网络输出和事实并调整网络。

通过越来越多的图片输入到网络,网络将会越来越精准。现在我们输入一张未知的图片,然后它就会告诉我们图片中是否包含树。很酷对吧?

多年来,研究人员对原始想法进行了惊人的改进。每种新架构都针对特定问题实现了更高的准确性和速度。我们将所有这些新模型归为特定的类别:

前馈神经网络(FNN)

FNN 通常是全部连接的(fully connected),也就是说层中的每一个神经元都与下一层中其他神经元相连。所描述的结构被称为多层感知器 (Multilayer Perceptron),起源于 1958。单层感知器只能学习线性可分离模式,但是一个多层感知器可以学习数据间的非线性关系。

它们在分类和回归等任务上表现的异常的好。与其他机器学习算法相反,它们并不那么容易收敛。它们拥有的数据越多,其准确性就越高。

卷积神经网络(CNN)

CNN 采用了一个叫做卷积(convolution)的函数。

循环神经网络(RNN)

递归神经网络

自编码器(AutoEncoders)

深度信念网络 (Deep belief network)和受限玻尔兹曼机 (Restricted Boltzmann machine)

生成对抗网络(GAN)

Transformers

图神经网络(GNN)

自然语言处理中的深度学习

词嵌入 (Word embedding)

序列建模(Sequence Modeling)

计算机视觉中的机器学习

本地化和物体识别

单发探测器(Single shot detectors)

语义分割(Semantic Segmentation)

姿势估计(Pose Estimation)