【深度学习】Loss Functions for Neural Networks for Image Processing
2018-01-14 11:25
555 查看
在目前的深度学习中,业界主流主要还是把调整深度学习网络结构作为主要的工作重心,即使损失函数(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损失函数与L2损失函数有着显著的差别,他不会对large errors进行惩罚,而且他们的收敛曲线也不同。然而出乎意料的是,L1损失函数的结果比其他几种方法都有明显的改善。
SSIM越大,图像的视觉效果一般来说越好。
因此为了做成minimize,作者将ssim的损失函数定义为:
因此,则有:
但是SSIM是必要需要neighborhood pixel进行参与计算求取均值和标准差的,这就导致边界的pixel都无法进行计算,因此,作者重新定义SSIM的损失函数:
其中p^hat是指patch P 中的center pixel。
则SSIM的反向微分为:
, 作者又提出了multi-scale version of SSIM – MS-SSIM。
(关于这个SSIM中的高斯核,可以去看SSIM的相关文献)
MS-SSIM定义如下
则其损失函数则为:
微分形式:
作者对alpha设置为0.84
实验
联合训练L1+L2的收敛曲线
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的收敛曲线
相关文章推荐
- 深度学习论文理解3:Flexible, high performance convolutional neural networks for image classification
- 深度学习论文随记(二)---VGGNet模型解读-2014年(Very Deep Convolutional Networks for Large-Scale Image Recognition)
- 深度学习论文-Cyclical Learning Rates for Training Neural Networks
- 深度学习入门笔记:Fast Image Search with Deep Convolutional Neural Networks and Efficient Hashing Codes
- Andrew Ng 深度学习课程Deeplearning.ai 编程作业——deep Neural network for image classification(1-4.2)
- 深度学习研究理解10:Very Deep Convolutional Networks for Large-Scale Image Recognition
- 吴恩达 深度学习 1-4 课后作业2 Deep Neural Network for Image Classification: Application
- [深度学习] Very Deep Convolutional Networks for Large-Scale Image Recognition(VGGNet)阅读笔记
- 深度学习文章阅读2--3D Convolutional Neural Networks for Human Action Recognition
- 深度学习研究理解10:Very Deep Convolutional Networks for Large-Scale Image Recognition
- 深度学习研究理解:Very Deep Convolutional Networks for Large-Scale Image Recognition
- [深度学习论文笔记][Image Classification] ImageNet Classification with Deep Convolutional Neural Networks
- [深度学习论文笔记][Image Classification] Very Deep Convolutional Networks for Large-Scale Image Recognitio
- 多柱深度神经网络——Multi-column Deep Neural Networks for Image Classification
- [深度学习论文笔记][Semantic Segmentation] Recurrent Convolutional Neural Networks for Scene Labeling
- 深度学习笔记(一):Learning Multi-Domain Convolutional Neural Networks for Visual Tracking
- 【深度学习论文笔记:Recognition】:Deep Neural Networks for Object Detection
- 吴恩达 深度学习 1-4 课后作业2 Deep Neural Network for Image Classification: Application
- [深度学习论文笔记][Video Classification] Long-term Recurrent Convolutional Networks for Visual Recognition a
- [深度学习论文笔记][Adversarial Examples] Intriguing properties of neural networks