深度学习算法简要综述(上)(2)目录

深度学习算法的简要概述(第 1 部分)

本文目录如下:

什么是深度学习?神经网络 (Feedforward Neural Networks, FNN) 卷积神经网络 (Convolutional Neural Networks, CNN) 循环神经网络 (Recurrent Neural Networks, RNN) 循环神经网络 (Recursive Neural Network) 自动编码器 (AutoEncoders) 深度信念网络和受限玻尔兹曼机 生成对抗网络 Transformers 图形神经网络 基于深度学习的自然语言处理

13.基于深度学习的计算机视觉

上一篇介绍了前六节,从深度学习的定义到介绍神经网络、前向神经网络、卷积神经网络、循环神经网络、循环神经网络。接下来,我将介绍剩下的算法和两个。很好的应用方向。

7. 自动编码器

自编码器[11]通常用作无监督算法,主要用于降维和压缩。他们的诀窍是尝试使输出等于输入,并在其他工作中尝试重建数据。

自编码器由编码器和解码器组成。编码器接受一个输入并将其编码成一个低维潜在空间中的向量前向和递归神经网络的区别,而解码器负责对向量进行解码得到原始输入。结构如下图所示:

从上图我们可以知道,可以从网络中间的输出(图中代码部分)得到一个少维输入的特征表示,这就是降维和压缩的工作。

此外前向和递归神经网络的区别,还可以根据这个思路检索到输入数据略有不同甚至更好的数据,可用于训练数据增强、数据去噪等。

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

受限玻尔兹曼机[12]是一种具有生成能力的随机神经网络,也就是说,它可以从输入中学习概率分布。与其他网络相比,它最大的特点是只有输入层和隐藏层,不包含输出。

在训练的前向部分,传入一个输入并生成相应的特征表示,然后在反向传播中,从这个特征表示中重构出原始输入(这个过程与自动编码器非常相似,但在实现的单个网络)。具体网络结构如下图所示:

用于协同过滤的受限玻尔兹曼机

多个受限玻尔兹曼机 (RBM) 可以堆叠在一起形成一个深度信念网络 [13]。它们看起来与全连接层非常相似,但它们的训练方式不同。深度信念网络的训练是根据RBMs的训练过程,以成对的方式训练其网络层。

然而,最近,由于生成对抗网络 (GAN) 和变异自动编码器的出现,深度信念网络和受限玻尔兹曼机变得不那么流行了。

9. 生成对抗网络

Generative Adversarial Networks [14] 是 Ian Goodfellow 在 2016 年基于一个简单而优雅的想法提出的算法:如果你想生成图像数据,你会怎么做?

一种方法可能是创建两个模型,首先训练第一个模型生成假数据(生成器),然后训练第二个模型区分真假数据(鉴别器),然后将它们一起训练以相互竞争。

随着它的训练,生成器在生成图像数据方面越来越好,它的最终目标是成功地欺骗鉴别器。判别器具有越来越强的辨别真假数据的能力,其最终目标是不被欺骗。结果是判别器会得到非常真实的假数据,网络结构如下图所示:

生成对抗网络的应用包括电子游戏、天文图片、时尚等。基本上只要是图像数据,都可以使用生成对抗网络,比如非常著名的 Deep Fakes,它只有生成对抗网络。

10. 变形金刚

Transformers [15] 也是一种非常新的算法,主要用于语言应用,逐渐取代了循环神经网络。它主要基于注意力机制,它迫使网络专注于特定的数据点。

注意力机制没有复杂的 LSTM 单元,而是根据输入数据不同部分的重要性分配权重。注意机制[16]也是一个权重层,其目的是通过调整权重优先关注输入的特定部分,而暂时不关注其他不重要的部分。

Transformer 实际上由一些堆叠的编码器(组成编码层)、一些堆叠的解码器(解码层)和很多注意力网络层(self-attentions 和encoder-decoder attentions)组成,如下图所示:

Transformer 主要用于解决有序序列数据,例如自然语言处理中的一些任务,包括机器翻译和文本摘要。目前,BERT 和 GPT-2 是两个性能最好的预训练自然语言系统,它们被用于许多自然语言处理任务中,它们也是基于 Transformer 的。

11. 图神经网络

图片[1]-深度学习算法简要综述(上)(2)目录-老王博客

一般来说,非结构化数据不太适合深度学习算法。事实上,在现实生活中确实有许多应用程序数据是非结构化的,然后以图形格式组织。如社交网络、化学混合物、知识图谱、空间数据等。

图神经网络[17]的目标是对图数据进行建模,即它可以识别图中节点之间的关系并生成数值表示数据,类似于嵌入向量(embedding)。因此,它们可以应用于其他机器学习模型,用于所有类型的任务,例如聚类、分类等。

12. 基于深度学习的自然语言处理词嵌入

词嵌入是通过将词转换为数值向量表示来获得词之间的语义和语法相似度。这是必要的,因为神经网络只能接受数字数据,因此必须将单词和文本编码为数值。

序列建模

序列模型是自然语言处理不可或缺的一部分,因为它们出现在大量常见应用中,例如机器翻译 [23]、语音识别、自动完成和情感分类。序列模型可以处理顺序输入,例如文档的所有单词。

例如,假设您要将一个句子从英语翻译成法语。

要实现这种翻译,您需要一个序列模型 (seq2seq) [24]。Seq2seq 模型由编码器和解码器组成。编码器将序列(本例中为英文句子)作为输入,然后将输入在潜在空间中的表示作为输出,将其馈入解码器并输出新序列(即法语句子) .

最常见的编码器和解码器架构是循环神经网络(主要是 LSTM),因为它们非常擅长捕捉长期独立性,而 Transformers 模型更快且更容易并行化。有时,卷积神经网络相结合以提高准确性。

BERT [25] 和 GPT-2 [26] 被认为是目前最好的两个语言模型,它们实际上都是基于序列的 Transformer

13. 基于深度学习的计算机视觉

定位和目标检测

图像定位[27]是指在图像中定位对象并用边界框标记的任务,对象检测还包括对象分类。

这些相关任务是通过一个基本模型(及其升级版)处理的,即 RCNN。R-CNN及其升级版Fast RCNN,Faster RCNN使用区域提议和卷积神经网络。

以 Faster RCNN 为例,网络的外部系统会以固定大小的边界框的形式给出一些候选区域,其中可能包含目标对象。这些bounding box会被一个CNN(比如AlexNet)进行分类和校正,以确定该区域是否包含物体,对象是什么类别,并校正bounding box的大小。

单次检测器 (SSD)

单次检测器及其最著名的代表成员——YOLO(You Only Look Once)[28] 没有使用候选区域的思想,它们使用一组预定义的边界框。

这些bounding box会被传给CNN,分别用一个confidence score进行预测,对以每个box为中心的物体进行检测和分类,最后只保留得分最高的bounding box。

多年来,YOLO 也有几个升级版本——YOLOv2、YOLOv3 和 YOLO900,分别在速度和准确度上有所提升。

语义分割

计算机视觉的一项基本工作是根据图像的上下文对图像中的每个像素进行分类,即语义分割[29]。在该领域,最常用的两种模型是全卷积网络(FCN)和 U-Nets。

姿势估计

姿态估计[30]是指定一个人在图片或视频中的关节点,可以是2D或3D。在 2D 中,我们估计每个关节点的坐标 (x, y),在 3D 中,坐标为 (x, y, z)。

PoseNet [31] 是该领域 [31] 中最常用的模型,它也使用了卷积神经网络。将图片输入CNN,然后使用单姿态或多姿态算法检测姿态,每个姿态都会得到一个置信度得分和一些关键点坐标,最后只保留得分最高的那个。

总结

以上就是本文的全部内容。非常简单的介绍了深度学习中几种常用的算法模型,包括卷积神经网络、循环神经网络、自动编码器,以及生成对抗网络Transformers,这些都是近几年才提出的。此外,还介绍了深度学习的两大应用,自然语言处理和计算机视觉中的常见方向。

当然,本文只是对这些算法和应用方向的一个非常简单的普及。如果以后想了解更多,可以查看参考链接,里面会更详细的介绍各个具体的算法模型。

参考@jonathan_hui/nlp-word-embedding-glove-5e7f523999f6

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论