一、ECAGAN:基于通道注意机制的文本生成图像方法
文章来源:计算机工程 2022年4月 引用格式:张云帆、易瑶华、汤梓伟、王新宇.基于通道注意机制的文本生成图像方法[J].2022年48日(04)计算机工程:206-212 222.DOI:10.19678/j.issn.1000-3428.0062998.
1.1、主要创新
在文本生成图像任务中及,基于动态注意力机制生成对抗网络(DMGAN),在内容感知上引入采样模块和通道注意力卷积模块,提出新的文本生成图像方法 。 主要创新点有:
- 采用基于内容感知的上采样方法,通过输入特征图计算重组卷积核,采用重组卷积核和特征图进行卷积操作,确保语义对齐;
- 利用通道注意机制学习特征图各特征通道的重要性,突出重要特征通道,抑制无效信息,丰富生成图像的细节;
- 结合条件增强和感知损失函数辅助训练,增强训练过程的鲁棒性。
1.2、主要框架
主体结构仍然相似StackGAN 网络结构可分为三层堆叠式,低分辨率图像生成阶段的生成器 64×64 图像精炼阶段的低分辨率图像和生成器 128×128 像素和 256×256像素图像。
1.2.1.低分辨率图像生成阶段
文本编码器阶段与StackGAN、AttnGAN、DMGAN等等,通过文本编码器生成句子特征和单词特征,拼接随机噪声后的句子特征FC输入到(CAUPBlock)在输入特征图上采样后,形成第一阶段图像。
由自适应卷积核预测模块和内容感知特征重组模块组成:
在核预测模块中,特征图通过内容编码器,Reshape和归一化得到为 S H × S W × k u p 2 SH × SW × k^2_{up} SH×SW×kup2重组卷积核。简单地说,将特征图的每个区域与相应预测的卷积核作为点积。
特征图如下 R 输入后,自适应卷积核预测模块 ψ 中 对输出特征图 R′每个区域 l′预测出卷积核 γ l γ_l γl,然后原特征图在内容感知特征重组模块 ξ 中和预测得到的卷积核进行点乘得到结果 γ l ′ = ψ ( Z ( R l , k e n c o d e r ) ) R l ′ ′ = ξ ( Z ( R l , k u p ) , γ l ′ ) \begin{array}{l} \gamma_{l^{\prime}}=\psi\left(Z\left(R_{l}, k_{\mathrm{encoder}}\right)\right) \\ R_{l^{\prime}}^{\prime}=\xi\left(Z\left(R_{l}, k_{\mathrm{up}}\right), \gamma_{l^{\prime}}\right) \end{array} γl′=ψ(Z(Rl,kencoder))Rl′′=ξ(Z(Rl,kup),γl′),其中 Z ( R l , k u p ) Z(R_l,k_{up}) Z(Rl,kup)表示特征图中点l周围的 k u p × k u p k_{up}×k_{up} kup×kup的子区域。 经过上采样之后得到特征图输入生成器,经过带通道注意力机制的卷积运算生成图像。 注意力卷积模块通过通道注意力对特征图进行加权,使生成图像细节更丰富,通道注意力的实现不再赘述,具体可以看原文。
1.2.2、图像精炼阶段
图像精炼阶段与AttnGAN很相似,利用动态注意力层计算词向量中每个单词与图像子区域的相关性,然后根据相关性计算图像子区域的注意力权重,最后根据特征图的注意力权重控制特征图的更新,得到新的特征图然后进行上采样,放大图像。()
1.3、损失函数
生成器损失函数形式如下:
L G = ∑ ( L G i + λ 1 L p e r ( I i ′ , I i ) ) + λ 2 L C A + λ 3 L D A M S M L_{G}=\sum\left(L_{G_{i}}+\lambda_{1} L_{\mathrm{per}}\left(I_{i}^{\prime}, I_{i}\right)\right)+\lambda_{2} L_{\mathrm{CA}}+\lambda_{3} L_{\mathrm{DAMSM}} LG=∑(LGi+λ1Lper(Ii′,Ii))+λ2LCA+λ3LDAMSM
L G i L_{Gi} LGi表示各级生成器损失函数; L p e r L_{per} Lper表示感知损失函数 ; L C A L_{CA} LCA 表示条件增强损失函数 ; L D A M S M L_{DAMSM} LDAMSM 表示DAMSM模块损失函数。
L G i = − 1 2 E x ∼ p ϵ [ log a D i ( x i ^ ) ] ⏟ unconditional loss − 1 2 E x ∼ p σ , [ log a D i ( x ^ i , s ) ] ⏟ conditional loss L_{G_{i}}=\underbrace{-\frac{1}{2} E_{x \sim p_{\epsilon}}\left[\log _{a} D_{i}\left(\widehat{x_{i}}\right)\right]}_{\text {unconditional loss }} \underbrace{-\frac{1}{2} E_{x \sim p_{\sigma},}\left[\log _{a} D_{i}\left(\widehat{x}_{i}, s\right)\right]}_{\text {conditional loss }} LGi=unconditional loss −21Ex∼pϵ[logaDi(xi )]conditional loss −21Ex∼pσ,[logaDi(x i,s)]
L D i = − 1 2 E x ∼ p datu log a D i ( x i ) − 1 2 E x ∼ p σ i log a ( 1 − D i ( x i ^ ) ) ⏟ unconditional loss − 1 2 E x ∼ p datu log a D i ( x i , s ) − 1 2 E x ∼ p σ i log a ( 1 − D i ( x ^ i , s ) ) ⏟ conditional loss \begin{array}{l} L_{D_{i}}= \\ \underbrace{-\frac{1}{2} E_{x \sim p_{\text {datu }}} \log _{a} D_{i}\left(x_{i}\right)-\frac{1}{2} E_{x \sim p_{\sigma_{i}}} \log _{a}\left(1-D_{i}\left(\widehat{x_{i}}\right)\right)}_{\text {unconditional loss }} \\ \underbrace{-\frac{1}{2} E_{x \sim p_{\text {datu }}} \log _{a} D_{i}\left(x_{i}, s\right)-\frac{1}{2} E_{x \sim p_{\sigma_{i}}} \log _{a}\left(1-D_{i}\left(\widehat{x}_{i}, s\right)\right)}_{\text {conditional loss }} \end{array} LDi=unconditional loss −21Ex∼pdatu logaDi(xi)−21E