计算机视觉中的编码-解码器结构总结(持续更新)

文章目录

  • NLP领域的编码解码器结构
  • 机器学习中的编码器
    • 自动编码器
  • 视觉领域中的编码解码器结构

编码器-解码器结构:编码器原始输入信号转化为中间格式,然后解码器将中间格式转化为目的信号。在NLP领域的机器翻译、摘要提取等部分,在视觉领域的目标检测、场景感知,在传统的机器学习中MLP等等都是Encoder-Decoder的结构。

NLP领域的编码解码器结构

直接用一个函数完成数据转化,可能会存在困难。例如对机器翻译来说输入和输出的长度是不固定的,二者还可能不相等,因此通过一个中间格式来完成输出与输入的转化。

对于NLP任务,Embedding是从语义空间到向量空间的映射,语义相近的两个词汇在向量空间的位置也比较接近,编码器-解码器网络是一个成功的翻译模型,接受一个序列作为输入,并将序列中的信息编码作为中间表示,解码器将中间表示解码为目标语言。
计算机视觉中的编码-解码器结构总结(持续更新)_第1张图片
如上图所示,RNN中的Seq-to-Seq结构,处理机器翻译问题,将原始语言向量输入通过RNN编码为中间形式,后面通过Decoder解码为另一种语言向量序列。

机器学习中的编码器

自动编码器

最简单的,PCA在机器学习领域作为一种降维的工具,可以将样本投影在新的坐标系下,相当于一种新的中间表示形式,我们后面用线性回归或者SVM进行分类等任务,这时候机器学习模型扮演解码器的结构,这是一种非自动编码器,需要先人工干预编码,然后训练解码器。
计算机视觉中的编码-解码器结构总结(持续更新)_第2张图片

如上图所示,自动编码器(Auto-Encoder,简称AE)是一种特殊的神经网络,用于特征提取和数据降维络。最简单的自动编码器由一个输入层,一个隐含层,一个输出层组成。隐含层的映射充当编码器,输出层的映射充当解码器。训练时编码器对输入向量进行映射,得到编码后的向量;解码器对编码向量进行映射,得到重构后的向量,它是对输入向量的近似。

编码器和解码器同时训练,训练的目标是最小化重构误差,即让重构向量与原始输入向量之间的误差最小化,这与PCA非常类似。因此样本x的标签值就是样本自身。训练完成之后,在预测时只使用编码器而不再需要解码器,编码器的输出结果被进一步使用,用于分类,回归等任务。

视觉领域中的编码解码器结构

  • Transfuser:多模态领域
    计算机视觉中的编码-解码器结构总结(持续更新)_第3张图片
    如上图所示,模型将图像和雷达信息编码成512长度的一维向量,表示场景语义信息,后面用MLP组合RNN进行解码,预测车辆的行动轨迹。
    这种结构,其实就是将CNN产生的局部注意力图用作transformer计算全局注意力,从而达到快速收敛和稳定的效果

  • SRN-DeblurNet:高质量图像生成
    计算机视觉中的编码-解码器结构总结(持续更新)_第4张图片
    对原图像(带有噪声、低分辨率)编码并解码生成高分辨率去噪图片。

  • DETR:目标检测
    计算机视觉中的编码-解码器结构总结(持续更新)_第5张图片

利用CNN和Encoder作为编码器生成中间形式的查询向量,然后通过Decoder解码用来FFN预测目标信息。
利用CNN做预处理的优点是,虽然牺牲了浅层部分的全局注意力,但是CNN特征图可以带来有效的局部信息和较少的噪声(这里的噪声是指无关的像素),我认为是起到一种过滤器的效果。

你可能感兴趣的:(深度学习,场景感知与理解,计算机视觉,自然语言处理,人工智能)