【深度学习】Loss Functions for Neural Networks for Image Processing

2023-11-05

在目前的深度学习中,业界主流主要还是把调整深度学习网络结构作为主要的工作重心,即使损失函数(loss functions)对整个网络的训练起着十分重要的作用。

Nvidia和MIT最近发了一篇论文《loss functions for neural networks for image processing》则详细探讨了损失函数在深度学习起着的一些作用。通过对比L1,L2,SSIM,MS-SSIM四种损失函数,作者也提出了自己的损失函数(L1+MS-SSIM)。

在目前研究中,L2范数基本是默认的损失函数,因为好处太多了。比较直观的就是L2损失函数可微,且凸。而且L2损失函数的网络往往会对峰值性噪比PSNR有针对性的提升。然而PSNR跟人类对图像感知(HVS)的关系其实并不紧密。当然,事实也存在着一些跟HVS更加紧密的损失函数,但是他们往往不可导,这使得在程序上处理起来不是那么的容易。于是在本文实验中,作者仅选取了两种与HVS相关的损失函数:SSIM 与 MS-SSIM。

L1损失函数

L1损失函数可简单表示如下:
这里写图片描述
他的微分形式也很简单:
这里写图片描述

L1损失函数与L2损失函数有着显著的差别,他不会对large errors进行惩罚,而且他们的收敛曲线也不同。然而出乎意料的是,L1损失函数的结果比其他几种方法都有明显的改善。

SSIM损失函数

SSIM可定义如下:
这里写图片描述

SSIM越大,图像的视觉效果一般来说越好。
因此为了做成minimize,作者将ssim的损失函数定义为:
这里写图片描述
因此,则有:
这里写图片描述
但是SSIM是必要需要neighborhood pixel进行参与计算求取均值和标准差的,这就导致边界的pixel都无法进行计算,因此,作者重新定义SSIM的损失函数:
这里写图片描述
其中p^hat是指patch P 中的center pixel。

则SSIM的反向微分为:
这里写图片描述
这里写图片描述
这里写图片描述

MS-SSIM损失函数

避免去调节高斯核这里写图片描述, 作者又提出了multi-scale version of SSIM – MS-SSIM。
(关于这个SSIM中的高斯核,可以去看SSIM的相关文献)

MS-SSIM定义如下
这里写图片描述
则其损失函数则为:
这里写图片描述
微分形式:
这里写图片描述

Mix: L1+MS-SSIM 损失函数

这里写图片描述

作者对alpha设置为0.84

实验

这里写图片描述

这里写图片描述

联合训练L1+L2的收敛曲线
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【深度学习】Loss Functions for Neural Networks for Image Processing 的相关文章

随机推荐

  • 设计模式(4)-原型模式(Prototype Pattern)

    所谓原型模式就是从原型实例去复制克隆出新的实例 而绝不是去从类去实例化 就好比打飞机的游戏 我们操作的主角飞机只有一架 可以用单例模式去实现 而敌机好多都是一样的 如果每出一个敌机我们就去new一个敌机的对象 一下来个三十个 就去new三十
  • 【傅里叶级数与傅里叶变换】数学推导——1、基础知识点回顾及[Part1:三角函数的正交性]介绍

    文章内容来自DR CAN关于傅里叶变换的视频 本篇文章提供了一些基础知识点 比如三角函数常用的导数 三角函数换算公式等 文章全部链接 基础知识点 Part1 三角函数系的正交性 Part2 T 2 的周期函数的傅里叶级数展开 Part3 周
  • 42-Golang中的单元测试

    Golang中的单元测试 需求 传统方法 基本介绍 单元测试快速入门总结 综合案例 需求 在工作中 我们会遇到这样的情况 就是去确认一个函数 或者一个模块的结果是否正确 传统方法 在main函数中 调用addUpper函数 看看实际输出的记
  • 内网能ping通telnet 通,不能访问解决

    内网能PING通TELNET通不能访问解决 遇到一个离奇故障 内网 两个主机在同一IP段内 能互相PING通 TELNET对方的WEB服务器端口 通 但用IE访问时不能 显示HTTP400 这明显是客户端系统的问题啊 但如何解决呢 我强烈怀
  • LeetCode 1233. 删除子文件夹(C++)

    思路 1 首先能想到这种判断字符串前缀的题目可以使用前缀树 2 对字符串字典序排序 那么就能满足 一个子文件夹的左边要么是同父文件夹的子文件夹 要么就是他的父文件夹 同时 第一个文件夹一定是父文件夹 那么就可以建立一个父文件夹地址 每次便利
  • vs2019 中文离线安装包下载,类似ISO,不用联网安装vs2019企业版

    vs2019 中文离线安装包下载 类似ISO 不用联网安装vs2019企业版 前言 我们现在微软官方网站下载的安装包一般也就1 2兆 运行这个小安装包的程序时 才真正在网站上下载vs2019 目前的vs2019企业版 专业版 社区版都要20
  • FISCO BCOS 2.9.1 从0部署到简单使用的CRUD接口

    FISCO BCOS 2 9 1 从0部署到简单使用CRUD接口 文章目录 FISCO BCOS 2 9 1 从0部署到简单使用CRUD接口 前言 1 部署fisoc bcos 2 9 1环境 1 1 安装centos依赖 1 2 创建fi
  • Hibernate+spring缓存机制配置

    在applicationContext xml文件中添加以下代码
  • 关于Tp中图片路径的问题

    图片一般放在Public 目录下 在模板文件中引用图片时 src PUBLIC 图片Public 下面的路径 注意在linux下面要区分大小写 windows是不用区分也能识别的 部署服务器上后要严格区分大小写
  • vue之websocket聊天功能实现

    一 首先配置全局websocket 创建webSocket js global js export default ws setWs function newWs this ws newWs main js引入 import webSock
  • iPhone手机使用:微信提示“运行内存不足导致该小程序无法使用“解决方法

    突然发现遇到的一个很诡异的情况 通过分析 解决了 分享一下 如图所示 通过iPhone XR打开微信小程序的时候 微信突然提示 运行内存不足导致该小程序无法使用 然后点击 确定 按钮之后 就关闭了 而且查看手机内存128G的还剩下70G没有
  • org.apache.hive.com.esotericsoftware.kryo.kryoexception: encountered unregistered class id 错误解决办法

    执行hive 任务的时候 有些任务会报下列错误 hive 0 14 版本才会有这个问题 任务重做之后可能又会成功 1 错误信息 hdfs nameservice1 tmp hive dbs 9c29873a 664f 45a4 87f5 a
  • 语音合成方法的主要分类

    语音合成的研究已有多年的历史 现在研究出的语音合成方法的分类 从技术方式讲 可分为波形合成法 参数合成法 和规则合成方法 从合成策略上讲可分为频谱逼近和波形逼近 1 波形合成法 波形合成法一般有两种形式 一种是波形编码合成 它类似于语音编码
  • Redis 6.0 新功能

    1 支持 ACL 1 1 ACL 简介 官网 https redis io topics acl Redis ACL 是访问控制列表 Access Control List 的缩写 该功能允许根据可以执行的命令和可以访问的键来限制某些连接
  • String包含的方法

    public class TestString public static void main String args String s1 new String abc String s2 abc String s3 ABC String
  • 2021-05-28

    什么是散列表 散列表 散列表 Hash table 也叫哈希表 是根据键 Key 而直接访问在内存存储位置的数据结构 也就是说 它通过计算一个关于键值的函数 将所需查询的数据映射到表中一个位置来访问记录 这加快了查找速度 这个映射函数称做散
  • 使用Qt编写模块化插件式应用程序

    动态链接库技术使软件工程师们兽血沸腾 它使得应用系统 程序 可以以二进制模块的形式灵活地组建起来 比起源码级别的模块化 二进制级别的模块划分使得各模块更加独立 各模块可以分别编译和链接 模块的升级不会引起其它模块和主程序的重新编译 这点对于
  • RabbitMQ--基础--10.2--死信队列

    RabbitMQ 基础 10 2 死信队列 1 死信队列 DLX queue 当消息在一个队列中变成死信之后 它能重新被发送到另一个交换机中 这个交换机就是 死信交换机 绑定 死信交换机 DLX Exchange 的队列就称之为死信队列 死
  • 语句执行顺序对判断语句条件的影响

    对比相同的输出结果下 不同的语句执行顺序对判断语句条件的影响 public class Homework1 public static void main String args 输出1 100偶数 每5个一行 一行中的每个数字之间使用逗号
  • 【深度学习】Loss Functions for Neural Networks for Image Processing

    在目前的深度学习中 业界主流主要还是把调整深度学习网络结构作为主要的工作重心 即使损失函数 loss functions 对整个网络的训练起着十分重要的作用 Nvidia和MIT最近发了一篇论文 loss functions for neu