您的位置:首页 > 资讯 > 备考策略

走进深度学习:深入了解DeepLearning算法

时间:2020-05-18  来源:博客  作者:未知

 走进深度学习:深入了解Deep Learning算法

 走进深度学习:深入了解DeepLearning算法

深度学习、机器学习、人工智能……你可能常常见到这些词一起出现,然而它们之间是什么关系呢?深度学习是与机器学习相关的下位词,机器学习又是与人工智能相关的下位词。

在过去的几年里,深度学习最广泛的用例是图像处理。尽管面部识别功能已经存在很长时间了,但是完美没有极限。

对于想从头开始学习深度学习的人来说,理解它的工作机制似乎很难。而本文将讨论真正的算法以及它们背后的经典数学知识,希望这篇文章能让你对该领域有一个总体认识,能了解特定情况下应使用的算法。现在开始吧。

                      走进深度学习:深入了解DeepLearning算法

神经网络:基础

神经网络是一个具有互连节点的计算系统,其节点的工作方式更像是人脑中的神经元。信息在这些神经元间处理并传递。每个神经网络都是一系列算法,旨在通过模仿人脑的运作过程来识别一组数据中的潜在关系。

 走进深度学习:深入了解DeepLearning算法

深度学习算法和典型的神经网络之间有什么区别?最明显的区别是:深度学习中使用的神经网络具有更多隐藏层。这些隐藏层在神经元的第一层(输入层)与最后一层(输出层)之间。此外,不必将不同级别的所有神经元彼此连接。

接下来来谈谈更复杂的事情。也就是允许我们使用神经网络这一尖端技术的机制:深度学习算法。

1.反向传播

反向传播算法是一种流行的监督算法,用于训练前馈神经网络进行监督学习。本质上,反向传播计算从左到右(“向后”)每一层之间的导数乘积,将其作为成本函数的导数,层间的权重梯度是对这部分乘积的简单修正(“反向传播误差”)。

 走进深度学习:深入了解DeepLearning算法

给网络提供数据,它会产生一个输出,(使用损失函数)将该输出与期望输出进行比较,然后根据差异重新调整权重。接着不断重复这一过程。权重的调整是通过一种名为随机梯度下降的非线性优化技术来实现的。

假设由于某种原因需要识别具有一棵树的图像。我们向网络提供任意图像,其将产生输出。由于我们知道图像中是否有一棵树,因此可以将输出与真实情况进行比较并调整网络。随着输入的图像越来越多,网络犯的错误将越来越少。现在可以给网络提供一个未知的图像,它将告诉我们该图像是否包含树。很酷吧?

走进深度学习:深入了解DeepLearning算法

2.卷积神经网络(CNN)

除了为机器人和自动驾驶汽车的视觉提供动力外,ConvNets还成功地识别了人脸,物体和交通标志。

源于拉丁语 “convolvere”,“卷积(toconvolve)”的意思是卷到一起。从数学的角度来说,卷积是一个函数越过另一个函数时两个函数重叠程度的积分度量。可将其视为通过将两个函数相乘来混合它们的一种方式。

              走进深度学习:深入了解DeepLearning算法

绿色曲线作为的函数,表示蓝色和红色曲线的卷积,而垂直的绿色直线用于指示其位置。灰色区域作为的函数,表示乘积,因此其作为的函数的面积恰好就是卷积。

两个函数在x轴上每个点的重叠积就是它们的卷积。因此,从某种意义上说,这两个函数正在“卷到一起”。

        走进深度学习:深入了解DeepLearning算法

   某种程度上,它们试图对前馈网络进行正则化以避免过拟合(当模型仅学习预知的数据而无法进行泛化时),这使其非常擅长识别数据之间的空间关系。

                         走进深度学习:深入了解DeepLearning算法

3.递归神经网络(RNN)

递归神经网络在许多NLP任务中非常成功。RNN的思想是一致地使用信息。传统的神经网络认为所有的输入与输出是独立的。但这对于许多任务来说是不适用的。若想要预测句子中的下一个单词,最好考虑到它前面的单词。

RNN被称为递归是因为它们对序列中的每个元素执行相同的任务,且输出取决于先前的计算。另一个对RNN的解释是:这些网络有“记忆”,能考虑先前的信息。

          走进深度学习:深入了解DeepLearning算法

上图显示RNN已展开为一个完整的网络。由RNN的完全一致性,通过展开可以简单地写出网络。例如,如果序列是含有5个单词的句子,展开图将由5层组成,每个单词对应一层。

RNN中定义计算的公式如下:

· 时间步为时的输入。例如,可能是与句子的第二个单词相对应的一个独热向量。

· 时间步为时的隐藏状态。这是网络的“记忆”。作为函数取决于先前的状态和当前输入。函数通常是非线性的,例如tanh或者ReLU。通常将计算第一个隐藏状态所需的初始化为零(零向量)。

· 在步长为时的输出。例如,如果想要预测句子中的一个单词,输出可能是词典中的概率向量。

图像描述的生成

RNN与卷积神经网络共同作为模型的一部分,用以生成对未标记图像的描述。该组合模型将生成的单词与图像中的特征结合:

走进深度学习:深入了解DeepLearning算法

值得一提的是,最常用的RNN类型是LSTM,它能比RNN更好地捕获(存储)长期依赖关系。但无需担心,LSTMRNN在本质上相同,只是计算隐藏状态的方式不同。

LSTM中的记忆称为细胞,可以将其视为把先前状态和当前输入参数作为输入的黑箱。在黑箱内部,这些细胞决定要保存和抹去的记忆。然后,它们将先前的状态,当前的记忆以及输入参数组合在一起。

走进深度学习:深入了解DeepLearning算法

这类单元在捕获(存储)长期依赖性方面非常有效。

4.递归神经网络

递归神经网络是循环网络的另一种形式,区别在于递归神经网络以树形构造。因此,它们可以对训练集中的层次结构进行建模。

由于递归神经网络与二叉树、上下文和基于自然语言的解析器有联系,因此其通常用于如音频到文本的转录和情感分析等的NLP应用程序中。但是,它们往往比循环网络慢得多。

                    走进深度学习:深入了解DeepLearning算法

5.前馈神经网络(FNN)

前馈神经网络通常是全连接的,这意味着每一层中的神经元都与下一层中的所有其他神经元相连。这种结构称为多层感知器,它起源于1958年。单层感知器只能学习线性可分离的模式,而多层感知器能够学习数据之间的非线性关系。

前馈网络的目标是近似某个函数。例如,对于一个分类器,将输入映射到类别。前馈网络定义了一个映射,并学习能得到最佳函数近似的参数值。

之所以将这些模型称为前馈,是因为信息首先流过由求值的函数,之后流过用于定义的中间计算,最后流动到输出。模型没有反馈连接,因此模型的输出不能反馈给自身。当前馈神经网络扩展为包括反馈连接时,称之为递归神经网络。

走进深度学习:深入了解DeepLearning算法

6.深度信念网络和受限玻尔兹曼机

受限玻尔兹曼机是一个随机神经网络(神经网络意味着有类似神经元的单元,其二进制激活取决于它们所连接的邻居;随机意味着这些激活具有概率性元素),它包括:

· 一层可见单元(用户的电影偏好,该用户的状态为我们知晓并设置);

· 一层隐藏单元(尝试学习的潜在因素);

· 偏差单元(其状态始终为开,是一种针对每部电影不同的固有流行度进行调整的方式)。

此外,每个可见单元连接所有隐藏单元(此连接是无向的,因此每个隐藏单元也连接所有可见单元),而偏差单元连接所有可见单元和所有隐藏单元。

走进深度学习:深入了解DeepLearning算法

为了使学习更容易,可以限制网络,使得任何可见单元之间不能互相连接,任何隐藏单元之间也不能互相连接。

可以堆叠多个RBM来形成深度信念网络。尽管深度信念网络看起来像完全连接层,但其训练方式不同。

7.生成对抗网络(GAN)

由于GAN理解和重建视觉内容的精度越来越高,其正在成为在线零售领域的流行ML模型。用例包括:

· 根据轮廓填充图像。

· 根据文本生成逼真的图像。

· 生成对产品原型的逼真描述。

· 将黑白图像转换为彩色图像。

在视频制作领域,GAN可用于:

· 在框架内模拟人类行动的模式。

· 预测后续的视频帧。

· 进行换脸

生成对抗网络(GAN)有两个部分:

· 生成器学习生成合理的数据。生成的实例作为判别器的负面训练实例。

· 判别器学习区分生成器的假数据和真实数据,并对产生不真实数据的生成器进行处罚。

建立GAN的第一步是识别所需的最终输出,并根据这些参数收集初始训练数据集。然后将这些数据随机化并输入到生成器中,直到生成输出获得基本精度为止。

走进深度学习:深入了解DeepLearning算法

然后,将生成的图像与原始概念的实际数据点一起输入判别器。判别器对信息进行过滤,并返回介于01之间的概率来表示每张图像的真实性(1代表真实,0代表伪造)。这些值将由人工检查是否成功,并重复进行直到达到所需结果为止。

走进深度学习:深入了解DeepLearning算法

8.自动编码器

自动编码器是直接分配的神经网络,可在输出端恢复输入信号。它们内部有一个隐藏层,为描述模型的编码。自动编码器被设计为无法准确将输入复制到输出。

通常,它们受到编码维度(小于信号的维度)的限制,或者会因激活编码受到惩罚。编码损失使得输入信号的恢复会出现错误,为了使错误最小化,网络必须学习选择最重要的特征。

走进深度学习:深入了解DeepLearning算法

自动编码器可用于预训练如执行分类任务且标记对太少时;或用于降低数据维度以供之后的可视化;抑或用于只需要学习区分输入信号的有用特征时。

此外,自动编码器的某些发展(将在后面进行描述)正处于生成模型科学发展的前沿,例如变分自动编码器(VAE),以及其与生成式对抗网络(GAN)的组合,都给出了非常有趣的结果。

9.Transformer

Transformer也是一种新模型,由于其出现开始使循环网络过时,因而被广泛用于语言应用。它们基于名为注意的概念,该概念用于强制网络将注意力集中在特定的数据点上。

走进深度学习:深入了解DeepLearning算法

不必使用过于复杂的LSTM单元,而是使用“注意”机制根据输入的重要性对输入的不同部分进行加权。注意机制不过是具有权重的另一层而已,其唯一目的是以一种优先考虑部分输入,而降低其他输入优先级的方式来调整权重。

实际上,Transformer由多个堆叠的编码器(形成编码器层)、多个堆叠的解码器(解码器层)和一堆关注层(self-attentionencoder-decoder attention)组成。

           走进深度学习:深入了解DeepLearning算法

Transformer旨在处理有序数据列,例如自然语言中诸如机器翻译和文本摘要之类的各种任务。如今,BERTGPT-2是两个最著名的预训练自然语言系统,它们都基于Transformer,被用于各种NLP任务中。

10.图神经网络

通常,非结构化数据不太适合深度学习。然而在许多实际应用中,数据都是非结构化的,且以图的形式进行组织,如社交网络,化合物,知识图,空间数据。

走进深度学习:深入了解DeepLearning算法

图神经网络的目的是对图数据进行建模,这意味着它们可以识别图中节点之间的关系并为其生成数字表示。这就如同嵌入。因此,它们后续可以被用于处理诸如聚类,分类等各种任务的任意机器学习模型中。希望本文能让你再次见到深度学习时不再那么懵。

返回首页 发表评论 加入收藏夹 错误报告
来顶一下 返回首页 版权说明:正文内容来源于网络、版权归原作者所有,若侵权告知删除!