损失函数_SRGAN损失函数(目标函数)详解
概要
SRGAN的特點之一就是引進了損失感知函數(shù),由此提升了超分辨率之后的細節(jié)信息。本文主要像您介紹SRGAN使用的損失函數(shù),及其Keras實現(xiàn)。
損失函數(shù)公式
這是原文中給出的損失函數(shù)。
容易看出,此損失函數(shù)包括兩部分,第一部分是感知損失,第二部分是正則化損失。
感知損失
感知損失是由李飛飛團隊提出的一種損失函數(shù)。
感知損失分了兩部分,內(nèi)容損失和對抗損失。
內(nèi)容損失
論文中給出的內(nèi)容損失如下:
論文中指出:傳統(tǒng)的超分辨率任務中直接使用的均方根誤差(MSE)的損失函數(shù),雖然有助于提高超分辨率任務的峰值信噪比(PSNR),但是對于圖像的細節(jié)卻是起到了模糊作用。本文使用的內(nèi)容損失,是將生成器生成的假高分辨率圖像和真實的高分辨率圖像送入VGG19網(wǎng)絡中進行特征提取,然后在提取的特征圖上再使用均方根誤差。這里并非是利用全部的VGG19網(wǎng)絡提取特征,而是僅僅利用其中一部分。所以對應不同層數(shù)的VGG19網(wǎng)絡進行提取。例如使用前9層進行特征提取,或者前7層進行特征提取。公式下方也講了:這里的i和j分別就是指第i層最大池化前的第j個卷積層。作者進行了實驗,在VGG網(wǎng)絡不同位置提取出的特征圖,并將其均方根誤差作為內(nèi)容損失進行了訓練。作者選取的層數(shù)如下:
SRGAN-MSE是直接使用MSE在假高分圖像和真高分圖像之間計算。SRGAN-VGG22:是利用第二個最大池化前的第二個卷積層之前的網(wǎng)絡進行特征提取,在假高分圖像和真高分圖像進行MSE均方根誤差的計算。也就是VGG19網(wǎng)絡的前4層進行特征提取。SRGAN-VGG54:是利用第五個最大池化前的第四個卷積層之前的網(wǎng)絡進行特征提取,在假高分圖像和真高分圖像進行MSE均方根誤差的計算。也就是VGG網(wǎng)絡的前16層的輸出。實驗結(jié)果表明,SRGAN-VGG54的細節(jié)信息最好,人眼的觀賞效果也最好。顯然,直接使用MSE的效果是不佳的。VGG22和VGG54效果是逐漸提升的。
對抗損失
論文中的對抗損失如下:
這實際上是GAN作者自己提出的一種改進型的生成器損失函數(shù)。最小化此式,也就是最大化判別器給予生成器所生成的圖像為真的概率。
正則化損失
文章中使用的正則化損失是一種基于全變分范數(shù)的正則化損失函數(shù)。
這種正則化損失傾向于保存圖像的光滑性,防止圖像出來變得過于像素化。
代碼的實現(xiàn)
vgg損失(內(nèi)容):
總結(jié)
以上是生活随笔為你收集整理的损失函数_SRGAN损失函数(目标函数)详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ tinyxml2 解析xml小坑
- 下一篇: 计算机会考咋查成绩,2019会考成绩查询