出处:Paddle文档平台 - 编码器和解码器

1. Encoder

Encoder目标是将输入序列编码成低维的向量表示或embedding,映射函数如下:

$$\begin{equation}V\to R^{d}\end{equation} \tag{1}$$

即将输入V映射成embedding $z_i\in R^{d}$,如下图所示:

Encoder一般是卷积神经网络,主要由卷积层,池化层和BatchNormalization层组成。卷积层负责获取图像局域特征,池化层对图像进行下采样并且将尺度不变特征传送到下一层,而BN主要对训练图像的分布归一化,加速学习。(Encoder网络结构不局限于卷积神经网络)

以人脸编码为例,Encoder将人脸图像压缩到短向量,这样短向量就包含了人脸图像的主要信息,例如该向量的元素可能表示人脸肤色、眉毛位置、眼睛大小等等。编码器学习不同人脸,那么它就能学习到人脸的共性:

2. Decoder

Decoder目标是利用Encoder输出的embedding,来解码关于图的结构信息。

输入是Node Pair的embeddings,输出是一个实数,衡量了这两个Node在中的相似性,映射关系如下:

$$\begin{equation}R^{d} * R^{d}\to R^{+}\end{equation}. \tag{1}$$

Decoder对缩小后的特征图像向量进行上采样,然后对上采样后的图像进行卷积处理,目的是完善物体的几何形状,弥补Encoder当中池化层将物体缩小造成的细节损失。

以人脸编码、解码为例,Encoder对人脸进行编码之后,再用解码器Decoder学习人脸的特性,即由短向量恢复到人脸图像,如下图所示:

Last modification:September 18th, 2021 at 11:12 pm