眾所周知,深度學(xué)習(xí)在實(shí)時(shí)視頻通信端到端系統(tǒng)里有很多的應(yīng)用,比如說我們用它做超分辨率,能取得比較好的效果;我們用它做圖像恢復(fù),也能取得比較好的效果。如果說提及挑戰(zhàn)的話,在支持移動(dòng)端的應(yīng)用里,我們必須考慮復(fù)雜性的限制,必須要以一個(gè)小的模型,能夠在移動(dòng)平臺(tái)上實(shí)時(shí)運(yùn)行,而且功耗、CPU 占比都得到合適的限制。另外應(yīng)該在相對(duì)合理的數(shù)據(jù)集上取得比較好的學(xué)習(xí)效果,讓它的泛化能力很強(qiáng)。
簡(jiǎn)單展示一下結(jié)果,我們用傳統(tǒng)的算法得到的效果通常比較模糊,基于深度學(xué)習(xí)的算法我們則能恢復(fù)出更多細(xì)節(jié)、甚至生成出一些細(xì)節(jié)。
從計(jì)算量來看,我們目前能做到把 480x360 放大到 960x720 在 iPhone6 的 GPU 上達(dá)到 120fps,使得復(fù)雜性得到比較有效的控制。
我們用生成對(duì)抗網(wǎng)絡(luò)的方式來做超分,生成對(duì)抗網(wǎng)絡(luò)最近兩三年比較熱,在人工智能學(xué)習(xí)算法的學(xué)術(shù)會(huì)議上,這兩年甚至達(dá)到了 2/3 以上的論文都是跟生成對(duì)抗網(wǎng)絡(luò)有關(guān)。生成對(duì)抗網(wǎng)絡(luò)通常包括一個(gè)生成器和一個(gè)判別器,生成器盡量模擬真實(shí)數(shù)據(jù),要像真實(shí)數(shù)據(jù)一樣來欺騙判別器,讓判別器認(rèn)為生成的數(shù)據(jù)是真實(shí)的,符合真實(shí)數(shù)據(jù)的分布。判別器的任務(wù)正好相反,它要盡量的讓生成的數(shù)據(jù)通不過考驗(yàn),這個(gè)標(biāo)準(zhǔn)越高,通不過的概率就越高。所以生成器和判別器在彼此的矛盾沖突中共同進(jìn)步,最終達(dá)到判別器也判別不出來是真是假這樣一個(gè)程度。
生成器就是把一個(gè)隨機(jī)的分布,一個(gè)噪聲 Z,經(jīng)過生成器之后產(chǎn)生一個(gè)圖像能跟真的很像。下圖形象地表示生成器在逼近真實(shí)數(shù)據(jù)的分布,綠色是這個(gè)模型產(chǎn)生的分布,在相互矛盾沖突之中逐漸達(dá)到真實(shí)數(shù)據(jù)就是黑色虛線的分布。Z,就是我剛才說的,比如說一個(gè)隨機(jī)變量,它能生成出我們想要的結(jié)果,從公式上說實(shí)際上生成器在做一件事,它是使判別器犯錯(cuò)的概率最大,就是判別器分不出真假,分不出生成東西是假的,就是要讓它犯錯(cuò)。
這個(gè)判別器,它是要首先最大化一個(gè)真實(shí)數(shù)據(jù)為真的這個(gè)概率,最小化生成器為真的概率就是我剛才說的矛盾沖突,用公式也是可以表示出來的。這個(gè)判別器的最佳解是有數(shù)學(xué)解的,就是達(dá)到納什均衡。把這兩個(gè)生成器和判別器綜合到一起就是一個(gè)價(jià)值函數(shù)的最大最小優(yōu)化。
這個(gè)有什么問題?這個(gè)生成器為了通過判別器的檢驗(yàn),就找了一些它比較好生成的模式來生成,所以訓(xùn)練完之后比如就大概率生成 1,因?yàn)?1 很好通過,就是一豎,所以生成器的學(xué)習(xí)某種意義上會(huì)耍點(diǎn)小聰明,它會(huì)試圖學(xué)習(xí)那些最容易學(xué)的樣本,多產(chǎn)生一些容易判對(duì)的樣本,這就是生成器在做的情形,但這是不理想的情形。
換一個(gè)圖來看,比如分布是一個(gè)均勻的圓,生成器可能最后收斂到某一個(gè)地方,總收斂到某一個(gè)地方也總通過。判別器因?yàn)榭偼ㄟ^,網(wǎng)絡(luò)狀態(tài)最后就收斂這么一個(gè)狀況。生成器比較難于生成這種多模態(tài)、有多個(gè)聚類的分布,我們把這個(gè)現(xiàn)象叫模式坍塌。
具體的挑戰(zhàn)涉及什么,我簡(jiǎn)單說一下,我們?cè)趺礃泳徑膺@個(gè)模式坍塌,就是使得生成器別陷入耍小聰明騙過了判別器的狀態(tài)。第二是我們給定一個(gè)卷積神經(jīng)網(wǎng)絡(luò),它表現(xiàn)有多好、學(xué)習(xí)能力有多強(qiáng)。換句話問,我們給定一個(gè)深度學(xué)習(xí)的任務(wù),深度卷積神經(jīng)網(wǎng)絡(luò)能做到多小,還能達(dá)到比較好的效果。
為了降低模式坍塌出現(xiàn)的概率,首先通常會(huì)要求加一個(gè)局域的限制,要求生成器不僅要騙過判別器,而且要讓它帶有噪聲的輸入要像真實(shí)的樣本,這樣的話生成出來跟真實(shí)樣本不會(huì)差太多。就相當(dāng)于在損失函數(shù)上,加了一項(xiàng),生成的東西要跟目標(biāo)像,即監(jiān)督學(xué)習(xí)。
再換一個(gè)角度看,實(shí)際上深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它是一個(gè)流形,這個(gè)流形是一個(gè)拓?fù)淇臻g,能把流形同胚映射到 N 維的實(shí)數(shù)空間,同胚映射的意思就是正映射和逆映射都是連續(xù)的。我簡(jiǎn)單說一下這個(gè)概念,比如一個(gè)三維空間中的曲面,是一個(gè)二維的流形,從編碼的角度來說,它可以對(duì)應(yīng)一個(gè)隱空間,隱空間是二維的,正映射是降維,是個(gè)編碼的過程,或者在分類的問題里我們會(huì)試圖在隱空間里分的更好。反過來講從隱空間到流形就是變成一個(gè)生成器,就是解碼的過程,從精簡(jiǎn)的數(shù)據(jù)恢復(fù)到它看起來的外觀是我們希望的樣子。
這個(gè)曲面在三維空間,我們叫環(huán)境空間。Wasserstein 設(shè)計(jì)了一個(gè)生成對(duì)抗網(wǎng)絡(luò)其實(shí)也有很多層,到達(dá)十層的網(wǎng)絡(luò)。他要做的事情就是把兩個(gè)高斯分布:一個(gè)在零點(diǎn),一個(gè)在 40×40 的地方,把分布學(xué)會(huì)。結(jié)果發(fā)現(xiàn)這個(gè)多達(dá)十層的一個(gè)深度學(xué)習(xí)網(wǎng)絡(luò)居然學(xué)不會(huì),當(dāng)收斂之后表現(xiàn)為橘色這些點(diǎn),就是最后收斂的狀態(tài)。當(dāng)數(shù)據(jù)分布有多個(gè)聚類或者多個(gè)峰值混合分布的時(shí)候,這樣的流形對(duì)生成對(duì)抗網(wǎng)絡(luò)是有挑戰(zhàn)的。
卷積神經(jīng)網(wǎng)絡(luò)是什么?我們來看基于矯正的線性單元(ReLU)的卷積神經(jīng)網(wǎng)絡(luò), 它可以看成是一個(gè)分段線性的映射,我們看這幾個(gè)常用的激活函數(shù)其實(shí)都是分段線性,不管有參數(shù)還是隨機(jī)的,都是分段線性的一個(gè)映射。
所以這個(gè)流形就被這些分段線性的映射分成了很多子空間,分成很多小的立方體,所以這個(gè)流形經(jīng)過編碼器之后就變成很多小空間,都是分段線性的,是多個(gè)小的多面體。
怎么理解這個(gè)模式坍塌是怎么來的?當(dāng)編碼器 E,把流形 M 映射到隱空間 E(M)之后,它的分布往往是極其不均勻的,在這個(gè)不均勻的奇異分布里要進(jìn)行分類或者控制都是很難的。提一個(gè)問題,我們是否能引入另外一個(gè)隱空間,它能映射到 Z,與生成器 G 復(fù)合起來 G*T,能把這個(gè) Z’分布比較好比較均勻的分布映射回流形,這樣不管做分類,還是做采樣點(diǎn)的控制,都應(yīng)該是比較容易的。丘成桐教授等做了一些分析工作,用最佳質(zhì)量映射,能把我剛才說的立方體又較好地重新映射回去。
如果不做最佳質(zhì)量映射,直接應(yīng)用解碼器,會(huì)有問題。在編碼域上進(jìn)行均勻的采樣(通常有規(guī)律的、比如均勻是我們最能掌握的,非均勻的東西我們很難控制得好),那么我把它重疊在編碼域的圖上,對(duì)這些采樣出來的點(diǎn),如果直接用生成器(也是解碼器)重構(gòu),恢復(fù)出來這些點(diǎn),放到原來的圖上,可以看到頭部非常稀疏,這個(gè)稀疏可以理解成在編碼以后的隱空間用這些均勻采樣點(diǎn)來解碼,很難解出在頭部也能均勻恢復(fù)的效果,這也是模式坍塌的一種。
如果加上這個(gè)最佳質(zhì)量傳輸映射,在這個(gè) Z’隱空間做均勻采樣,再恢復(fù)。就是剛才說的把最佳質(zhì)量映射和生成器在一塊,恢復(fù)出來的效果就是比較均勻的。可以看到這個(gè)質(zhì)量是會(huì)更好,所以這個(gè)最佳質(zhì)量映射,能在均勻分布的隱空間上使得控制變得非常容易。
丘成桐教授等發(fā)現(xiàn)解碼器和編碼器在數(shù)學(xué)上有閉式公式可以關(guān)聯(lián)起來,簡(jiǎn)單說只要有其中一個(gè)就可以推導(dǎo)出另外一個(gè),這個(gè)在數(shù)學(xué)上是保證了的。有了這個(gè)結(jié)論,用到深度學(xué)習(xí),就是只要訓(xùn)練好其中一個(gè),就通過幾何計(jì)算的方法來恢復(fù)出另外一個(gè),不需要訓(xùn)練另外一個(gè),免除了數(shù)據(jù)的擔(dān)憂。但實(shí)際上高維空間中去推導(dǎo)最佳質(zhì)量映射,是比較困難的,基本上在有限的計(jì)算資源下不太容易做到的。所以并沒有完全顛覆我們對(duì)深度神經(jīng)網(wǎng)絡(luò)的認(rèn)識(shí)。
這里有一個(gè)問題,這個(gè)最佳質(zhì)量映射也可以通過深度神經(jīng)網(wǎng)絡(luò)的方式來學(xué)習(xí)。第二個(gè)自然產(chǎn)生的問題,我們是不是要學(xué)兩次?我們能不能一次把這個(gè)復(fù)合映射學(xué)會(huì)?顯然這是很有實(shí)際意義的問題:有兩個(gè)模型把它合成一個(gè)模型。
再換一個(gè)視角來看模式坍塌,這個(gè)視角可能更好理解一點(diǎn)。舉例子來說,三維空間中有一個(gè)二維曲面,每一個(gè)點(diǎn)上有一個(gè)切面,對(duì)較為規(guī)范的流形來說這個(gè)切面應(yīng)該是一個(gè)二維的平面,當(dāng)這個(gè)二維的平面退化成一條線甚至是零維的一個(gè)點(diǎn),這時(shí)候模式坍塌一定發(fā)生。因?yàn)橥嘶梢粭l線的時(shí)候,在其法向量方向上,另外一個(gè)坐標(biāo)軸再怎么變都不影響結(jié)果,這是模式坍塌。退化成零維的時(shí)候更是如此了。
我們可以在損失函數(shù)中加上另外一項(xiàng)懲罰項(xiàng),這個(gè)懲罰項(xiàng)表示跟一個(gè)恒等矩陣的差,這一項(xiàng)加到損失函數(shù)里。它試圖使得切空間是滿秩的,不會(huì)退化到一維或者零維,這樣也能有效的減低模式坍塌的出現(xiàn),這是從另外一個(gè)視角看這個(gè)問題。
下一個(gè)問題,如果給了一個(gè)基于矯正分段線性激活函數(shù)(ReLU)的卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力究竟能有多強(qiáng)?換句話說給定一個(gè)任務(wù),我們能設(shè)計(jì)多小的一個(gè)神經(jīng)網(wǎng)絡(luò)來完成任務(wù)?我們希望還是能限定它的復(fù)雜性,而不是完全開放式的摸索。這樣的話多少能給我們探索在移動(dòng)設(shè)備上的深度學(xué)習(xí)算法,提供一些指導(dǎo)原則。
剛才我提到了編碼器和解碼器都是分段線性函數(shù),解碼器把立方體分的更小,立方體越多越能把縫隙填滿,這個(gè)逼近的質(zhì)量決定了編碼器和解碼器最終的效果。這個(gè)很容易理解,一條曲線如果用一段線逼近它和用四條線逼近它,四段肯定逼近的更好,甚至用更多線段來無窮逼近,這個(gè)當(dāng)然對(duì)原來的曲線是有一定限定的,比如是凸曲面等等。
這個(gè)矯正的復(fù)雜度,一個(gè)分段映射的復(fù)雜性是表征逼近能力的一個(gè)度量。它定義成,在 N 維的時(shí)空間上,最大的連通子集數(shù),在每一個(gè)連通子集上編碼器都是線性的,說穿了是分段線性。這是表征了這個(gè)解碼器的能力。一個(gè) K+2 層的深度卷積神經(jīng)網(wǎng)絡(luò),由它所能表征的最復(fù)雜的分段線性映射來表征。
每一組不同的參數(shù)就定義了一組分段線性函數(shù),當(dāng)然參數(shù)不同的時(shí)候,它的能力不同。那么就有這么一個(gè)結(jié)論,深度神經(jīng)網(wǎng)絡(luò)的復(fù)雜性是有上界的,這是一個(gè)很好的結(jié)論。如果我們知道我們要學(xué)習(xí)的任務(wù),它的復(fù)雜性是高于這個(gè)上限的時(shí)候,我們這個(gè)深度神經(jīng)網(wǎng)絡(luò)就設(shè)計(jì)得太小,肯定學(xué)不好。學(xué)不好有很多表現(xiàn),比如泛化能力會(huì)比較差。不管你訓(xùn)練多少樣本,你可能學(xué)到的分布跟實(shí)際數(shù)據(jù)的分布都是不一致的,都是有偏差的。我們可以想像在實(shí)際應(yīng)用中,肯定有些數(shù)據(jù)的實(shí)際效果不是那么好。
同時(shí),它也有一個(gè)下界,下界的理解比較簡(jiǎn)單,某個(gè)權(quán)重,使得網(wǎng)絡(luò)復(fù)雜度最小的權(quán)重。
這樣深度卷積神經(jīng)網(wǎng)絡(luò)的表征能力有上界也有下界,基本回答我剛才說的那個(gè)問題。我有幾點(diǎn)體會(huì)。一個(gè)是因?yàn)橐笸負(fù)淇臻g上來做同胚映射,這個(gè)限制其實(shí)是較強(qiáng)的制約,其實(shí)只能學(xué)比較簡(jiǎn)單的幾個(gè)拓?fù)浣Y(jié)構(gòu),不能學(xué)太復(fù)雜的東西,或者只能學(xué)一個(gè)局部,一個(gè)局部學(xué)的很好,全局學(xué)起來有困難。最佳質(zhì)量映射,能夠有幫助,但在高維空間中計(jì)算出這個(gè)最佳質(zhì)量映射,也算是一個(gè)比較挑戰(zhàn)的事。第三個(gè)結(jié)論,給定任何一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò),一定能找到一個(gè)流形嵌入到這個(gè)它輸入的環(huán)境空間中,而它的分布不能被這個(gè)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)。我們對(duì)模式坍塌是有一定辦法來緩解;對(duì)算法復(fù)雜性,我們能有一定的辦法,能使神經(jīng)網(wǎng)絡(luò)的復(fù)雜性有所界定。
-
通信
+關(guān)注
關(guān)注
18文章
5950瀏覽量
135788 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5466瀏覽量
120891
原文標(biāo)題:應(yīng)用于實(shí)時(shí)視頻通信的深度學(xué)習(xí)算法研究
文章出處:【微信號(hào):shengwang-agora,微信公眾號(hào):聲網(wǎng)Agora】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論