“馴估學”(中)

對似然函數(shù)感興趣的讀者,請參閱“馴估學”(上)

建模圖像茴恰,分布若何颠焦?

很多方法可以參數(shù)化圖像。例如往枣,3D場景投影(渲染)為2D可以表示圖像伐庭。或者分冈,將圖像參數(shù)化為向量化的草圖(如SVG圖形)或拉普拉斯金字塔圾另,甚至是機械臂的電機扭矩所途徑的軌跡。簡單起見丈秩,研究人員通常將圖像的似然函數(shù)盯捌,建立在RGB像素上的聯(lián)合分布上淳衙。RGB是一種通用數(shù)字格式蘑秽,已被證明能夠有效地捕獲可見電磁波譜。

每個RGB像素由uint8格式的無符號整數(shù)編碼箫攀,有256個可能的值肠牲。因此,一幅具有3072個像素的圖像靴跛,輔之以256個可能值缀雳,組合成256^{3072}個可能的存在狀態(tài)。由于這個數(shù)量是有限的梢睛,我們【在理論上】就可以使用一個256^{3072}的骰子來表示一幅圖像肥印。然而這個數(shù)字太大了识椰,無法在內(nèi)存中存儲。哪怕只有3個uint8編碼的像素深碱,聯(lián)合建模又256^{3}= 16777216可能的類別腹鹉,(對于即使是現(xiàn)代計算機來說也)是極為繁重的任務了。為了使計算易處理敷硅,我們必須將整個圖像的可能性“分解”為條件獨立的像素分布的組合功咒。一種簡單的因子分解方法如下,使每個像素的概率彼此獨立:
p(x_1, ..., x_N) = p(x_1)p(x_2)...p(x_N)
這也稱為平均場解碼器(請參閱此注釋绞蹦,其中名稱來自“均值 - 場”)力奋。每個像素都具有易處理的密度函數(shù)或質(zhì)量函數(shù)。

另一種選擇是令像素似然具有自回歸性幽七,其中每個條件分布具有易處理的密度函數(shù)或質(zhì)量函數(shù)景殷。
p(x_1, ..., x_N) = p(x_1)p(x_2|x_1)...p(x_N|x_1,...,x_{N-1})
我們需要考慮如何為上式中每個條件分布建模。以下是一些常見的做法澡屡,以及使用過這些做法的文章:

像素值作為伯努利分布的輸出概率

【注:“輸出概率”或“發(fā)射概率”挪蹭,在隨機過程中亭饵,與“轉(zhuǎn)移概率”相對×豪鳎“輸出概率”是當下時刻每個狀態(tài)的可能性辜羊,“轉(zhuǎn)移概率”是對于某狀態(tài)、其轉(zhuǎn)移到其他狀態(tài)的可能性词顾。在本文中八秃,輸出概率指伯努利分布的參數(shù),即一次伯努利實驗正面朝上的可能性肉盹∥羟】

在調(diào)試可能性模型時,先在MNIST上忍、FashionMNIST骤肛、NotMNIST數(shù)據(jù)集上實驗是不錯的選擇【, 因為】:

  • 這些數(shù)據(jù)集可以完全存儲在計算機RAM中窍蓝;
  • 它們不需要大量的網(wǎng)絡架構(gòu)調(diào)整(你可以只專注于算法方面)腋颠;
  • 在這些數(shù)據(jù)集上訓練較小的生成模型,只需要普通的硬件設施吓笙,例如缺少GPU的筆記本電腦淑玫。

選擇伯努利隨機變量建模像素的條件似然p(x_i)是很常見的做法。 對于像素值只可能為0或1(正面還是反面)的二值化數(shù)據(jù),伯努利分布就夠用了絮蒿。

MNIST數(shù)據(jù)集中某二值化圖像尊搬。二值化數(shù)字雖然能被辨認,但不適用于自然條件下的圖像

但是土涝,MNIST和幾個類似的數(shù)據(jù)庫毁嗦,往往被編碼為[0,1]范圍內(nèi)的浮點值。256個整數(shù)被歸一化為位于[0,1]之間的小數(shù)回铛。這就產(chǎn)生了一個數(shù)字表示問題狗准,因為伯努利分布不能在0到1之間采樣!

對于在非二值化MNIST上訓練的論文茵肃,我們須將編碼值解釋為相應伯努利變量的輸出概率腔长。如果我們看到像素值為0.9,則實際上表示該像素為1的伯努利似然參數(shù)是0.9验残,而不是樣本自己的采樣值是0.9捞附。 優(yōu)化目標是最小化預測概率分布的輸出概率(由一個標量參數(shù)控制)與數(shù)據(jù)中固有的輸出概率之間的交叉熵。 兩個伯努利的交叉熵用輸出概率可寫成:
H(p, p_\theta) = -\left[(1-p(1)) log (1-p_\theta(1)) + p(1) log p_\theta(1)\right]
根據(jù)本文前半部分的結(jié)論您没,最小化這種交叉熵會等價于最大化似然鸟召!這些玩具圖像數(shù)據(jù)集的平均對數(shù)似然(相對熵)通常以nat為單位報告在論文中。

DRAW論文(Gregor等人2015)將這一想法擴展到每通道顏色的建模氨鹏。 然而欧募,將彩色像素數(shù)據(jù)解釋為輸出概率存在嚴重的缺點。 【不加任何修正地使用伯努利分布的話仆抵,】當我們從生成模型中進行采樣時跟继,我們會得到雜亂、布滿斑點的圖像镣丑,而不是看起來像自然的連貫圖像舔糖。 下面這段Python代碼,可以重現(xiàn)這個問題:

import tensorflow_datasets as tfds
import numpy as np
import matplotlib.pyplot as plt
builder = tfds.builder("cifar10")
builder.download_and_prepare()
datasets = builder.as_dataset()
np_datasets = tfds.as_numpy(datasets)
img = next(np_datasets['train'])['image']
sample = np.random.binomial(1,p=img.astype(np.float32)/256)
fig, arr = plt.subplots(1, 2)
arr[0].imshow(img)
arr[1].imshow((sample*255).astype(np.uint8))
左邊為真實圖像莺匠,右邊為伯努利采樣得到的圖像

將像素值解釋為“輸出概率”會產(chǎn)生不合實際的樣本金吗。這樣做雖然對于手寫數(shù)字和小數(shù)據(jù)庫適用,但是不適用于更大規(guī)模的自然圖像趣竣。使用伯努利解碼器的論文通常會顯示輸出概率(例如在重建或插補任務中)而不是實際樣本摇庙。

像素值作為類別分布

較大的彩色圖像數(shù)據(jù)集(SVHN,CIFAR10期贫,CelebA跟匆,ImageNet)是以8位RGB格式編碼的(每個通道是一個uint8整數(shù)异袄,其值的范圍為0到255通砍,包括0和255)。

我們可以嘗試在圖像中實際uint8像素值上對分布進行建模,而不是將它們的像素值解釋為伯努利輸出概率封孙。 最簡單的選擇之一是256類的類別分布【離散的隨機變量迹冤,在有限多(K個)可能的類別中,依照各個類別具有的概率虎忌,落在其中某個類別上泡徙,所形成的分布】。

從分類分布中采樣允許生成模型對圖像進行采樣而不是對伯努利輸出概率進行采樣膜蠢。

對于彩色圖像堪藐,通常報告各像素以2為底的對數(shù)(比特)為單位的交叉熵,而不是以e為底的對數(shù)挑围。如果測試集的圖像均為3072像素礁竞,平均似然的交叉熵(單位nats)為,“每像素比特數(shù)”為杉辙。

這個度量受到我們前面討論的啟發(fā)模捂,可類比于“平均似然壓縮比”:對于通常使用8位編碼的像素,我們可以使用生成式模型蜘矢,設計一種無損編碼方案(編碼的平均長度恰好等于熵)狂男,將整個數(shù)據(jù)集壓縮到平均像素位長為3【=log_2{8}】。

在撰寫本文時品腹,Cifar10數(shù)據(jù)集上訓練的稀疏變換器(Sparse Transformers)的最佳生成式模型岖食,測試集上達到了每像素2.80比特的似然值。作為比較方案舞吭,PNG和WebP(廣泛使用的無損圖像壓縮算法)分別在Cifar10圖像上達到約5.87和4.61比特的水平(如果不計算像標題和CRC校驗和那樣的額外字節(jié)县耽,PNG格式可低至5.72比特/像素【bpp, bits per pixel】)。

這個結(jié)果令我們歡欣鼓舞镣典,這預示著利用機器學習我們可以設計出比現(xiàn)有壓縮方案更好的兔毙、對內(nèi)容有所感知、編碼又最短的方案兄春。高效的無損壓縮可用于改進哈希算法澎剥,使下載速度更快、改善縮放響應赶舆。最重要的是哑姚,所有這些技術(shù),今天都觸手可得芜茵。

像素值作為“隨機實數(shù)化”的連續(xù)密度分布

如果我們希望通過優(yōu)化連續(xù)密度模型(例如高斯混合模型)叙量,來最大化離散數(shù)據(jù)的對數(shù)似然,可能導致解的“退化”(degeneration)現(xiàn)象九串,最終得到模型給每個可能的離散值{0绞佩,...寺鸥,255}分配相同的可能性。 即使使用了無限充足的數(shù)據(jù)來訓練品山,該模型也可以通過簡單地“擠壓”尖峰胆建,收窄分布,來實現(xiàn)任意高的似然肘交。
【從馴估學(上)得到:
\mathcal{L}(\theta) = \frac{1}{N}\sum_{i=1}^{N}\log p_\theta(x^i) \approx \int p(x) \log p_\theta(x) dx = -H(p, p_\theta)
如果x^i取離散值笆载,則當p_\theta(\cdot)在離散值上等于\frac{1}{N},其余各處為0時涯呻,\mathcal{L}(\theta)=\frac{1}{N}\sum_{i=1}^{N}log\frac{1}{N}=-N\cdot -\frac{1}{N}log{\frac{1}{N}}=-N\cdot H(p)達到理論上的最小值凉驻。示意圖在下方左圖「垂蓿】

實數(shù)化

為了解決這個問題沿侈,常見的做法是將噪聲添加到整數(shù)像素值,來對數(shù)據(jù)進行“實數(shù)化”(De-Quantization)【譯者按:通行譯法是“反量化”或“解量化”市栗,但我覺得“實數(shù)化”更容易理解】缀拭。 這個操作寫為,其中來自均勻分布填帽。據(jù)我所知蛛淋,第一篇在密度建模中使用隨機實數(shù)化的文章是Uria等人的工作(2013年),奠基了Dinh等人在2014年Salimans等人在2017的工作篡腌,以及建立在這三個工作之上的其他工作褐荷,從此隨機實數(shù)化成為實踐中的常見做法。

離散模型在一個個區(qū)間內(nèi)分配概率質(zhì)量(probability mass)嘹悼,而連續(xù)模型則【依據(jù)密度函數(shù)在區(qū)間的每個點上】分配密度叛甫。令P(x)的和p(x)分別表示真實數(shù)據(jù)分布的離散概率質(zhì)量和連續(xù)密度,并令P_\theta(x)的和p_\theta(x)代表模型對二者的估計杨伙。 我們將在下面推導出其监,依據(jù)實數(shù)化后的數(shù)據(jù)y,優(yōu)化其連續(xù)似然模型的密度函數(shù)p_\theta(y)限匣,可以得到優(yōu)化真實數(shù)據(jù)的離散概率質(zhì)量模型P(x)的下界抖苦。【原文符號寫錯了米死⌒坷】

將密度函數(shù)在[0,1]區(qū)間上積分,可以得到密度函數(shù)的總質(zhì)量:
P(x) = \int_0^1 p(x+u) du
P_\theta(x) = \int_0^1 p_\theta(x+u) du
我們從真實數(shù)據(jù)分布中采樣x峦筒,采樣噪聲樣本u究西,得到y=x+u。模型的目標是最大化下式中的似然函數(shù):
\mathbb{E}_{y \sim p}\left[ \log p_\theta(y) \right]
根據(jù)期望的定義:
= \int p(y) \log p_\theta(y) dy
展開被積函數(shù):
=\sum_x \int_0^1 p(x+u) \log{p_\theta(x+u)} du
dy=\frac{\partial y}{\partial u}dx+\frac{\partial y}{\partial x}du=udx+xdu物喷,因為x只能取離散值卤材,\int \{*** \}udx=0
根據(jù)Cauchy-Schwarz不等式:
\leq \sum_x\{[ \int_0^1 p(x+u)du ] [ \int_0^1 \log p_\theta(x+u)du] \}
代入密度函數(shù)的總質(zhì)量:
= \sum_xP(x)[ \int_0^1 \log p_\theta(x+u)du]
=\mathbb{E}_{x \sim P} [ \int_0^1 \log p_\theta(x+u)du]
根據(jù)Jensen不等式:
\leq \mathbb{E}_{x \sim P} \log \int_0^1 p_\theta(x+u)du
代入密度函數(shù)的總質(zhì)量:
= \mathbb{E}_{x \sim P} \log P_\theta(x)
最近的一篇論文Flow ++中提出遮斥,使用學習的實數(shù)化隨機變量,可以改善變分上界的緊致性商膊。直觀理解伏伐,單個重要性采樣q(u|x)的導致的噪聲方差宠进,將小于均勻采樣u\sim U(0,1)在積分\int_0^1 p_\theta(x+u)du上導致的噪聲方差【晕拆,而較低的噪聲方差將是上限緊致的關(guān)鍵因素】。由于不同架構(gòu)選擇了迥異的實數(shù)化方案材蹬,所以這一系列工作之間不能以控制變量的方式來公平比較实幕。
【變分法形式化大致如下:
\mathbb{E}_{x \sim P} \log P_\theta(x)
=\mathbb{E}_{x \sim P} [ \log\int_0^1 q(u|x)\frac{p_\theta(x+u)}{q(u|x)}du]
\geq \mathbb{E}_{x \sim P} [ \int_0^1 q(u|x)\log\frac{p_\theta(x+u)}{q(u|x)}du]
=\mathbb{E}_{x \sim P}\mathbb{E}_{u \sim q(\cdot |x)} \log\frac{p_\theta(x+u)}{q(u|x)}

【為了公平】比較Flow ++和均勻采樣的實數(shù)化框架的生成模型,一種方法是允許研究人員在訓練時使用(他們喜歡的)任何一種變分下界堤器,但是在模型評估時將似然評估的值昆庇,統(tǒng)一換算成多個樣本的緊密下界。直觀理解闸溃,當整合了更多樣本后整吆,我們的估計模型P_\theta(X)可以更好地逼近相應離散模型的真實對數(shù)似然。

例如辉川,我們可以報告從固定的U(0,1)采樣得到的實數(shù)化分布的多樣本下界表蝙,就像VAE文獻中通常所做的那樣,給出的多樣本IWAE下界乓旗。有關(guān)VAE和IWAE變分下界的討論超出了本教程的范圍府蛇,我會在將來單獨介紹。

【關(guān)于圖像的討論還未結(jié)束屿愚,另外對標準化流也將在“馴估學”(下)中繼續(xù)汇跨。請接著讀下去,加油妆距!】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末穷遂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子娱据,更是在濱河造成了極大的恐慌塞颁,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吸耿,死亡現(xiàn)場離奇詭異祠锣,居然都是意外死亡,警方通過查閱死者的電腦和手機咽安,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門伴网,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妆棒,你說我怎么就攤上這事澡腾》蟹” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵动分,是天一觀的道長毅糟。 經(jīng)常有香客問我,道長澜公,這世上最難降的妖魔是什么姆另? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘堪嫂。我一直安慰自己,他們只是感情好明吩,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著殷费,像睡著了一般印荔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上详羡,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天仍律,我揣著相機與錄音,去河邊找鬼殷绍。 笑死染苛,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的主到。 我是一名探鬼主播茶行,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼登钥!你這毒婦竟也來了畔师?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤牧牢,失蹤者是張志新(化名)和其女友劉穎看锉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塔鳍,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡伯铣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了轮纫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腔寡。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掌唾,靈堂內(nèi)的尸體忽然破棺而出放前,到底是詐尸還是另有隱情忿磅,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布凭语,位于F島的核電站葱她,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏似扔。R本人自食惡果不足惜吨些,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虫几。 院中可真熱鬧锤灿,春花似錦挽拔、人聲如沸辆脸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啡氢。三九已至,卻和暖如春术裸,著一層夾襖步出監(jiān)牢的瞬間倘是,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工袭艺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留搀崭,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓猾编,卻偏偏與公主長得像瘤睹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子答倡,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 按照用途分類出以下統(tǒng)計函數(shù): AVEDEV 用途:返回一組數(shù)據(jù)與其平均值的絕對偏差的平均值轰传,該函數(shù)可以評測數(shù)據(jù)(例...
    四方院祭司閱讀 2,884評論 0 3
  • 隨機變量是根據(jù)偶然性取值的變量。我們在談到隨機變量時瘪撇,通常是以“概率分布”的形式來描述他們获茬。也即:隨機變量落在每一...
    小貍投資閱讀 5,319評論 1 7
  • 樸素貝葉斯 在機器學習中,樸素貝葉斯分類器是一系列以假設特征之間強(樸素)獨立下運用貝葉斯定理為基礎(chǔ)的簡單概率分類...
    七八音閱讀 20,518評論 0 21
  • 這幾天在我家發(fā)生了一個小小的變化倔既,我兒子突然的愛洗臉和刷牙了恕曲,以前每天吵著嚷著都不管用,現(xiàn)在變得主動了渤涌。還有每天起...
    冰山雪蓮_3282閱讀 219評論 0 3
  • 先上前幾篇的地址第一篇第二篇第三篇接著上一篇直接走吧佩谣,在CacheInterceptor執(zhí)行之后 下一個執(zhí)行的攔截...
    范錦浩閱讀 309評論 0 0