深度学习及自动驾驶应用 课件 第8章 基于Transformer的自动驾驶目标检测理论与实践_第1页
深度学习及自动驾驶应用 课件 第8章 基于Transformer的自动驾驶目标检测理论与实践_第2页
深度学习及自动驾驶应用 课件 第8章 基于Transformer的自动驾驶目标检测理论与实践_第3页
深度学习及自动驾驶应用 课件 第8章 基于Transformer的自动驾驶目标检测理论与实践_第4页
深度学习及自动驾驶应用 课件 第8章 基于Transformer的自动驾驶目标检测理论与实践_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Transformer的自动驾驶目标检测理论与实践第八章DeepLearningAndAutonomousDriving深度学习与自动驾驶应用DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第2页8.4Transformer自动驾驶应用8.1Transformer概述8.3VisionTransformer介绍8.2Transformer基本理论8.5实践项目目录ContentDeepLearningAndAutonomousDriving深度学习与自动驾驶应用第3页8.1Transformer概述为什么要用TransformerDeepLearningAndAutonomousDriving深度学习与自动驾驶应用第4页8.1Transformer概述Seq2Seq任务:指的是输入和输出都是序列,且输出长度不确定时采用的模型;这种情况一般是在机器翻译的任务中出现,将一句中文翻译成英文,那么这句英文的长度有可能会比中文短,也有可能会比中文长,所以输出的长度就不确定了。输入的中文长度为4,输出的英文长度为2Seq2Seq任务DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第5页8.1Transformer概述如何处理Seq2Seq任务其实在之前我们使用的是RNN(或者是其的单向或者双向变种LSTM/GRU等)来作为编解码器,RNN模块每次只能够吃进一个输入token和前一次的隐藏状态,然后得到输出。它的时序结构使得这个模型能够得到长距离的依赖关系,但是这也使得它不能够并行计算,模型效率十分低。在没有transformer的时候,我们都是用什么来完成这系列的时序任务的呢?DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第6页8.1Transformer概述Encoder-Decoder模型Seq2Seq任务最常见的是使用Encoder+Decoder的模式,先将一个序列编码成一个上下文矩阵,在使用Decoder来解码。当然,我们仅仅把contextvector作为编码器到解码器的输入。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第7页8.1Transformer概述Attention注意力机制在介绍什么是注意力机制之前,先让大家看一张图片。当大家看到右边这张图片,会首先看到什么内容?当过加载信息映入眼帘时,我们的大脑会把注意力放在主要的信息上,这就是大脑的注意力机制。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第8页8.1Transformer概述Attention注意力机制DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第9页8.1Transformer概述Transformer整体模型架构2017年google的机器翻译团队在NIPS上发表了Attentionisallyouneed的文章,开创性地提出了在序列转录领域,完全抛弃CNN和RNN,只依赖Attention-注意力结构的简单的网络架构,名为Transformer;论文实现的任务是机器翻译。Multi-HeadAttentionAdd&NormInputEmbeddingOutputEmbeddingFeedForwardAdd&NormMaskedMulti-HeadAttentionAdd&NormMulti-HeadAttentionAdd&NormFeedForwardAdd&NormLinearSoftmaxInputsOutputs(shiftedright)PositionalEncodingPositionalEncodingTransformer结构DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第10页8.1Transformer概述每个词的Attention计算每个词的Q会跟整个序列中每一个K计算得分,然后基于得分再分配特征Q:

query,要去查询的K:

key,等着被查的V:

value,实际的特征信息DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第11页8.4Transformer自动驾驶应用8.1Transformer概述8.3VisionTransformer介绍8.2Transformer基本理论8.5实践项目目录ContentDeepLearningAndAutonomousDriving深度学习与自动驾驶应用第12页8.1Transformer概述Attention的优点1.参数少:相比于CNN、RNN,其复杂度更小,参数也更少。所以对算力的要求也就更小。2.速度快:Attention解决了RNN及其变体模型不能并行计算的问题。Attention机制每一步计算不依赖于上一步的计算结果,因此可以和CNN一样并行处理。3.效果好:在Attention机制引入之前,有一个问题大家一直很苦恼:长距离的信息会被弱化,就好像记忆能力弱的人,记不住过去的事情是一样的。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第13页8.2Transformer基本理论Transformer模型黑盒模式从宏观的视角开始首先将这个模型看成是一个黑箱操作。在机器翻译中,就是输入一种语言,输出另一种语言。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第14页8.2Transformer基本理论Transformer模型Encoder-Decoder架构模式那么拆开这个黑箱,我们可以看到它是由编码组件、解码组件和它们之间的连接组成。编码组件部分由一堆编码器(encoder)构成(论文中是将6个编码器叠在一起)。解码组件部分也是由相同数量(与编码器对应)的解码器(decoder)组成的。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第15页8.2Transformer基本理论DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第16页8.2Transformer基本理论编码器所有的编码器在结构上都是相同的,但它们没有共享参数。每个编码器都可以分解成两个子层。每个编码器由两个子层组成:Self-Attention层(自注意力层)和Position-wiseFeedForwardNetwork(前馈网络)DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第17页8.2Transformer基本理论解码器从编码器输入的句子首先会经过一个自注意力(self-attention)层,这层帮助编码器在对每个单词编码时关注输入句子的其他单词。自注意力层的输出会传递到前馈(feed-forward)神经网络中。每个位置的单词对应的前馈神经网络都完全一样(译注:另一种解读就是一层窗口为一个单词的一维卷积神经网络)。解码器中也有编码器的自注意力(self-attention)层和前馈(feed-forward)层。除此之外,这两个层之间还有一个注意力层,用来关注输入句子的相关部分(和seq2seq模型的注意力作用相似)。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第18页8.2Transformer基本理论每个单词都被嵌入为512维的向量,词嵌入过程只发生在最底层的编码器中。所有的编码器都有一个相同的特点,即它们接收一个向量列表,列表中的每个向量大小为512维。在底层(最开始)编码器中它就是词向量,但是在其他编码器中,它就是下一层编码器的输出(也是一个向量列表)。各种向量或张量是怎样在模型的不同部分中,将输入转化为输出的?像大部分NLP应用一样,我们首先将每个输入单词通过词嵌入算法转换为词向量。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第19页8.2Transformer基本理论Transformer的一个核心特性,在这里输入序列中每个位置的单词都有自己独特的路径流入编码器。在自注意力层中,这些路径之间存在依赖关系。而前馈(feed-forward)层没有这些依赖关系。因此在前馈(feed-forward)层时可以并行执行各种路径将输入序列进行词嵌入之后,每个单词都会流经编码器中的两个子层。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第20页8.2Transformer基本理论编码过程编码器会接收一个向量作为输入。编码器首先将这些向量传递到Self-Attention层,然后传递到前馈网络,最后将输出传递到下一个编码器。输入序列的每个单词都经过自编码过程。然后,它们各自通过前向传播神经网络:完全相同的网络,而每个向量都分别通过它。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第21页8.2Transformer基本理论编码过程假如,我们要翻译下面这个句子:Theanimaldidn’tcrossthestreetbecauseitwastootired.这个句子中的it指的是什么?是指animal还是street?对人来说,这是一个简单的问题,但是算法来说却不那么简单。当模型在处理it时,Self-Attention机制使其能够将it和animal关联起来。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第22页8.2Transformer基本理论当我们在编码器(堆栈中的顶部编码器)中对单词”it“进行编码时,有一部分注意力集中在”Theanimal“上,并将它们的部分信息融入到”it“的编码中。编码过程DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第23页8.2Transformer基本理论编码过程计算自注意力的第一步就是从每个编码器的输入向量(每个单词的词向量)中生成三个向量。也就是说对于每个单词,我们创造一个查询向量(Q)、一个键向量(K)和一个值向量(V)。这三个向量是通过词嵌入与三个权重矩阵后相乘创建的。X1与WQ权重矩阵相乘得到q1,就是与这个单词相关的查询向量。最终使得输入序列的每个单词的创建一个查询向量Q、一个键向量K和一个值向量V。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第24页8.2Transformer基本理论

计算得分

将每个值向量乘以softmax分数(这是为了准备之后将它们求和)。

DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第25页8.2Transformer基本理论通过矩阵运算实现自注意力机制

x矩阵中的每一行对应于输入句子中的一个单词。我们再次看到词嵌入向量(512,或图中的4个格子)和q/k/v向量(64,或图中的3个格子)的大小差异。最后,由于我们处理的是矩阵,我们可以用一个公式来计算自注意力层的输出。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第26页8.2Transformer基本理论“多头”注意力(“multi-headed”attention)机制一组Q,K,V得到了一组当前词的特征表达类似卷积神经网络中的filter提取多种特征?DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第27页8.2Transformer基本理论可以看到Multi-HeadAttention输出的矩阵Z与其输入的矩阵X的维度是一样的。“多头”注意力(“multi-headed”attention)机制DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第28页8.2Transformer基本理论“multi-headed”attention全部流程DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第29页8.2Transformer基本理论使用位置编码表示序列的顺序到目前为止,我们对模型的描述缺少了一种理解输入单词顺序的方法。为了解决这个问题,Transformer为每个输入的词嵌入添加了一个向量。这些向量遵循模型学习到的特定模式,这有助于确定每个单词的位置,或序列中不同单词之间的距离。这里的直觉是,将位置向量添加到词嵌入中使得它们在接下来的运算中,能够更好地表达的词与词之间的距离。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第30页8.2Transformer基本理论使用位置编码表示序列的顺序为了让模型理解单词的顺序,我们添加了位置编码向量,这些向量的值遵循特定的模式。如果我们假设词嵌入的维数为4,则实际的位置编码如下:DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第31页8.2Transformer基本理论DecoderDecoder和Encoder中的模块类似,都包含Attention层、前馈网络层、融合归一化层,不同的是Decoder中多了一个Encoder-DecoderAttention层。

Decoder模块的输入输出和解码过程:DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第32页8.2Transformer基本理论DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第33页8.4Transformer自动驾驶应用8.1Transformer概述8.3VisionTransformer介绍8.2Transformer基本理论8.5实践项目目录ContentDeepLearningAndAutonomousDriving深度学习与自动驾驶应用第34页8.3VisionTransformer介绍DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第35页8.3VisionTransformer介绍图片分类的原理背景知识DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第36页8.3VisionTransformer介绍背景知识为什么需要用transformerCNN(如ResNet)是图像分类的最佳解决方案。如果预训练的数据集足够大(至少一亿张图像),则VisionTransformer(ViT)将击败CNN(小幅度)VisionTransformer(ViT)实际上就是Transformer的encode网络。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第37页8.3VisionTransformer介绍VisionTransformer(ViT)提出ViT模型的这篇文章题名为AnImageisWorth16x16Words:TransformersforImageRecognitionatScale,发表于2020年10月份,虽然相较于一些Transformer的视觉任务应用模型(如DETR)提出要晚了一些,但作为一个纯Transformer结构的视觉分类网络,其工作还是有较大的开创性意义的。论文下载链接:/abs/2010.11929

DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第38页8.3VisionTransformer介绍VisionTransformer(ViT)对于一个标准的Transformer模块,要求输入的是token(向量)序列,即二维矩阵[num_token,token_dim]。对于一个图像数据而言,其数据格式为三维矩阵[H,W,C],这明显不是Transformer想要的,所以我们需要进行一个图像预处理步骤。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第39页8.3VisionTransformer介绍VisionTransformer(ViT)先将图片分成NxN的patch块(原始论文是16x16)patch块可以重叠(上图没有重叠,是9x9的patch块)DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第40页8.3VisionTransformer介绍VisionTransformer(ViT)将patch打平,对每个patch进行线性映射,提取特征DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第41页8.3VisionTransformer介绍VisionTransformer(ViT)提取特征DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第42页8.3VisionTransformer介绍VisionTransformer(ViT)类似NLP问题,我们给PatchEmbedding加上了一个位置编码PositionEmbedding。接着我们进行Transformer编码操作,就能反馈得到很多输出。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第43页8.3VisionTransformer介绍VisionTransformer(ViT)将位置编码信息加入提取的特征DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第44页8.3VisionTransformer介绍VisionTransformer(ViT)将位置编码信息加入提取的特征DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第45页8.3VisionTransformer介绍VisionTransformer(ViT)结论:编码有用,但是怎么编码影响不大,干脆用简单的得了2D(分别计算行和列的编码,然后求和)的效果还不如1D的每一层都加共享的位置编码也没啥太大用位置编码信息对准确率的影响DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第46页8.3VisionTransformer介绍VisionTransformer(ViT)

Transformer提取特征DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第47页8.3VisionTransformer介绍VisionTransformer(ViT)

DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第48页8.3VisionTransformer介绍VisionTransformer(ViT)

至于这个TransformerEncoder,实际上是一个标准的Transformer。

当你有这些patch的时候,先进来做一次LayerNorm,然后再做Multi-HeadAttention,然后再LayerNorm,再做一个MLP,这就是一个Transformerblock。然后我们可以把它叠加L次,就得到了我们的TransformerEncoder。

所以说从整体上来看,VisionTransformer的架构还是相当简洁的,它的特殊之处就在于如何把一个图片变成这里的一系列的token。DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第49页8.3VisionTransformer介绍VisionTransformer模型整体思路1.图片切分为patch2.patch转化为embedding3.位置embedding和tokensembedding相加4.输入到Transformer模型5.CLS输出做多分类任务DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第50页8.3VisionTransformer介绍VisionTransformer(ViT)输入输入输入注意力注意力注意力来自输入空间的注意力表达DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第51页8.3VisionTransformer介绍DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第52页8.4Transformer自动驾驶应用8.1Transformer概述8.3VisionTransformer介绍8.2Transformer基本理论8.5实践项目目录ContentDeepLearningAndAutonomousDriving深度学习与自动驾驶应用第53页8.4Transformer自动驾驶应用目标检测DETR

:End-to-EndObjectDetectionwithTransformers第一步是通过一个CNN对输入图片抽取特征,然后将特征图拉直输入TransformerEncoder-Decoder;第二步的TransformerEncoder部分就是使得网络更好地去学习全局的特征;第三步使用TransformerDecoder以及ObjectQuery从特征中学习要检测的物体;第四步就是将ObjectQuery的结果和真值进行二分图匹配(Set-to-SetLoss),最后在匹配上的结果上计算分类Loss和位置回归Loss;DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第54页8.4Transformer自动驾驶应用目标检测DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第55页8.4Transformer自动驾驶应用语义分割StratifiedTransformerfor3DPointCloudSegmentation第一步:输入的三维点云数据首先通过第一层点嵌入模块,以聚合每个点的局部信息;第二步:对于每个查询点,对附近的点进行密集采样,并以分层方式稀疏采样远点作为其关键点;第三步:使用抽样密钥来计算每个查询点的注意力权重,这些权重用于聚合按键中的信息;第四步:聚合信息通过多层Transformer网络传递,以捕获长期依赖关系并生成最终的分段结果DeepLearningAndAutonomousDriving深度学习与自动驾驶应用第56页8.4Transformer自动驾驶应用语义分割DeepLe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论