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

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

3天內(nèi)不再提示

計算機視覺的損失函數(shù)是什么?

汽車玩家 ? 來源: AI公園 ? 作者:Sowmya Yellapragad ? 2020-03-13 16:30 ? 次閱讀

導讀

損失函數(shù)在模型的性能中起著關鍵作用。選擇正確的損失函數(shù)可以幫助你的模型學習如何將注意力集中在數(shù)據(jù)中的正確特征集合上,從而獲得最優(yōu)和更快的收斂。

計算機視覺的損失函數(shù)是什么?

計算機視覺是計算機科學的一個領域,主要研究從數(shù)字圖像中自動提取信息。

在過去的十年中,在深度學習方面的創(chuàng)新,大量數(shù)據(jù)的方便獲取以及GPU的使用已經(jīng)將計算機視覺領域推到了聚光燈下。它甚至開始在一些任務中實現(xiàn)“超人”的性能,比如人臉識別和手寫文本識別。(事實上,如今登機的自動人臉驗證已經(jīng)變得越來越普遍了。)

近年來,我們在網(wǎng)絡架構(gòu)、激活函數(shù)、損失函數(shù)等計算機視覺領域看到了許多創(chuàng)新。

損失函數(shù)在模型的性能中起著關鍵作用。選擇正確的損失函數(shù)可以幫助你的模型學習如何將注意力集中在數(shù)據(jù)中的正確特征集合上,從而獲得最優(yōu)和更快的收斂。

這篇文章的主要目的是總結(jié)一些重要的損失函數(shù)在計算機視覺中的使用。

你可以在這里:https://github.com/sowmyay/medium/blob/master/CV-LossFunctions.ipynb找到這里討論的所有損失函數(shù)的PyTorch實現(xiàn)。

Pixel-wise損失函數(shù)

顧名思義,這種損失函數(shù)計算預測圖像和目標圖像的像素間損失。損失函數(shù),如MSE或L2損失、MAE或L1損失、交叉熵損失等,大部分都可以應用于在目標變量的每一對像素之間進行預測。

由于這些損失函數(shù)分別對每個像素向量的類預測進行評估,然后對所有像素進行平均,因此它們斷言圖像中的每個像素都具有相同的學習能力。這在圖像的語義分割中特別有用,因為模型需要學習像素級的密集預測。

在U-Net等模型中也使用了這些損失函數(shù)的變體,在用于圖像分割時采用加權(quán)的像素級交叉熵損失來處理類間不平衡問題。

類不平衡是像素級分類任務中常見的問題。當圖像數(shù)據(jù)中的各種類不平衡時,就會出現(xiàn)這種情況。由于像素方面的損失是所有像素損失的平均值,因此訓練會被分布最多的類來主導。

Perceptual損失函數(shù)

Johnson et al (2016),Perceptual損失函數(shù)用于比較看起來相似的兩個不同的圖像,就像相同的照片,但移動了一個像素或相同的圖像使用了不同的分辨率。在這種情況下,雖然圖像非常相似,pixel-wise損失函數(shù)將輸出一個大的誤差值。而Perceptual損失函數(shù)比較圖像之間的高級感知和語義差異。

考慮一個圖像分類網(wǎng)絡如VGG,已經(jīng)在ImageNet的數(shù)以百萬計的圖像數(shù)據(jù)集上訓練過,第一層的網(wǎng)絡往往提取底層的特征(如線,邊緣或顏色漸變)而最后的卷積層應對更復雜的概念(如特定的形狀和模式)。根據(jù)Johnson等人的觀點,這些在前幾層捕獲的低層次特征對于比較非常相似的圖像非常有用。

例如,假設你構(gòu)建了一個網(wǎng)絡來從輸入圖像重構(gòu)一個超分辨圖像。在訓練期間,你的目標圖像將是輸入圖像的超分辨率版本。你的目標是比較網(wǎng)絡的輸出圖像和目標圖像。為此,我們將這些圖像通過一個預先訓練好的VGG網(wǎng)絡傳遞,并提取VGG中前幾個塊的輸出值,從而提取圖像的底層特征信息。這些低級的特征張量可以通過簡單的像素級損失來進行比較。

計算機視覺的損失函數(shù)是什么?

用于圖像分類的預訓練的損失網(wǎng)絡

Perceptual損失的數(shù)學表示

計算機視覺的損失函數(shù)是什么?

其中,V_j(Y)表示VGG網(wǎng)絡第j層在處理圖像Y時的激活情況,其形狀為(C_j, H_j, W_j)。我們使用L2損失的平方,根據(jù)圖像的形狀歸一化,比較了ground truth圖像Y和預測圖像Y^的激活情況。

如果你想使用VGG網(wǎng)絡的多個特征映射作為你的損失計算的一部分,只需為多個j添加L_j值。

內(nèi)容-風格損失函數(shù)—神經(jīng)網(wǎng)絡風格轉(zhuǎn)換

風格轉(zhuǎn)換是將圖像的語義內(nèi)容轉(zhuǎn)換成不同風格的過程。風格轉(zhuǎn)換模型的目標是,給定一個內(nèi)容圖像(C)和一個風格圖像(S),生成包含C的內(nèi)容和S的風格的輸出圖像。

在這里,我們將討論content-style損失函數(shù)的最簡單實現(xiàn)之一,該函數(shù)用于訓練這種風格的轉(zhuǎn)換模型。后來的研究中使用了許多內(nèi)容-風格損失函數(shù)的變體。下一節(jié)將討論一個這樣的損失函數(shù),稱為“紋理損失”。

內(nèi)容/風格損失的數(shù)學表示

已經(jīng)發(fā)現(xiàn),CNNs在較高的層次上捕獲內(nèi)容的信息,而較低的層次更關注單個像素值。

因此,我們使用一個或多個CNN頂層,計算原始內(nèi)容圖像(C)和預測輸出(P) 的激活圖。

計算機視覺的損失函數(shù)是什么?

同樣,通過計算預測圖像(P)和風格圖像(S)的下一級特征圖的L2距離,可以計算出風格損失,得到的損失函數(shù)定義為:

計算機視覺的損失函數(shù)是什么?

alpha和beta是超參數(shù)。

注意:只有減少樣式和內(nèi)容損失的優(yōu)化會導致高像素化和噪聲輸出。為了解決這個問題,我們引入了total variation loss來保證生成的圖像的空間連續(xù)性和平滑性。

紋理損失

Gatys et al (2016)首次引入的用于圖像風格轉(zhuǎn)換的風格損失組件。紋理損失是一種引入的損失函數(shù),是對感知損失的改進,特別適用于捕獲圖像的風格。Gatys et al發(fā)現(xiàn),我們可以通過查看激活或特征圖(來自VGG網(wǎng)絡)內(nèi)的值的空間相關性來提取圖像的風格表示。這是通過計算Gram矩陣來實現(xiàn)的:

計算機視覺的損失函數(shù)是什么?

Gram矩陣(對于VGG網(wǎng)絡的l層)是向量化特征映射F_i和F_j(在l層)的內(nèi)積,它捕捉了特征在圖像不同部分同時出現(xiàn)的趨勢。

紋理損失的數(shù)學表示

計算機視覺的損失函數(shù)是什么?

這里,G^l^和A^l^分別是模型輸出的l層和目標圖像的l層的風格樣式表示。N~l~是層l中不同特征映射的數(shù)量,M~l~是層l(i)中特征映射的容量(也就是通道的寬和高)。最后,E~l~是圖層l的紋理損失。

網(wǎng)絡的紋理損失是所有紋理損失的加權(quán)和,表示為:

計算機視覺的損失函數(shù)是什么?

這里a是原始圖像,x是預測圖像。

注意:雖然這里的數(shù)學看起來有點復雜,但請理解紋理損失只是應用在特征圖的gram矩陣上的感知損失。

拓撲感知損失函數(shù)

Mosinska等人(2017)介紹了最近文獻中另一個有趣的損失函數(shù),即拓撲感知損耗函數(shù)。這可以被認為是感知損失的延伸,應用于分割mask預測。

Mosinska等人認為,在圖像分割問題中使用的像素級損失,如交叉熵損失,只依賴于局部測度,而不考慮拓撲結(jié)構(gòu)的特征,如連接組件或孔的數(shù)量。因此,傳統(tǒng)的分割模型如U-Net往往會對薄的結(jié)構(gòu)進行錯誤的分類。這是因為對薄層像素的錯誤分類在像素損失方面的代價很低。作為對像素損失的改進,他們建議引入一個懲罰項,該懲罰項基于VGG-19網(wǎng)絡生成的特征圖(類似于感知損失),以考慮拓撲信息。

(c)使用像素級丟失檢測神經(jīng)元膜后獲得的分割,(d)利用拓撲損耗檢測細胞膜后得到的分割

這種方法在從衛(wèi)星圖像中進行道路分割時也特別有用,例如,樹木的遮擋。

拓撲感知損失的數(shù)學表示

計算機視覺的損失函數(shù)是什么?

這里,在RHS上,l(m,n)表示VGG19網(wǎng)絡第n層的第m個feature map。Mu是衡量像素損失和拓撲損失相對重要性的標量。

對比損失/三元組損失

計算機視覺的損失函數(shù)是什么?

Triplet loss是由Florian Schroff等人在FaceNet(2015)中提出的,其目的是在有限的小數(shù)據(jù)集(如辦公室中的人臉識別系統(tǒng))上構(gòu)建一個人臉識別系統(tǒng)。傳統(tǒng)的CNN人臉識別架構(gòu)在這種情況下總是失敗。

Florian Schroff et al關注的事實是,在人臉識別的小樣本空間中,我們不僅要正確識別匹配的人臉,還要準確區(qū)分兩個不同的人臉。為了解決這個問題,F(xiàn)aceNet的論文引入了一個名為“Siamese網(wǎng)絡”的概念。

在Siamese網(wǎng)絡中,我們通過網(wǎng)絡傳遞一個圖像A,并將其轉(zhuǎn)換成一個更小的表示,稱為嵌入?,F(xiàn)在,在不更新網(wǎng)絡的任何權(quán)值或偏差的情況下,我們對不同的圖像B重復這個過程并提取其嵌入。如果圖像B與圖像A中的人是同一個人,那么它們相應的嵌入必須非常相似。如果它們屬于不同的人,那么它們相應的嵌入一定是非常不同的。

重申一下,Siamese網(wǎng)絡的目標是確保一個特定的人的圖像(錨點)與同一個人的所有其他圖像(positive)的距離要比與任何其他人的圖像(negative)的距離更近。

為了訓練這樣一個網(wǎng)絡,他們引入了三元組損失函數(shù)??紤]一個三元組:[anchor, positive, negative] 。

三元組損失定義為:
1. 定義距離度量d=L2范數(shù)
2. 計算anchor圖像與positive圖像的嵌入距離=d(a, p)
3. 計算anchor圖像嵌入到negative圖像的距離=d(a, n)
4. 三元組損失= d(a, p) - d(a, n) + offset

三元組的數(shù)學表示

計算機視覺的損失函數(shù)是什么?

這里, x^a^ -> anchor, x^p^ -> positive,x^n^ -> negative

注:為了快速收斂,必須選取正確的三元組進行損失計算。FaceNet的論文討論了實現(xiàn)這一目標的兩種方法——離線三元組生成和在線三元組生成。關于這個話題的詳細討論我們將留到以后討論。

GAN損失

由Ian Goodfellow等人(https://arxiv.org/abs/1406.2661)(2014)首先提出的生成式對抗網(wǎng)絡是目前最流行的圖像生成任務解決方案。GANs的靈感來自博弈論,并使用一個對抗的方案,使它可以用無監(jiān)督的方式訓練。

GANs可以被看作是一個兩個人的游戲,我們讓生成器(比如產(chǎn)生一個超分辨率的圖像)與另一個網(wǎng)絡 —— 判別器進行較量。判別器的任務是評估一個圖像是來自原始數(shù)據(jù)集(真實圖像)還是來自另一個網(wǎng)絡(假圖像)。判別器模型像任何其他深度學習神經(jīng)網(wǎng)絡一樣k可以被更新,生成器使用判別器作為損失函數(shù),這意味著生成器的損失函數(shù)是隱式的,是在訓練過程中學習的。對于典型的機器學習模型,收斂可以看作是在訓練數(shù)據(jù)集上讓所選損失函數(shù)最小化。在GAN中,收斂標志著雙人博弈的結(jié)束,是尋求生成器和判別器損失之間的平衡。

對于GAN來說,生成器和判別器是兩個參與者,它們輪流更新各自的模型權(quán)值。在這里,我們將總結(jié)一些用于GAN網(wǎng)絡的損失函數(shù)

1. Min-Max損失函數(shù)

計算機視覺的損失函數(shù)是什么?

然而,在實踐中發(fā)現(xiàn),這種生成器的損失函數(shù)會飽和。也就是說,如果它不能像判別器學習得那么快,判別器贏了,游戲就結(jié)束了,模型就不能得到有效的訓練。

2. 不飽和的GAN損失

不飽和GAN損失是一種改進的生成器損失,以克服飽和的問題,使用了一個微妙的變化。該生成器不是最小化所生成圖像的負判別器概率的對數(shù),而是最大化所生成圖像的判別器概率的對數(shù)。

計算機視覺的損失函數(shù)是什么?

3. 最小均方GAN損失

由Xudong Mao, et al (2016)提出,當生成的圖像與真實圖像非常不同時,這種損失函數(shù)特別有用,因為此時會導致梯度非常小或梯度消失,進而導致模型很少或沒有更新。

計算機視覺的損失函數(shù)是什么?

4. Wasserstein GAN損失

Martin Arjovsky等人(2017)。他們觀察到,傳統(tǒng)GAN的目的是最小化真實圖像和生成圖像的實際概率分布和預測概率分布之間的距離,即所謂的Kullback-Leibler (KL)散度。相反,他們建議在Earth-Mover’s distance上對問題進行建模,該模型根據(jù)將一個分布轉(zhuǎn)換成另一個分布的成本來計算兩個概率分布之間的距離。

使用Wasserstein損失的GAN涉及到將判別器的概念改變?yōu)橐粋€更改評估器,比生成器模型更新得更頻繁(例如,更新頻率是生成器模型的五倍)。評估器用實際的數(shù)字而不是預測概率來給圖像打分。它還要求模型的權(quán)重保持較小。該得分的計算使得真假圖像的得分之間的距離最大程度地分離。Wasserstein的損失的好處是,它提供了一個有用幾乎無處不在的梯度,允許模型的繼續(xù)訓練。

計算機視覺的損失函數(shù)是什么?

5. 循環(huán)一致性損失

圖像到圖像的轉(zhuǎn)換是一個圖像合成的任務,需要對給定的圖像進行有控制的修改,生成一個新的圖像。例如,把馬轉(zhuǎn)換成斑馬(或反過來),把繪畫轉(zhuǎn)換成照片(或反過來),等等。

juno - yan Zhu et al (2018)介紹。訓練用于圖像到圖像轉(zhuǎn)換的模型通常需要大量成對的樣本數(shù)據(jù)集,這些樣本很難找到。CycleGAN是一種不需要配對實例的自動訓練技術。這些模型以一種無監(jiān)督的方式進行訓練,使用來自源和目標域的圖像集合,這些圖像不需要以任何方式關聯(lián)。

CycleGAN是GAN體系結(jié)構(gòu)的擴展,它同時訓練兩個生成器模型和兩個判別器模型。一個生成器從第一個域獲取圖像作為第二個域的輸入和輸出圖像,另一個生成器從第二個域獲取圖像作為輸入并生成第一個域的圖像。然后使用判別器模型來確定生成的圖像是否可信,并相應地更新生成器模型。

循環(huán)一致性是指第一個生成器輸出的圖像可以用作第二個生成器的輸入,而第二個生成器的輸出應該與原始圖像匹配。反之亦然。

CycleGAN通過增加額外的損失來測量第二個生成器生成的輸出與原始圖像之間的差異,從而趨向于循環(huán)一致性。該損失作為正則化項用于生成模型,指導新領域的圖像生成過程向圖像轉(zhuǎn)換方向發(fā)展。

計算機視覺的損失函數(shù)是什么?

計算機視覺的損失函數(shù)是什么?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • gpu
    gpu
    +關注

    關注

    27

    文章

    4591

    瀏覽量

    128153
  • 計算機視覺
    +關注

    關注

    8

    文章

    1685

    瀏覽量

    45811
收藏 人收藏

    評論

    相關推薦

    計算機視覺有哪些優(yōu)缺點

    計算機視覺作為人工智能領域的一個重要分支,旨在使計算機能夠像人類一樣理解和解釋圖像和視頻中的信息。這一技術的發(fā)展不僅推動了多個行業(yè)的變革,也帶來了諸多優(yōu)勢,但同時也伴隨著一些挑戰(zhàn)和局限性。以下是對
    的頭像 發(fā)表于 08-14 09:49 ?290次閱讀

    機器視覺計算機視覺有什么區(qū)別

    機器視覺計算機視覺是兩個密切相關但又有所區(qū)別的概念。 一、定義 機器視覺 機器視覺,又稱為計算機
    的頭像 發(fā)表于 07-16 10:23 ?288次閱讀

    計算機視覺的五大技術

    計算機視覺作為深度學習領域最熱門的研究方向之一,其技術涵蓋了多個方面,為人工智能的發(fā)展開拓了廣闊的道路。以下是對計算機視覺五大技術的詳細解析,包括圖像分類、對象檢測、目標跟蹤、語義分割
    的頭像 發(fā)表于 07-10 18:26 ?904次閱讀

    計算機視覺的工作原理和應用

    計算機視覺(Computer Vision,簡稱CV)是一門跨學科的研究領域,它利用計算機和數(shù)學算法來模擬人類視覺系統(tǒng)對圖像和視頻進行識別、理解、分析和處理。其核心目標在于使
    的頭像 發(fā)表于 07-10 18:24 ?1077次閱讀

    計算機視覺與人工智能的關系是什么

    引言 計算機視覺是一門研究如何使計算機能夠理解和解釋視覺信息的學科。它涉及到圖像處理、模式識別、機器學習等多個領域的知識。人工智能則是研究如何使計算
    的頭像 發(fā)表于 07-09 09:25 ?315次閱讀

    計算機視覺與智能感知是干嘛的

    引言 計算機視覺(Computer Vision)是一門研究如何使計算機能夠理解和解釋視覺信息的學科。它涉及到圖像處理、模式識別、機器學習等多個領域,是人工智能的重要組成部分。智能
    的頭像 發(fā)表于 07-09 09:23 ?352次閱讀

    計算機視覺和機器視覺區(qū)別在哪

    計算機視覺和機器視覺是兩個密切相關但又有明顯區(qū)別的領域。 一、定義 計算機視覺 計算機
    的頭像 發(fā)表于 07-09 09:22 ?290次閱讀

    計算機視覺和圖像處理的區(qū)別和聯(lián)系

    計算機視覺和圖像處理是兩個密切相關但又有明顯區(qū)別的領域。 1. 基本概念 1.1 計算機視覺 計算機視覺
    的頭像 發(fā)表于 07-09 09:16 ?551次閱讀

    計算機視覺屬于人工智能嗎

    屬于,計算機視覺是人工智能領域的一個重要分支。 引言 計算機視覺是一門研究如何使計算機具有視覺
    的頭像 發(fā)表于 07-09 09:11 ?588次閱讀

    深度學習在計算機視覺領域的應用

    隨著人工智能技術的飛速發(fā)展,深度學習作為其中的核心技術之一,已經(jīng)在計算機視覺領域取得了顯著的成果。計算機視覺,作為計算機科學的一個重要分支,
    的頭像 發(fā)表于 07-01 11:38 ?434次閱讀

    機器視覺計算機視覺的區(qū)別

    在人工智能和自動化技術的快速發(fā)展中,機器視覺(Machine Vision, MV)和計算機視覺(Computer Vision, CV)作為兩個重要的分支領域,都扮演著至關重要的角色。盡管它們在
    的頭像 發(fā)表于 06-06 17:24 ?836次閱讀

    計算機視覺的主要研究方向

    計算機視覺(Computer Vision, CV)作為人工智能領域的一個重要分支,致力于使計算機能夠像人眼一樣理解和解釋圖像和視頻中的信息。隨著深度學習、大數(shù)據(jù)等技術的快速發(fā)展,計算機
    的頭像 發(fā)表于 06-06 17:17 ?522次閱讀

    計算機視覺的十大算法

    隨著科技的不斷發(fā)展,計算機視覺領域也取得了長足的進步。本文將介紹計算機視覺領域的十大算法,包括它們的基本原理、應用場景和優(yōu)缺點。這些算法在圖像處理、目標檢測、人臉識別等領域有著廣泛的應
    的頭像 發(fā)表于 02-19 13:26 ?1048次閱讀
    <b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>的十大算法

    什么是計算機視覺計算機視覺的三種方法

    計算機視覺是指通過為計算機賦予人類視覺這一技術目標,從而賦能裝配線檢查到駕駛輔助和機器人等應用。計算機缺乏像人類一樣憑直覺產(chǎn)生
    的頭像 發(fā)表于 11-16 16:38 ?4168次閱讀
    什么是<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>?<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>的三種方法

    最適合AI應用的計算機視覺類型是什么?

    計算機視覺是指為計算機賦予人類視覺這一技術目標,從而賦能裝配線檢查到駕駛輔助和機器人等應用。計算機缺乏像人類一樣憑直覺產(chǎn)生
    的頭像 發(fā)表于 11-15 16:38 ?348次閱讀
    最適合AI應用的<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>類型是什么?