Page 338 - 《软件学报》2021年第11期
P. 338

3664                               Journal of Software  软件学报 Vol.32, No.11, November 2021

                                                      L=L con +εL GAN                                 (6)
                 其中,ε是损失的比例系数.
                                                       Copy+concatanate

                                                       Copy+concatanate




                                                       Copy+concatanate


                                                       Copy+concatanate







                                    在ImageNet上训练好的VGG编码器       针对VGG编码器设计的U-Net解码

                                      3x3卷积                         3x3卷积反卷积
                                      2x2的最大池化操作
                                      Fig.3    Diagram of a VGG coding based U-Net: VGG-UAE
                                        图 3   基于 VGG 编码的 U-Net: VGG-UAE 示意图

                    网络的训练以 GAN 的方式进行,首先使用生成器 Generator 从低分辨率图像生成高分辨率图像,然后使用
                 ImageNet 数据集上训练好的 VGG 网络提取特征,利用 VGG 特征构建损失函数 L con ;针对 VGG 特征,构建相应
                 解码器组成基于 U-Net 架构的 VGG-UAE 模型,把 VGG-UAE 的重构损失用作损失函数 L GAN ;根据损失函数,利
                 用梯度下降方法更新 VGG-UAE 中的参数和 Generator 中的参数,完成模型的训练.VGG-SRGAN 的训练过程如
                 算法 1 所示.
                    算法 1. VGG-SRGAN 训练算法.其中,VGG feature 为训练好的固定参数的 VGG 网络,ε和λ是超参数.
                    for t=1 to T(迭代次数) do
                      从数据集中取高分辨率图像 Real_H.
                      针对真实的高分辨率图像 Real_H,对其进行 4×降采样,得到低分辨率图像 Input_L.
                      #由低分辨率图像生成高分辨率图像 Fake_H 和 VGG 特征:
                                  Fake_H=Generator(Input_L); VGG feature (Fake_H); VGG feature (Real_H).
                      #构建基于内容的损失 L con :
                                                                             2
                                          L con =[VGG feature (Real_H)−VGG feature (Fake_H)] .
                      #构建 VGG-UAE 的能量函数:
                                              U(x)=AE_Loss(VGG feature (Image_H)).
                      #构建对抗正则化损失 L GAN :
                                                                                      2
                                 L GAN =E x~Input_L [U(Generator(x))]−E x~Real_H [U(x)]+λE x~Real_H [||∇ θ U(x)|| ].
                      #根据损失函数计算 Generator 参数的梯度:
                                 ∇  θ Generator  {[VGG feature (Generator (Input _ ))]L  2  −  E x Input∼  _ L [ (U Generator ( ))]}x  .
                      #根据损失函数计算 VGG-UAE 中能量 U 的参数的梯度:
                                ∇  θ U  {E x Real∼  _ H [ ( )]U x −  E x Input∼  _ L [ (U Generator ( ))]x  +  λ E x Real∼  _ H [|| ∇  θ U ( ) || ]}x  2  .
   333   334   335   336   337   338   339   340   341   342   343