本文的主要目标是让您对深度学习领域有一个整体了解,并帮助您了解每种特定情况下应使用的算法。
神经网络是一个具有相互连接的节点的计算系统,其节点的工作方式更像是人脑中的神经元。这些神经元在它们之间进行处理并传递信息。每个神经网络都是一系列的算法,这些算法试图通过一个模拟人类大脑运作的过程来识别一组数据中的潜在关系。
深度学习算法和经典神经网络之间有什么区别呢?最明显的区别是:深度学习中使用的神经网络具有更多隐藏层。这些层位于神经元的第一层(即输入层)和最后一层(即输出层)之间。另外,没有必要将不同层的所有神经元连接起来。
#1反向传播
反向传播算法是一种非常流行的用于训练前馈神经网络的监督学习算法。本质上,反向传播计算成本函数的导数的表达式,它是每一层之间从左到右的导数乘积,而每一层之间的权重梯度是对部分乘积的简单修改(“反向传播误差”)。
我们向网络提供数据,它产生一个输出,我们将输出与期望的输出进行比较(使用损失函数),然后根据差异重新调整权重。然后重复此过程。权重的调整是通过一种称为随机梯度下降的非线性优化技术来实现的。
假设由于某种原因,我们想识别图像中的树。我们向网络提供任何种类的图像,并产生输出。由于我们知道图像是否实际上有一棵树,因此我们可以将输出与真实情况进行比较并调整网络。随着我们传递越来越多的图像,网络的错误就会越来越少。现在我们可以给它提供一个未知的图像,它将告诉我们该图像是否包含树。
#2前馈神经网络(FNN)
前馈神经网络通常是全连接,这意味着层中的每个神经元都与下一层中的所有其他神经元相连。所描述的结构称为“多层感知器”,起源于1958年。单层感知器只能学习线性可分离的模式,而多层感知器则可以学习数据之间的非线性的关系。
前馈网络的目标是近似某个函数f。例如对于分类,=(x)将输入x映射到类别y。前馈网络定义了一个映射y = f(x;θ),并学习了导致最佳函数逼近的参数θ的值。
这些模型之所以称为前馈,是因为从x到定义f的中间计算,最后到输出y,没有反馈连接。没有将模型的输出反馈到自身的反馈连接。当前馈神经网络扩展为包括反馈连接时,它们称为循环神经网络。
#3卷积神经网络(CNN)
卷积神经网络除了为机器人和自动驾驶汽车的视觉提供帮助外,还成功的应用于人脸识别,对象监测和交通标志识别等领域。
在数学中,卷积是一个函数越过另一个函数时两个函数重叠多少的积分度量。
绿色曲线表示蓝色和红色曲线的卷积,它是t的函数,位置由垂直的绿色线表示。灰色区域表示乘积g(tau)f(t-tau)作为t的函数,所以它的面积作为t的函数就是卷积。
这两个函数在x轴上每一点的重叠的乘积就是它们的卷积。
在某种程度上,他们尝试对前馈网络进行正则化,以避免过度拟合(当模型只学习预先看到的数据而不能泛化时),这使得他们能够很好地识别数据之间的空间关系。
#4循环神经网络(RNN)
循环神经网络在许多NLP任务中都非常成功。在传统的神经网络中,可以理解所有输入和输出都是独立的。但是,对于许多任务,这是不合适的。如果要预测句子中的下一个单词,最好考虑一下它前面的单词。
RNN之所以称为循环,是因为它们对序列的每个元素执行相同的任务,并且输出取决于先前的计算。RNN的另一种解释:这些网络具有“记忆”,考虑了先前的信息。
例如,如果序列是5个单词的句子,则由5层组成,每个单词一层。
在RNN中定义计算的公式如下:
图像描述的生成
与卷积神经网络一起,RNN被用作模型的一部分,以生成未标记图像的描述。组合模型将生成的单词与图像中的特征相结合:
最常用的RNN类型是LSTM,它比RNN更好地捕获(存储)长期依赖关系。LSTM与RNN本质上相同,只是它们具有不同的计算隐藏状态的方式。
LSTM中的memory称为cells,您可以将其视为接受先前状态h_ {t-1}和当前输入参数x_t作为输入的黑盒。在内部,这些cells决定保存和删除哪些memory。然后,它们将先前的状态,当前memory和输入参数组合在一起。
这些类型的单元在捕获(存储)长期依赖关系方面非常有效。
#5递归神经网络
递归神经网络是循环网络的另一种形式,不同之处在于它们是树形结构。因此,它们可以在训练数据集中建模层次结构。
由于其与二叉树、上下文和基于自然语言的解析器的关系,它们通常用于音频到文本转录和情绪分析等NLP应用程序中。然而,它们往往比递归网络慢得多
#6自编码器
自编码器可在输出处恢复输入信号。它们内部有一个隐藏层。自编码器设计为无法将输入准确复制到输出,但是为了使误差最小化,网络被迫学习选择最重要的特征。
自编码器可用于预训练,例如,当有分类任务且标记对太少时。或降低数据中的维度以供以后可视化。或者,当您只需要学习区分输入信号的有用属性时。
#7深度信念网络和受限玻尔兹曼机器
受限玻尔兹曼机是一个随机神经网络(神经网络,意味着我们有类似神经元的单元,其binary激活取决于它们所连接的相邻单元;随机意味着这些激活具有概率性元素),它包括:
此外,每个可见单元连接到所有的隐藏单元(这种连接是无向的,所以每个隐藏单元也连接到所有的可见单元),而偏差单元连接到所有的可见单元和所有的隐藏单元。
为了使学习更容易,我们对网络进行了限制,使任何可见单元都不连接到任何其他可见单元,任何隐藏单元都不连接到任何其他隐藏单元。
多个RBM可以叠加形成一个深度信念网络。它们看起来完全像全连接层,但但是它们的训练方式不同。
#8生成对抗网络(GAN)
GAN正在成为一种流行的在线零售机器学习模型,因为它们能够以越来越高的准确度理解和重建视觉内容。用例包括:
在视频制作中,GAN可用于:
生成对抗网络(GAN)有两个部分:
建立GAN的第一步是识别所需的最终输出,并根据这些参数收集初始训练数据集。然后将这些数据随机化并输入到生成器中,直到获得生成输出的基本精度为止。
然后,将生成的图像与原始概念的实际数据点一起馈入判别器。判别器对信息进行过滤,并返回0到1之间的概率来表示每个图像的真实性(1与真相关,0与假相关)。然后检查这些值是否成功,并不断重复,直到达到预期的结果。
#9Transformers
Transformers也很新,它们主要用于语言应用。它它们基于一个叫做注意力的概念,这个概念被用来迫使网络将注意力集中在特定的数据点上。
由于LSTM单元过于复杂,因此可以使用注意力机制根据其重要性对输入的不同部分进行权衡。注意力机制只不过是另一个具有权重的层,它的唯一目的是调整权重,使输入的部分优先化,同时排除其他部分。
实际上,Transformers由多个堆叠的编码器(形成编码器层),多个堆叠的解码器(解码器层)和一堆attention层(self- attentions和encoder-decoder attentions)组成
Transformers设计用于处理诸如机器翻译和文本摘要之类的各种任务的有序数据序列,例如自然语言。如今,BERT和GPT-2是两个最著名的经过预先训练的自然语言系统,用于各种NLP任务中,它们都基于Transformers。
#10图神经网络
一般来说,非结构化数据并不适合深度学习。在许多实际应用中,数据是非结构化的,例如社交网络,化合物,知识图,空间数据等。
图神经网络的目的是对图数据进行建模,这意味着它们识别图中节点之间的关系,并对其进行数值表示。它们以后可以在任何其他机器学习模型中用于各种任务,例如聚类,分类等。