概要

SRGAN的特点之一就是引进了损失感知函数,由此提升了超分辨率之后的细节信息。本文主要像您介绍SRGAN使用的损失函数,及其Keras实现。

损失函数公式

这是原文中给出的损失函数。
容易看出,此损失函数包括两部分,第一部分是感知损失,第二部分是正则化损失。

感知损失

感知损失是由李飞飞团队提出的一种损失函数。
感知损失分了两部分,内容损失和对抗损失。

内容损失

论文中给出的内容损失如下:

论文中指出:传统的超分辨率任务中直接使用的均方根误差(MSE)的损失函数,虽然有助于提高超分辨率任务的峰值信噪比(PSNR),但是对于图像的细节却是起到了模糊作用。本文使用的内容损失,是将生成器生成的假高分辨率图像和真实的高分辨率图像送入VGG19网络中进行特征提取,然后在提取的特征图上再使用均方根误差。这里并非是利用全部的VGG19网络提取特征,而是仅仅利用其中一部分。所以对应不同层数的VGG19网络进行提取。例如使用前9层进行特征提取,或者前7层进行特征提取。公式下方也讲了:这里的i和j分别就是指第i层最大池化前的第j个卷积层。作者进行了实验,在VGG网络不同位置提取出的特征图,并将其均方根误差作为内容损失进行了训练。作者选取的层数如下:

SRGAN-MSE是直接使用MSE在假高分图像和真高分图像之间计算。SRGAN-VGG22:是利用第二个最大池化前的第二个卷积层之前的网络进行特征提取,在假高分图像和真高分图像进行MSE均方根误差的计算。也就是VGG19网络的前4层进行特征提取。SRGAN-VGG54:是利用第五个最大池化前的第四个卷积层之前的网络进行特征提取,在假高分图像和真高分图像进行MSE均方根误差的计算。也就是VGG网络的前16层的输出。实验结果表明,SRGAN-VGG54的细节信息最好,人眼的观赏效果也最好。显然,直接使用MSE的效果是不佳的。VGG22和VGG54效果是逐渐提升的。

对抗损失

论文中的对抗损失如下:

这实际上是GAN作者自己提出的一种改进型的生成器损失函数。最小化此式,也就是最大化判别器给予生成器所生成的图像为真的概率。

正则化损失

文章中使用的正则化损失是一种基于全变分范数的正则化损失函数。

这种正则化损失倾向于保存图像的光滑性,防止图像出来变得过于像素化。

代码的实现

vgg损失(内容):

损失函数_SRGAN损失函数(目标函数)详解相关推荐

  1. python如何画损失函数图_Pytorch 的损失函数Loss function使用详解

    1.损失函数 损失函数,又叫目标函数,是编译一个神经网络模型必须的两个要素之一.另一个必不可少的要素是优化器. 损失函数是指用于计算标签值和预测值之间差异的函数,在机器学习过程中,有多种损失函数可供选 ...

  2. YOLOv1的损失函数和关键概念详解

    Loss function详解 在loss function中,前面两行表示localization error(即坐标误差),第一行是box中心坐标(x,y)的预测,第二行为宽和高的预测.这里注意用 ...

  3. Pytorch损失函数torch.nn.NLLLoss()详解

    在各种深度学习框架中,我们最常用的损失函数就是交叉熵(torch.nn.CrossEntropyLoss),熵是用来描述一个系统的混乱程度,通过交叉熵我们就能够确定预测数据与真是数据之间的相近程度.交 ...

  4. 损失函数和成本函数详解

    损失函数(误差函数) 概念:损失函数是再单个训练样本中定义的,该样本中可以有多个特征参数. 作用:可以用来衡量算法的运行情况,通过定义损失函数L来衡量预测值的输出y^~\hat{y}~ y^​ 和真实 ...

  5. Lesson13【加餐】 损失函数的随机创建现象详解

    [Lesson 13 加餐]损失函数的随机创建现象详解   接下来,我们通过手动创建一个实例,来观察在小批梯度下降过程中,损失函数是如何根据数据数据变化而变化的,这里既是作为本节内容的一个补充,同时也 ...

  6. 图像质量损失函数SSIM Loss的原理详解和代码具体实现

    本文转自微信公众号SIGAI 文章PDF见: http://www.tensorinfinity.com/paper_164.html http://www.360doc.com/content/19 ...

  7. DL之AlexNet:AlexNet算法的架构详解、损失函数、网络训练和学习之详细攻略

    DL之AlexNet:AlexNet算法的架构详解.损失函数.网络训练和学习之详细攻略 相关文章 Dataset:数据集集合(CV方向数据集)--常见的计算机视觉图像数据集大集合(建议收藏,持续更新) ...

  8. Keras深度学习实战(4)——深度学习中常用激活函数和损失函数详解

    Keras深度学习实战(4)--深度学习中常用激活函数和损失函数详解 常用激活函数 Sigmoid 激活函数 Tanh 激活函数 ReLU 激活函数 线性激活函数 Softmax 激活函数 损失函数 ...

  9. Tensorflow 2.x(keras)源码详解之第十二章:keras中的损失函数之BinaryCrossentropy详解

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

最新文章

  1. SQL Server基础操作(此随笔仅作为本人学习进度记录七 !--存储过程)
  2. leaflet大量marker卡顿_leaflet如何加载10万数据
  3. 命令行刷新Magento索引管理
  4. idea撤销与恢复快捷键_IntelliJ IDEA 重做快捷键和配置哲学
  5. [译] ASP.NET 生命周期 – ASP.NET 上下文对象(八)
  6. java rotate怎么用_jQuery旋转插件jqueryrotate用法详解
  7. python try expect 多个except3.7_python try小例子
  8. 【BZOJ3551】Peaks加强版,主席树+kruskal重构+dfs序+倍增思想
  9. Hash (散列,哈希)
  10. pcm输出还是源码输出_LOL手游:上单英雄怎么选?还是推荐玩“狗头”,有肉又有输出...
  11. java—将数据库读取的list转tree
  12. Rhinoceros技巧:有关曲线和曲面的分析
  13. BZOJ 4552 [Tjoi2016Heoi2016]排序 ——线段树 二分答案
  14. 高中计算机评课,高二信息技术评课记录
  15. Flash MX本地保存数据的三种方法
  16. 【新增esp8266设备订阅命令主题、响应平台命令、命令处理】esp8266接入华为云物联网平台(IOTDA)2.0
  17. python输入学生成绩计算平均值_从用户输入中计算和、积和平均值
  18. 尤雨溪:TypeScript不会取代JavaScript
  19. 在微信朋友圈冲浪必备的心灵免疫力
  20. 第二证券|医药板块短期轮动加快 机构看好后市机会

热门文章

  1. oss图片跨域问题_图片存储解决方案-阿里云对象存储
  2. python基础知识点小结(2021/2/9)
  3. 词云图 - WorldCloud - Python代码实现
  4. zillow房价预测比赛_Kaggle竞赛 —— 房价预测 (House Prices)
  5. DIN+DIEN,机器学习唯一指定涨点技Attention
  6. 重磅!吴恩达家的NLP课程发布啦!
  7. 图谱实战 | 基于半结构化百科的电影KG构建、查询与推理实践记录
  8. 论文浅尝 | 利用Lattice LSTM的最优中文命名实体识别方法
  9. SQuirreL SQL Client3.8 连接 HIVE2.2
  10. Nim游戏(初谈博弈)