精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

L2損失函數的效果是否真的那么好呢?其他損失函數表現如何?

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-06-29 11:59 ? 次閱讀

盡管早在上世紀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可能會錯過更優的選擇。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4765

    瀏覽量

    100566
  • 函數
    +關注

    關注

    3

    文章

    4308

    瀏覽量

    62445
  • cnn
    cnn
    +關注

    關注

    3

    文章

    351

    瀏覽量

    22178

原文標題:CNN圖像處理常用損失函數對比評測

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    對象檢測邊界框損失函數–從IOU到ProbIOU介紹

    目標檢測損失函數的選擇在目標檢測問題建模中至關重要。通常,目標檢測需要兩個損失函數,一個用于對象分類,另一個用于邊界框回歸(BBR)。
    的頭像 發表于 01-24 10:50 ?2588次閱讀
    對象檢測邊界框<b class='flag-5'>損失</b><b class='flag-5'>函數</b>–從IOU到ProbIOU介紹

    TensorFlow損失函數(定義和使用)詳解

    的情況下,損失函數定義為交叉熵。輸出 Y 的維數等于訓練數據集中類別的數量,其中 P 為類別數量:如果想把 L1 正則化加到損失上,那么代碼
    發表于 07-28 14:38

    keras常用的損失函數Losses與評價函數Metrics介紹

    當使用MSE。另一方面,如果我們認為異常值僅表示損壞數據而已,那么我們應當選擇MAE作為損失函數。 3 mean_absolute_percentage_error (MAPE) 平均絕對值百分比誤差
    發表于 08-18 06:31

    神經網絡中的損失函數層和Optimizers圖文解讀

    對于許多機器學習算法來說,最終要解決的問題往往是最小化一個函數,我們通常稱這個函數損失函數。在神經網絡里面同樣如此,損失
    的頭像 發表于 11-30 16:09 ?8253次閱讀

    機器學習經典損失函數比較

    所有的機器學習算法都或多或少的依賴于對目標函數最大化或者最小化的過程。我們常常將最小化的函數稱為損失函數,它主要用于衡量模型的預測能力。
    的頭像 發表于 06-13 17:53 ?8533次閱讀
    機器學習經典<b class='flag-5'>損失</b><b class='flag-5'>函數</b>比較

    機器學習實用指南:訓練和損失函數

    這個損失函數是合理的,因為當 $t$ 接近 0 時,$-log(t)$ 變得非常大,所以如果模型估計一個正例概率接近于 0,那么損失函數將會
    的頭像 發表于 06-29 15:02 ?8509次閱讀
    機器學習實用指南:訓練和<b class='flag-5'>損失</b><b class='flag-5'>函數</b>

    三種常見的損失函數和兩種常用的激活函數介紹和可視化

    從上面闡釋的步驟可以看出,神經網絡中的權重由損失函數的導數而不是損失函數本身來進行更新或反向傳播。因此,損失
    的頭像 發表于 05-05 11:42 ?7094次閱讀
    三種常見的<b class='flag-5'>損失</b><b class='flag-5'>函數</b>和兩種常用的激活<b class='flag-5'>函數</b>介紹和可視化

    深度學習的19種損失函數你了解嗎?帶你詳細了解

    損失函數通過torch.nn包實現基本用法 criterion = LossCriterion() #構造函數有自己的參數loss = criterion(x, y) #調用標準時也有參數19種
    的頭像 發表于 09-14 10:34 ?1.1w次閱讀

    計算機視覺的損失函數是什么?

    損失函數在模型的性能中起著關鍵作用。選擇正確的損失函數可以幫助你的模型學習如何將注意力集中在數據中的正確特征集合上,從而獲得最優和更快的收斂。
    的頭像 發表于 03-13 16:30 ?3544次閱讀
    計算機視覺的<b class='flag-5'>損失</b><b class='flag-5'>函數</b>是什么?

    損失函數的簡要介紹

    例如,你有一個神經網絡,通過該網絡可以獲取一些與房屋有關的數據并預測其價格。在這種情況下,你可以使用MSE(均方誤差)損失?;旧?,在輸出為實數的情況下,應使用此損失函數。
    的頭像 發表于 04-17 10:01 ?3603次閱讀

    機器學習和深度學習中分類與回歸常用的幾種損失函數

    本文將介紹機器學習、深度學習中分類與回歸常用的幾種損失函數,包括均方差損失 Mean Squared Loss、平均絕對誤差損失 Mean Absolute Error Loss、Hu
    的頭像 發表于 10-09 16:36 ?6194次閱讀
    機器學習和深度學習中分類與回歸常用的幾種<b class='flag-5'>損失</b><b class='flag-5'>函數</b>

    表示學習中7大損失函數的發展歷程及設計思路

    表示學習的目的是將原始數據轉換成更好的表達,以提升下游任務的效果。在表示學習中,損失函數的設計一直是被研究的熱點。損失指導著整個表示學習的過程,直接決定了表示學習的
    的頭像 發表于 07-08 14:23 ?1896次閱讀

    訓練深度學習神經網絡的常用5個損失函數

    被稱為損失函數損失函數的選擇與神經網絡模型從示例中學習的特定預測建模問題(例如分類或回歸)有關。在本文中我們將介紹常用的一些損失
    的頭像 發表于 10-19 11:17 ?823次閱讀
    訓練深度學習神經網絡的常用5個<b class='flag-5'>損失</b><b class='flag-5'>函數</b>

    語義分割25種損失函數綜述和展望

    本綜述提供了對25種用于圖像分割的損失函數的全面且統一的回顧。我們提供了一種新穎的分類法,并詳細審查了這些損失函數如何在圖像分割中被定制和利用,強調了它們的重要特征和應用,并進行了系統
    的頭像 發表于 10-22 08:04 ?140次閱讀
    語義分割25種<b class='flag-5'>損失</b><b class='flag-5'>函數</b>綜述和展望

    RNN的損失函數與優化算法解析

    RNN的損失函數 RNN(循環神經網絡)在處理序列數據的過程中,損失函數(Loss Function)扮演著重要的角色,它可以測量模型在訓練中的表現
    的頭像 發表于 11-15 10:16 ?236次閱讀