自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

換個(gè)角度看GAN:另一種損失函數(shù)

開發(fā) 開發(fā)工具 深度學(xué)習(xí)
本文將在適合的相關(guān)背景下討論上面的觀點(diǎn),并向大家闡述 GAN 這種「學(xué)得」(learned)損失函數(shù)的簡潔優(yōu)美之處。

Jeremy Howardf 老師曾在生成對(duì)抗網(wǎng)絡(luò)(GAN)課程中說過:「……本質(zhì)上,GAN 就是另一種損失函數(shù)?!?/p>

本文將在適合的相關(guān)背景下討論上面的觀點(diǎn),并向大家闡述 GAN 這種「學(xué)得」(learned)損失函數(shù)的簡潔優(yōu)美之處。

首先,我們先介紹相關(guān)背景知識(shí):

從函數(shù)逼近的角度看神經(jīng)網(wǎng)絡(luò)

在數(shù)學(xué)中,我們可以把函數(shù)當(dāng)做機(jī)器,往機(jī)器中輸入一或多個(gè)數(shù)字,它會(huì)相應(yīng)地生成一或多個(gè)數(shù)字。

將函數(shù)比作「機(jī)器」或「黑箱」。(圖源:https://www.wikiwand.com/en/Function_%28mathematics%29)

如果我們能夠用數(shù)學(xué)公式表示函數(shù),這很好。可如果大家不能或尚未想明白如何將想要的函數(shù)寫成一系列加減乘除(譬如分辨輸入是貓圖像還是狗圖像的函數(shù))又該如何呢?

如果無法用公式表達(dá),那我們能否至少逼近函數(shù)呢?

神經(jīng)網(wǎng)絡(luò)來拯救我們了。萬能逼近定理表明,一個(gè)具有充足隱藏單元且足夠大的神經(jīng)網(wǎng)絡(luò)可以計(jì)算「任何函數(shù)」。

具備 4 個(gè)隱藏單元的簡單神經(jīng)網(wǎng)絡(luò)逼近塔型函數(shù)。

(圖源:http://neuralnetworksanddeeplearning.com/chap4.html)

神經(jīng)網(wǎng)絡(luò)的顯式損失函數(shù)

掌握神經(jīng)網(wǎng)絡(luò)后,我們就可以構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)以逐步逼近上文所述的貓狗分類函數(shù),而無需顯式地表達(dá)該分類函數(shù)。

為了獲得更好的函數(shù)逼近能力,神經(jīng)網(wǎng)絡(luò)首先需要知道其當(dāng)前性能有多差。計(jì)算神經(jīng)網(wǎng)絡(luò)誤差的方式被稱為損失函數(shù)。

目前已經(jīng)有很多損失函數(shù),對(duì)于損失函數(shù)的選擇依賴于具體任務(wù)。然而,所有損失函數(shù)具有一個(gè)共同特性──它必須能以精確的數(shù)學(xué)表達(dá)式表示損失函數(shù)。

  • L1 損失(絕對(duì)誤差):用于回歸任務(wù)
  • L2 損失(平方誤差):與 L1 類似,但對(duì)于異常值更加敏感
  • 交叉熵誤差:通常用于分類任務(wù)
  • Dice 損失 (IoU) :用于分割任務(wù)
  • KL 散度:用于衡量兩種分布之間的差異
  • ……

關(guān)于神經(jīng)網(wǎng)絡(luò)逼近特性的好壞,損失函數(shù)承擔(dān)著十分重要的作用。對(duì)于神經(jīng)網(wǎng)絡(luò)構(gòu)建人員來說,針對(duì)具體任務(wù)去理解和選擇恰當(dāng)?shù)膿p失函數(shù)是最重要的技能。

目前,設(shè)計(jì)更好的損失函數(shù)也是活躍度極高的研究領(lǐng)域。譬如,論文《Focal Loss for Dense Object Detection》介紹了一種名為「Focal loss」的新型損失函數(shù),用于解決單階段目標(biāo)檢測模型的不平衡性。

顯式損失函數(shù)的局限

前文所述的損失函數(shù)在分類、回歸及圖像分割等任務(wù)中的表現(xiàn)相當(dāng)不錯(cuò),而針對(duì)輸出具有多模態(tài)分布的情況,則效果堪憂。

以黑白圖片著色任務(wù)為例。

L2 損失函數(shù)的思考過程。(圖源:https://youtu.be/8881p8p3Guk?t=2971)

  • 輸入是黑白色的鳥,真實(shí)圖像是相同的藍(lán)色的鳥。
  • 采用 L2 損失函數(shù)計(jì)算模型的輸出顏色與真實(shí)圖像的像素級(jí)差異。
  • 接下來,輸入是與剛才實(shí)驗(yàn)相似的一只黑白色的鳥;真實(shí)圖像是一只相同的紅色的鳥。
  • L2 損失函數(shù)試圖最小化模型的輸出顏色與紅色的差異。
  • 基于 L2 損失函數(shù)的反饋,模型已學(xué)習(xí)出一只相似的鳥,但模型應(yīng)該輸出一種與紅色及藍(lán)色都接近的顏色。模型會(huì)怎么做?
  • 模型會(huì)輸出一種黃色的鳥,這是最小化紅色與藍(lán)色距離的最安全選擇,即便模型在訓(xùn)練過程中從未觀察到一只黃色的鳥。
  • 由于實(shí)際上沒有黃色鳥,所以你知道模型不夠逼真。

基于均方差預(yù)測的下一幀圖像非常模糊

基于均方差預(yù)測的下一幀圖像非常模糊。(圖源:https://arxiv.org/pdf/1605.08104.pdf)

這種均化效應(yīng)在許多實(shí)例中會(huì)導(dǎo)致非常糟糕的結(jié)果。以預(yù)測視頻下一幀任務(wù)為例,下一幀的可能性非常多,你想要的是能輸出「其中某一幀」的模型。但是,如果采用 L2 或 L1 訓(xùn)練模型,模型將平均所有可能結(jié)果,生成一張十分模糊的均化圖像。

GAN 作為新的損失函數(shù)

首先,你并不知道復(fù)雜函數(shù)的精確數(shù)學(xué)表達(dá)式(比如函數(shù)的輸入是一組數(shù)字,輸出是一張狗狗的逼真圖像),所以你使用神經(jīng)網(wǎng)絡(luò)逼近此函數(shù)。

神經(jīng)網(wǎng)絡(luò)需要損失函數(shù)告知它目前性能的好壞,但沒有任何顯式損失函數(shù)能夠很好的完成此項(xiàng)工作。

嗯,要是有一種既無需顯式數(shù)學(xué)表達(dá)式,又能夠直接逼近神經(jīng)網(wǎng)絡(luò)損失函數(shù)的方法,該多好。譬如神經(jīng)網(wǎng)絡(luò)?

所以,如果我們用神經(jīng)網(wǎng)絡(luò)模型替代顯式損失函數(shù),將會(huì)怎樣?恭喜,你發(fā)現(xiàn)了 GAN。

通過下面的 GAN 架構(gòu)和 Alpha-GAN 架構(gòu),你能觀察地更清晰。如圖,白色框代表輸入,粉色框和綠色框代表你想構(gòu)建的網(wǎng)絡(luò),藍(lán)色框代表損失函數(shù)。

GAN 架構(gòu)

Alpha-GAN 架構(gòu)

Alpha-GAN 架構(gòu)

在原版 GAN 中僅有一種損失函數(shù)——判別器網(wǎng)絡(luò) D,其自身就是另一種神經(jīng)網(wǎng)絡(luò)。

而在 Alpha-GAN 中,模型有 3 種損失函數(shù):輸入數(shù)據(jù)的判別器 D、用于已編碼潛變量的潛碼判別器 C,以及傳統(tǒng)像素級(jí) L1 損失函數(shù)。其中,D 和 C 并不是顯式損失函數(shù),而只是其近似──神經(jīng)網(wǎng)絡(luò)。

梯度

如果將判別器(同樣也是神經(jīng)網(wǎng)絡(luò))作為損失函數(shù)來訓(xùn)練生成器網(wǎng)絡(luò)(與 Alpha-GAN 的編碼器),那么用什么損失函數(shù)來訓(xùn)練判別器呢?

判別器的任務(wù)是區(qū)分真實(shí)數(shù)據(jù)分布與生成數(shù)據(jù)分布。用監(jiān)督方式訓(xùn)練判別器時(shí),標(biāo)簽可隨意使用,所以采用二元交叉熵等顯式損失函數(shù)訓(xùn)練判別器就很簡單。

但由于判別器是生成器的損失函數(shù),這代表判別器的二元交叉熵?fù)p失函數(shù)的累積梯度同樣會(huì)被用于更新生成器網(wǎng)絡(luò)。

觀察 GAN 中的梯度變化,就非常容易發(fā)現(xiàn)改變其軌跡的新思路。如果顯式損失函數(shù)的梯度無法在兩個(gè)神經(jīng)網(wǎng)絡(luò)間(判別器和生成器)回流,卻可以在三個(gè)神經(jīng)網(wǎng)絡(luò)間回流,那么它能被應(yīng)用在何處?如果梯度無法通過傳統(tǒng)損失函數(shù)回流,卻可在這些神經(jīng)網(wǎng)絡(luò)之間直接來回呢?從基本原理出發(fā),我們很容易發(fā)現(xiàn)未被探索的路徑以及未被解答的問題。

結(jié)論

通過傳統(tǒng)損失函數(shù)與神經(jīng)網(wǎng)絡(luò)的集成,GAN 使將神經(jīng)網(wǎng)絡(luò)作為損失函數(shù)來訓(xùn)練另一神經(jīng)網(wǎng)絡(luò)成為可能。兩個(gè)神經(jīng)網(wǎng)絡(luò)間的巧妙交互使得深度神經(jīng)網(wǎng)絡(luò)能夠解決一些先前無法完成的任務(wù)(如生成逼真圖像)。

將 GAN 本質(zhì)上視為一種學(xué)得的損失函數(shù),我希望這篇文章能夠幫助大家理解 GAN 的簡潔和力量。

原文鏈接:https://medium.com/vitalify-asia/gans-as-a-loss-function-72d994dde4fb

【本文是51CTO專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2012-12-07 09:30:24

2013-05-22 15:31:07

AOP的CGlib實(shí)現(xiàn)

2014-09-17 14:37:06

2018-04-18 07:34:58

2017-11-20 16:17:50

智慧城市

2016-07-11 16:18:26

互聯(lián)網(wǎng)

2023-06-18 23:19:17

ChatGPTPPT方式

2010-07-21 16:23:09

運(yùn)行telnet程序

2011-12-29 21:28:31

Metro UI

2016-03-03 10:29:31

用戶信息改進(jìn)

2014-01-13 10:36:53

C++錯(cuò)誤

2013-09-30 10:13:08

IT女程序員

2011-07-21 14:17:15

Ceylon

2010-09-02 09:14:35

CSS浮動(dòng)

2015-07-28 13:36:04

2009-06-17 09:05:05

Linux隱藏網(wǎng)絡(luò)鏈接命令

2009-04-01 08:27:07

Opera瀏覽器

2013-10-21 15:11:15

OrmsqlOrm設(shè)計(jì)

2009-06-17 12:01:21

Linux

2011-08-23 15:37:28

蘋果喬布斯
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)