在过去的几年中,神经网络的兴起与应用成功推动了模式识别和数据挖掘的研究。许多曾经严重依赖于手工提取特征的机器学习任务(如目标检测、机器翻译和语音识别),如今都已被各种端到端的深度学习范式(例如卷积神经网络(CNN)、长短期记忆(LSTM)和自动编码器)彻底改变了。曾有学者将本次人工智能浪潮的兴起归因于三个条件,分别是:
· 计算资源的快速发展(如GPU)
· 大量训练数据的可用性
· 深度学习从欧氏空间数据中提取潜在特征的有效性
尽管传统的深度学习方法被应用在提取欧氏空间数据的特征方面取得了巨大的成功,但许多实际应用场景中的数据是从非欧式空间生成的,传统的深度学习方法在处理非欧式空间数据上的表现却仍难以使人满意。例如,在电子商务中,一个基于图(Graph)的学习系统能够利用用户和产品之间的交互来做出非常准确的推荐,但图的复杂性使得现有的深度学习算法在处理时面临着巨大的挑战。这是因为图是不规则的,每个图都有一个大小可变的无序节点,图中的每个节点都有不同数量的相邻节点,导致一些重要的操作(例如卷积)在图像(Image)上很容易计算,但不再适合直接用于图。此外,现有深度学习算法的一个核心假设是数据样本之间彼此独立。然而,对于图来说,情况并非如此,图中的每个数据样本(节点)都会有边与图中其他实数据样本(节点)相关,这些信息可用于捕获实例之间的相互依赖关系。
近年来,人们对深度学习方法在图上的扩展越来越感兴趣。在多方因素的成功推动下,研究人员借鉴了卷积网络、循环网络和深度自动编码器的思想,定义和设计了用于处理图数据的神经网络结构,由此一个新的研究热点——“图神经网络(Graph Neural Networks,GNN)”应运而生
近期看了关于Transformer的信息,来简述一下Transformer结构。
Transformer 整体结构
首先介绍 Transformer 的整体结构,下图是 Transformer 用于中英文翻译的整体结构:
Transformer 的整体结构,左图Encoder和右图Decoder
可以看到 Transformer 由 Encoder 和 Decoder 两个部分组成,Encoder 和 Decoder 都包含 6 个 block。Transformer 的工作流程大体如下:
第一步:获取输入句子的每一个单词的表示向量 X,X由单词的 Embedding(Embedding就是从原始数据提取出来的Feature) 和单词位置的 Embedding 相加得到。
Transformer 的输入表示
第二步:将得到的单词表示向量矩阵 (如上图所示,每一行是一个单词的表示 x) 传入 Encoder 中,经过 6 个 Encoder block 后可以得到句子所有单词的编码信息矩阵 C,如下图。单词向量矩阵用 Xn×d 表示, n 是句子中单词个数,d 是表示向量的维度 (论文中 d=512)。每一个 Encoder block 输出的矩阵维度与输入完全一致。
Transformer Encoder 编码句子信息
第三步:将 Encoder 输出的编码信息矩阵 C传递到 Decoder 中,Decoder 依次会根据当前翻译过的单词 1~ i 翻译下一个单词 i+1,如下图所示。在使用的过程中,翻译到单词 i+1 的时候需要通过 Mask (掩盖)操作遮盖住 i+1 之后的单词。
Transofrmer Decoder 预测
上图 Decoder 接收了 Encoder 的编码矩阵C,然后首先输入一个翻译开始符 "<Begin>",预测第一个单词 "I";然后输入翻译开始符 "<Begin>" 和单词 "I",预测单词 "have",以此类推。这是 Transformer 使用时候的大致流程,接下来是里面各个部分的细节。
分享安排
1. 人工智能、深度学习的发展历程
2. 深度学习框架
3. 神经网络训练方法
4. 卷积神经网络,卷积核、池化、通道、激活函数
5. 循环神经网络,长短时记忆LSTM、门控循环单元GRU
6. 参数初始化方法、损失函数Loss、过拟合
7. 对抗生成网络GAN
8. 迁移学习TL
9. 强化学习RF
10. 图神经网络GNN
一、算法和场景融合理解
1.空间相关性的非结构化数据,CNN算法。典型的图像数据,像素点之间具有空间相关性,例如图像的分类、分割、检测都是CNN算法。
2.时间相关性的非结构化数据,RNN算法。这类场景普遍的一个现象就是数据之间具有时序相关性,也就是数据之间存在先后依赖关系。例如自然语言处理、语音相关算法都是基于RNN算法。
3.非欧氏数据结构, GNN。这类场景典型的可以用图来表示。例如社交网络等。
案例摘要讲解
医疗领域:如流行疾病、肿瘤等相关疾病检测
遥感领域:如遥感影像中的场景识别
石油勘探:如石油油粒大小检测
轨道交通:如地铁密集人流检测
检测领域:如故障检测
公安领域:如犯罪行为分析
国防领域:目标检测、信号分析、态势感知…
经济领域:如股票预测
二、数据理解及处理
分析典型场景中的典型数据,结合具体的算法,对数据进行处理
1.结构化数据,如何对数据进行读取,进行组织。
2.图像数据,在实际应用过程中的处理方法,怎样做数据的预处理、进行数据增强等。
3.时序信号,将单点的数据如何组合成一个序列,以及对序列数据处理的基本方法。
三、技术路径设计
针对具体的场景设计特定的神经网络模型,对典型数据适配的网络结构进介绍。
1.DNN模型搭建的基本原则
2.CNN模型中常见的网络结构,以及参数分析。
3.RNN中支持的一些基本算子,如何对序列数据进行组织。
四、模型验证及问题排查
简单的算法或者模型对典型的场景进行快速验证,并且针对一些频发的问题进行讲解。
1. 模型收敛状态不佳
2. 分类任务重最后一层激活函数对模型的影响
五、高级-模型优化的原理
不同的模型需要采用的优化函数以及反向传播中参数的优化方法
1.模型优化的算法介绍,基于随机梯度下降的算法介绍。
2.不同场景适应的损失函数介绍。
3.针对典型场景的反向传播梯度的推到过程。
六、高级-定制化思路
结合往期学员的一些项目,简单介绍一下解决一个具体问题的思路。
遥感成像中,地块农作物种类的识别。
实操解析与训练
第一阶段:
神经网络实践
实验:神经网络
1.神经网络中基本概念理解:epoch、batch size、学习率、正则、噪声、激活函数等。
2.不同的数据生成模型、调整网络参数、调整网络规模
3.神经网络分类问题
4.不同数据特征的作用分析、隐含层神经元数目
5.过拟合
高频问题:
1.输入数据与数据特征 2.模型设计的过程中的参数与功能的关系。
关键点:
1.掌握神经网络的基本概念 2.学会搭建简单的神经网络结构
3.理解神经网络参数
实操解析与训练
第二阶段:
深度学习三种编程思想
实验:Keras实践
1.理解Keras基本原理 2.学会Keras编程思想
3.三种不同的深度神经网络构建编程方式
4.给定数据集,采用Keras独立完成实际的工程项目
高频问题:
1.如何编程实现深度神经网络 2.三种开发方式的具体使用
关键点:
1.掌握Keras编程思想 2.采用三种不同方式编写深度神经网络
实操解析与训练
第三阶段:CNN实践
实验:图像分类
1.使用CNN解决图像分类问题 2.搭建AlexNet 3.VGG16/19
4.GoogleNet 5.ResNet
高频问题:
1.CNN更复杂的模型在哪里可以找到代码
关键点:
1.使用卷积神经网络做图像分类 2.常见开源代码以及适用的问题
实验:视频人物行为识别
1.基于C3D的视频行为识别方法 2.基于LSTM的视频行为识别方法
3.基于Attention的视频行为识别方法
高频问题:
1.2D卷积与3D卷积 2.视频的时空特征
关键点:
1.C3D网络的构建 2.Attention机制
实操解析与训练
第四阶段:
R-CNN及YOLO实践
实验:目标检测
1.目标检测发展现状及代表性方法
2.两阶段目标检测方法:R-CNN系列模型
3.一阶段目标检测方法:YOLO系列模型
高频问题:
1.提名与分类 2.BBOX实现策略 3.YOLO Loss函数
关键点:
1.提名方法 2.ROI Pooling 3.SPP Net 4.RPN 5.YOLO
实操解析与训练
第五阶段:
RNN实践
实验:股票预测
1.股票数据分析 2.同步预测 3.异步预测
高频问题:
1.历史数据的使用
关键点:
1.构建RNN 2.采用Keras编程实现
实操解析与训练
第六阶段:
Encoder-Decoder实践
实验:去噪分析
1.自编码器 2.去噪自编码器
高频问题:
1.噪声的引入与去除
关键点:
1.设计去噪自编码器
实验:图像标题生成
结合计算机视觉和机器翻译的最新进展,利用深度神经网络生成真实的图像标题。
1.掌握Encoder-Decoder结构 2.学会Seq2seq结构
3.图像CNN +文本RNN 4.图像标题生成模型
高频问题:
1.如何能够根据图像生成文本?
关键点:
1.提取图像特征CNN,生成文本RNN 2.构建Encoder-Decoder结构
实操解析与训练
第七阶段:
GAN实践
实验:艺术家作品生成
1. 生成对抗网络原理 2.GAN的生成模型、判别模型的设计
高频问题:
1.生成模型与判别模型的博弈过程
关键点:
1.掌握GAN的思想与原理 2.根据需求学会设计生成模型与判别模型
实操解析与训练
第八阶段:
强化学习实践
实验:游戏分析
1.游戏场景分析 2.强化学习的要素分析 3.深度强化学习
高频问题:
1.DNN 与DQN 2.探索与利用
关键点:
1.深度强化学习的原理 2.根据实际需求,设计深度强化学习模型
实操解析与训练
第九阶段:
图卷积神经网络实践
实验:社交网络分析
1.图神经网络的原理 2.图卷积神经网络的思想
3.设计图卷积神经网络进行社交网络分析
高频问题:
1.如何从图神经网络的原理转化到实际编程
关键点:
1. 掌握图神经网络原理 2. 图卷积神经网络编程实现
实操解析与训练
第十阶段:
Transformer实践
实验:基于Transformer的对话生成
1. Transformer原理 2. 基于Transformer的对话生成
3.基于 Transformer 的应用
高频问题:
1.如何应用自注意力机制 2.如何应用于自然语言处理与计算机视觉
关键点:
1.self-Attention机制 2.position