CNN图像处理常用损失函数对比评测
来源:arXiv
编译:weakish
尽管早在上世纪80年代末,神经网络就在手写数字识别上表现出色。直到近些年来,随着深度学习的兴起,神经网络才在计算机视觉领域呈现指数级的增长。现在,神经网络几乎在所有计算机视觉和图像处理的任务中都有应用。
相比各种层出不穷的用于计算机视觉和图像处理的新网络架构,这一领域神经网络的损失函数相对而言并不那么丰富多彩。大多数模型仍然使用L2损失函数(均方误差)。然而,L2损失函数的效果是否真的那么好呢?其他损失函数表现如何?下面我们将简单介绍常用的图像处理损失函数,并比较其在典型图像处理任务上的表现。
L1、L2损失函数
最容易想到的损失函数的定义,就是逐像素比较差异。为了避免正值和负值相互抵消,我们可以对像素之差取绝对值或平方。
取绝对值就得到了L1损失函数:
取平方则得到了L2损失函数:
和L1相比,L2因为取平方的关系,会放大较大误差和较小误差之间的差距,换句话说,L2对较大误差的惩罚力度更大,而对较小误差更为容忍。
除此之外,L1和L2基本上差不多。
实际上,Nvidia的研究人员Hang Zhao等尝试过交替使用L1和L2损失函数训练网络(arXiv:1511.08861v3),发现随着训练的进行,在测试集上的L2损失都下降了。
橙:前半段L1、后半段L2;蓝:前半段L2、后半段L1
顺便提下,从上图可以看到,前半段L2损失陷入了局部极小值。
不管是L1损失函数,还是L2损失函数,都有两大缺陷:
假定噪声的影响和图像的局部特性是独立的。然而,人类的视觉系统对噪声的感知受局部照度、对比、结构的影响。
假定噪声接近高斯白噪声,然而这一假定并不总是成立。
SSIM、MS-SSIM损失函数
为了将人类视觉感知纳入考量,可以使用基于SSIM或MS-SSIM的损失函数。SSIM、MS-SSIM是综合了人类主观感知的指标。
SSIM(structural similarity,结构相似性)的直觉主要是:人眼对结构(structure)信息很敏感,对高亮度区域(luminance)和“纹理”比较复杂(contrast)的区域的失真不敏感。MS-SSIM(Multi-Scale SSIM,多尺度SSIM)则额外考虑了分辨率这一主观因素(例如,高分辨率的视网膜显示器上显而易见的失真,在低分辨率的手机上可能难以察觉)。
相应地,基于SSIM的损失函数的定义为:
不过,由于损失函数通常配合卷积网络使用,这就意味着计算损失函数的时候其实只用计算中央像素的损失,即:
通过上述中央像素损失函数训练所得的卷积核,仍将应用于图像中的每个像素。
同理,基于MS-SSIM的损失函数为:
另外,我们知道,损失函数除了要准确地表达模型的目标之外,还需要是可微的,这样才能通过基于梯度下降的方法在反向传播阶段训练。显然,L1和L2是可微的。
事实上,基于SSIM和MS-SSIM的损失函数也同样是可微的。这里省略具体的推导过程,直接给出结论。
对基于SSIM的损失函数而言:
其中,l和cs分别为SSIM的第一项和第二项,其梯度为:
其中,Gσ_G为像素的高斯系数。这里我们看到,尽管之前的损失函数只考虑了中央像素,但因为在计算梯度的时候,实际上需要像素的高斯系数,因此误差仍然能够反向传播至所有像素。
相应地,基于MS-SSIM的损失函数的梯度计算公式为:
不过,由于基于MS-SSIM的损失函数需要在每个尺度上都重复算一遍梯度,会大大拖慢训练速度(每一次迭代都相当于M次迭代),因此实践中往往转而采用某个逼近方法计算。例如,使用M组不同的Gσ_G值作为替代,每组值为前一组的1/2.
评测
Hang Zhao等在JPEG去噪、去马赛克,超分辨率重建,JPEG去区块效应等场景对比了不同损失函数的效果。
去噪、去马赛克
上图中的BM3D代表CFA-BM3D,为当前最先进的降噪算法。我们看到,在天空这样的平坦区域(d),L2损失函数出现了污迹失真(splotchy artifact)。
超分辨率
仔细观察下图蝴蝶翅膀的黑带处,可以看到L2出现了光栅失真(grating artifacts)。
同样,下图女孩的面部,也可以观察到L2的光栅失真。
去区块
仔细观察建筑物边缘的区块,可以看到L1比L2去区块效果要好。
天空区域的区块效应更明显,相应地,L1在去区块方面表现优于L2这点就更明显了。
更多去区块的例子印证了我们上面的观察。
混合损失函数
你应该已经注意到了,上面的对比图中有一个“Mix”,而且事实上它是看起来效果最好的那个。这个“Mix”其实是Hang Zhao等提出的混合了MS-SSIM和L1得到的损失函数:
这个混合损失函数的定义很简单,基本上就是MS-SSIM和L1的加权和,只不过因为MS-SSIM反向传播误差时需要用到G高斯分布参数,因此在L1部分也分素相乘相应的分布参数而已。
Hang Zhao等经过一些试验,将α定为0.84,使两部分损失的贡献大致相等(试验发现,α的微小变动对结果的影响不显著)。
以上我们已经从视觉上演示了MS-SSIM+L1混合损失函数效果最佳。定量测试也表明,在多种图像处理任务上,基于多种图像质量指标,总体而言,混合损失函数的表现最好。
网络架构
上述试验所用的网络架构为全卷积神经网络(CNN):
输入为31x31x3.
第一个卷积层为64x9x9x3.
第二个卷积层为64x5x5x64.
输出卷积层为3x5x5x64.
内卷积层的激活函数为PReLU。
数据集
训练集取自MIT-Adobe FiveK数据集,共700张RGB图像,尺寸调整为999x666. 测试集取自同一数据集,共40张图像。
结语
总结一下以上评测:
在很多场景下,L2损失函数的表现并不好。有时可以尝试下同样简单的L1损失函数,说不定能取得更好的效果。
由于未考虑到主观感知,很多场景下,基于SSIM或MS-SSIM的损失函数能取得比L1、L2更好的效果。
结合MS-SSIM和L1通常会有奇效。
总之,虽然L2损失函数是用于图像处理的神经网络事实上的标准,但也不可迷信,不假思索地选用L2可能会错过更优的选择。
来自 论智 已获取授权
作者 weakish
编辑 zenRRan 稍作修改
IELTS a bit
inescapable adj. 不可避免的;逃脱不了的
expiry n. 满期,逾期;呼气;终结
encompass vt. 包含;包围;围绕;完成
gadget n. 小玩意;小器具;小配件;诡计
inaudible adj. 听不见的;不可闻的
推荐阅读:
一大批历史精彩文章啦
整理了自己关于机器学习,深度学习,python,NLP,pytorch,linux,数学基础等精彩文章。
欢迎关注深度学习自然语言处理公众号,我会每天更新自己在机器学习,深度学习,NLP,CV,linux,python以及各种数学知识学习的一点一滴!再小的人也有自己的品牌!期待和你一起进步!
长按识别二维码
CNN图像处理常用损失函数对比评测相关推荐
- 常用损失函数(L1、L2、SSIM和MS-SSIM)对比简介
https://research.nvidia.com/publication/loss-functions-image-restoration-neural-networks 常用损失函数(L1.L ...
- android手机评测,Android手机 三大浏览器对比评测
随着Android系统的不断升温,国内的Android手机的销量已经出现井喷之势,作为智能手机,我们最常用的功能便是上网,也就是浏览网页,所以手机浏览器已经成为了Android智能手机的必备利器. 在 ...
- 红米note2报告android,红蓝之争 魅蓝Note 2/红米Note对比评测
1魅蓝Note 2对比红米Note 虽然每次小米发布新品总是会引得一众厂商群起而攻之,不过说起来还是每次都不算主动的魅族最有这样的资格:见证了太多这两家的恩恩怨怨,魅族也终于在去年全线压上,针对小米的 ...
- sht20中写用户寄存器_数字输出温湿度传感器HTU21D和SHT21对比评测(图文)
超小体积的温湿度一体数字输出模块由于体积小,精度高的特点,广泛应用于手机.通讯.HVAC.医疗.环境监测.家用电器.控制板等,近日从深圳市工采网(ISweek)拿到市面上最常用的HTU21D和SHT2 ...
- android 8 荣耀9,荣耀9和荣耀8区别在哪?荣耀8与荣耀9对比评测
6 月 12 日下午,荣耀 9 正式发布,作为去年 7 月 11 日发布的荣耀 8 的换代产品,在荣耀 9 身上依然可以看到不少 8 的影子,但也带来了不少的升级改变.究竟荣耀 9 和荣耀 8 有什么 ...
- 电视盒子cpu天梯图排行榜 2023电视盒子cpu对比评测
一.2023电视盒子cpu对比评测 目前国内主流就是晶晨.瑞芯微.mtk.全志等品牌处理器芯片,晶晨.瑞芯微是用的比较多的,也是比较好的,接下来就来看看这两个芯片的主流cpu对比: 电视盒子选哪款好这 ...
- NLP常用损失函数代码实现——SoftMax/Contrastive/Triplet/Similarity
NLP常用损失函数代码实现 NLP常用的损失函数主要包括多类分类(SoftMax + CrossEntropy).对比学习(Contrastive Learning).三元组损失(Triplet ...
- android浏览器对比评测,还在为选择哪个浏览器而纠结?Android手机浏览器横向对比评测!...
本文内容转自于互联网点评,并非本站立场观点! 随着Android系统的不断升温,国内的Android手机的销量已经出现井喷之势,作为智能手机,我们最常用的功能便是上网,也就是浏览网页,所以手机浏览器已 ...
- 诺基亚N95 8GB/N96对比评测
风格各异的外观造型 作为原本诺基亚N系列的旗舰机型,N95 8GB具备极为霸气的外观造型与创新的双向滑盖机身造型设计,而这两点要素,在全新一代N系列旗舰机型N96上得以延续.尽管说N96没有沿用N95 ...
- 一文看懂机器学习中的常用损失函数
作者丨stephenDC 编辑丨zandy 来源 | 大数据与人工智能(ID: ai-big-data) 导语:损失函数虽然简单,却相当基础,可以看做是机器学习的一个组件.机器学习的其他组件,还包括激 ...
最新文章
- 数据库命名规范(转)
- 14行代码AC_Break the Chocolate HDU-4112(数学推导+解析)
- 36/100. Generate Parentheses
- connect函数在阻塞和非阻塞模式下的行为
- mysql 排他,mysql 共享锁 排他锁 防插入锁
- salesforce php,具有自动登录功能的Salesforce php REST API
- 机器学习算法太厉害,导致人类也通不过谷歌验证码
- c# timer 销毁_C# task和timer实现定时操作
- 计算机没有显示光盘图标,电脑光驱图标不见了怎么办
- UDS诊断系列之一 汽车诊断简介
- 小米4A 32电视通过TTL方式ROOT的方法
- ol4服务器连接不稳定,红警Online频繁掉线怎么办 总是断开链接问题解答
- Gullo’s Hosting保加利亚NAT VPS评测
- 影响ae渲染时间的计算机配置,分享两套影视后期电脑配置2019 能流畅使用ae和pr的电脑主机推荐...
- 清理注册表 php,如何彻底清理注册表?小编教你清理注册表操作方法
- 输入一个数n,然后打印出2的n次方
- 【SVAC】千目聚云:SVAC2.0已来 未来发展道路一片光明
- 深度干货:史上最全的市场推广渠道大全(附攻略和技巧)
- 计算机视觉中的多视图几何 -- 2D射影几何与变换 -- 相似、仿射与射影变换的层次
- 修改文件md5值的简单方法!