(成都理工大學(xué) 四川 成都 610059)
自動(dòng)編碼器有潛力解決日益增長(zhǎng)的有損壓縮算法的需求。根據(jù)不同的情況,需要不同計(jì)算復(fù)雜度的編碼器和解碼器。開發(fā)一種新的編解碼器可能需要數(shù)年時(shí)間,但基于神經(jīng)網(wǎng)絡(luò)的更通用的壓縮框架可能能夠更快地適應(yīng)這些不斷變化的任務(wù)和環(huán)境。不幸的是,有損壓縮本質(zhì)上是一個(gè)不可微的問(wèn)題。我們的目標(biāo)是直接優(yōu)化自動(dòng)編碼器產(chǎn)生的速率失真權(quán)衡。通過(guò)提出了一種簡(jiǎn)單而有效的方法來(lái)處理基于四舍五入的量化的不可微性,并逼近生成系數(shù)編碼的不可微代價(jià)。
通過(guò)使用這種方法,我們可以獲得與jpeg2000相似或更好的性能。然而,與jpeg2000不同的是,我們的框架可以針對(duì)特定的內(nèi)容(例如縮略圖或非自然圖像)、任意指標(biāo)進(jìn)行優(yōu)化,并且易于推廣到其他方面。
定義一個(gè)壓縮自編碼器(CAE)有三個(gè)組件:編碼器f,解碼器g和概率模型Q,
f:N→M,g:M→N,Q:M→[0,1].
(1)
由Q定義的離散概率分布用于根據(jù)比特?cái)?shù)的頻率將比特?cái)?shù)賦給表示,即熵編碼。這三個(gè)組件可能都有參數(shù),我們的目標(biāo)是優(yōu)化使用少量比特和具有較小失真之間的權(quán)衡,
(2)
這里,β控制的權(quán)衡,方括號(hào)表示量化舍入到最接近的整數(shù),和d措施引入失真編碼和解碼。編碼器的量化輸出是用于表示圖像并無(wú)損存儲(chǔ)的代碼。遺憾的是,我們不能使用基于梯度的技術(shù)直接優(yōu)化方程(2),因?yàn)镼和[·]是不可微的。下面兩部分提出了解決這個(gè)問(wèn)題的方法。
(3)
重要的是,并沒有完全用光滑的近似來(lái)代替舍入函數(shù),而只是用它的導(dǎo)數(shù)來(lái)代替,這意味著在前向傳遞中仍然像往常一樣進(jìn)行量化。從經(jīng)驗(yàn)上看,發(fā)現(xiàn)等式r(y)=y和更復(fù)雜的選擇一樣有效。這使得該操作易于實(shí)現(xiàn),因?yàn)槲覀冎恍鑼⑻荻葌鬟f給編碼器,而無(wú)需修改解碼器。注意,如果d是可微的,那么相對(duì)于解碼器s參數(shù)的梯度可以不用近似計(jì)算。與相關(guān)方法相比,我們的方法的優(yōu)點(diǎn)是不改變解碼器的梯度,因?yàn)榍跋騻鬟f保持不變。
接下來(lái),將討論其他作者提出的替代方法。受抖動(dòng)理論聯(lián)系的啟發(fā),Ballé等(2016)提出用加性均勻噪聲代替量化,
[f(X)]≈f(X)+u.
(4)
另一方面,Toderici等人(2016a)使用了隨機(jī)形式的二值化(Williams,1992)。將這一思想推廣到整數(shù),我們定義了以下隨機(jī)四舍五入操作:
{y}≈?y」+ε,ε∈{0,1},P(ε=1)=y-?y」,
(5)
其中?.」為樓層操作員。在向后傳遞過(guò)程中,導(dǎo)數(shù)被期望的導(dǎo)數(shù)代替,
(6)
(7)
上界由:
(8)
其中第二步是從Jensen ‘s不等式推導(dǎo)而來(lái)(參見Theis等人,2016)。上界的無(wú)偏估計(jì)是通過(guò)從單位立方體中采樣u得到的[-.5,.5[M。如果我們使用可微密度,這個(gè)估計(jì)在z上是可微的,因此可以用來(lái)訓(xùn)練編碼器。
-log2q([f(x)°λ]+u)+β·d(x,g([f(x)°λ]/λ)).
(9)
這里,°表示點(diǎn)乘和除法也按點(diǎn)乘執(zhí)行。為了減少可訓(xùn)練比例尺的數(shù)量,它們可以進(jìn)一步跨維度共享。例如,當(dāng)f和g是卷積的時(shí)候,我們共享跨空間維度的尺度參數(shù),但不共享跨通道的尺度參數(shù)。
與這樣的做法最密切相關(guān)的是Ballé等人(2016)的工作。主要的區(qū)別在于處理量化和熵率估計(jì)的方式。Ballé等人(2016)所使用的變換由單一線性層和一種對(duì)比度增益控制形式組成,而本文的框架依賴于更標(biāo)準(zhǔn)的深度卷積神經(jīng)網(wǎng)絡(luò)。
Toderici等(2016a)提出使用遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)進(jìn)行壓縮。與本文工作中的熵編碼不同,網(wǎng)絡(luò)試圖將給定比特?cái)?shù)的失真最小化。圖像以迭代方式編碼,并在每個(gè)步驟中執(zhí)行解碼,以便能夠在下一次迭代中考慮殘差。這種設(shè)計(jì)的一個(gè)優(yōu)點(diǎn)是它允許圖像的漸進(jìn)編碼。缺點(diǎn)是它的壓縮比本文的方法耗費(fèi)更多的時(shí)間,因?yàn)楸疚氖褂酶咝У木矸e神經(jīng)網(wǎng)絡(luò),并且在編碼階段不需要解碼。
Gregor等人(2016)探索了使用變分自編碼器與循環(huán)編碼器和解碼器對(duì)小圖像進(jìn)行壓縮。這種類型的自動(dòng)編碼器被訓(xùn)練成最大化對(duì)數(shù)可能性的下界,或者等價(jià)地最小化
(10)
其中p(y|x)為編碼器,q(x|y)為解碼器。而Gregor等人(2016)使用編碼器的高斯分布,我們可以聯(lián)系他們的工作方法Ballé等人(2016)通過(guò)假設(shè)它是制服,p(y|x)=f(x)+u。果我們還假設(shè)固定方差的高斯可能性,q(x|y)=Ν(x|g(y),σ2Ι),目標(biāo)函數(shù)可以寫
(11)
這里C是一個(gè)常數(shù),它包含編碼器的負(fù)熵和高斯似然的歸一化常數(shù)。注意,這個(gè)方程是相同的率失真的權(quán)衡與β=σ-2/2和量化取代添加劑均勻噪聲。然而,并不是所有的失真都有一個(gè)等價(jià)的公式作為一個(gè)變分自動(dòng)編碼器(Kingma & Welling,2014)。只有當(dāng)e-d(x,y)在x中可歸一化且歸一化常數(shù)不依賴于y時(shí),這才成立,否則C就不是常數(shù)。
在未來(lái)的工作中,希望探索不同指標(biāo)下壓縮自編碼器的優(yōu)化方法。Bruna 等人(2016)提出了一個(gè)很有前景的方向,他使用基于訓(xùn)練的用于圖像分類的神經(jīng)網(wǎng)絡(luò)的度量獲得了有趣的超分辨率結(jié)果。Gatys等人(2016)使用了類似的表示方法,在感知意義風(fēng)格轉(zhuǎn)移方面實(shí)現(xiàn)了突破。感知度量的另一種選擇可能是使用生成的對(duì)抗網(wǎng)絡(luò)(GANs;Goodfellow等,2014)?;贐runa等人(2016)和Dosovitskiy & Brox等人(2016)的工作,Ledig等人(2016)最近將GANs和基于特征的度量標(biāo)準(zhǔn)結(jié)合起來(lái),展示了令人印象深刻的超分辨率結(jié)果。