應用於實時視頻通訊的深度學習算法

本文整理了聲網首席科學家鐘聲,在 RTC 2018實時互聯網大會上的乾貨演講。如下爲演講內容,如須要 PPT 與演講視頻,請於文末獲取。
算法

做者簡介:鐘聲,現任聲網首席科學家,北京大學數學系本科和博士畢業,美國馬里蘭大學自動化研究中心博士後。約有 100 項發明專利。曾是 MPEG/JVT (H.264) 與 INCITS 主要成員,IEEE 成員,並發表了 30 餘篇學術論文,內容覆蓋了模式識別、視頻編解碼、計算機視覺等技術領域。曾任美國博通公司資深主任科學家和技術總監、華亞微電子公司技術副總裁、海信集團芯片公司總經理等職。
網絡

歡迎訪問 RTC 開發者社區,與更多 RTC 開發者交流經驗。 
併發



衆所周知,深度學習在實時視頻通訊端到端系統裏有不少的應用,好比說咱們用它作超分辨率,能取得比較好的效果;咱們用它作圖像恢復,也能取得比較好的效果。若是說說起挑戰的話,在支持移動端的應用裏,咱們必須考慮複雜性的限制,必需要以一個小的模型,可以在移動平臺上實時運行,並且功耗、CPU 佔比都獲得合適的限制。另外應該在相對合理的數據集上取得比較好的學習效果,讓它的泛化能力很強。函數

簡單展現一下結果,咱們用傳統的算法獲得的效果一般比較模糊,基於深度學習的算法咱們則能恢復出更多細節、甚至生成出一些細節。學習

從計算量來看,咱們目前能作到把 480x360 放大到 960x720 在 iPhone6 的 GPU 上達到 120fps,使得複雜性獲得比較有效的控制。優化

咱們用生成對抗網絡的方式來作超分,生成對抗網絡最近兩三年比較熱,在人工智能學習算法的學術會議上,這兩年甚至達到了 2/3 以上的論文都是跟生成對抗網絡有關。生成對抗網絡一般包括一個生成器和一個判別器,生成器儘可能模擬真實數據,要像真實數據同樣來欺騙判別器,讓判別器認爲生成的數據是真實的,符合真實數據的分佈。判別器的任務正好相反,它要儘可能的讓生成的數據通不過考驗,這個標準越高,通不過的機率就越高。因此生成器和判別器在彼此的矛盾衝突中共同進步,最終達到判別器也判別不出來是真是假這樣一個程度。編碼

生成器就是把一個隨機的分佈,一個噪聲 Z,通過生成器以後產生一個圖像能跟真的很像。下圖形象地表示生成器在逼近真實數據的分佈,綠色是這個模型產生的分佈,在相互矛盾衝突之中逐漸達到真實數據就是黑色虛線的分佈。Z,就是我剛纔說的,好比說一個隨機變量,它能生成出咱們想要的結果,從公式上說實際上生成器在作一件事,它是使判別器犯錯的機率最大,就是判別器分不出真假,分不出生成東西是假的,就是要讓它犯錯。人工智能

這個判別器,它是要首先最大化一個真實數據爲真的這個機率,最小化生成器爲真的機率就是我剛纔說的矛盾衝突,用公式也是能夠表示出來的。這個判別器的最佳解是有數學解的,就是達到納什均衡。把這兩個生成器和判別器綜合到一塊兒就是一個價值函數的最大最小優化。設計

這個有什麼問題?這個生成器爲了經過判別器的檢驗,就找了一些它比較好生成的模式來生成,因此訓練完以後好比就大機率生成 1,由於 1 很好經過,就是一豎,因此生成器的學習某種意義上會耍點小聰明,它會試圖學習那些最容易學的樣本,多產生一些容易判對的樣本,這就是生成器在作的情形,但這是不理想的情形。orm

換一個圖來看,好比分佈是一個均勻的圓,生成器可能最後收斂到某一個地方,總收斂到某一個地方也總經過。判別器由於總經過,網絡狀態最後就收斂這麼一個情況。生成器比較難於生成這種多模態、有多個聚類的分佈,咱們把這個現象叫模式坍塌。

具體的挑戰涉及什麼,我簡單說一下,咱們怎麼樣緩解這個模式坍塌,就是使得生成器別陷入耍小聰明騙過了判別器的狀態。第二是咱們給定一個卷積神經網絡,它表現有多好、學習能力有多強。換句話問,咱們給定一個深度學習的任務,深度卷積神經網絡能作到多小,還能達到比較好的效果。


爲了下降模式坍塌出現的機率,首先一般會要求加一個局域的限制,要求生成器不只要騙過判別器,並且要讓它帶有噪聲的輸入要像真實的樣本,這樣的話生成出來跟真實樣本不會差太多。就至關於在損失函數上,加了一項,生成的東西要跟目標像,即監督學習。

再換一個角度看,實際上深度學習的神經網絡,它是一個流形,這個流形是一個拓撲空間,能把流形同胚映射到 N 維的實數空間,同胚映射的意思就是正映射和逆映射都是連續的。我簡單說一下這個概念,好比一個三維空間中的曲面,是一個二維的流形,從編碼的角度來講,它能夠對應一個隱空間,隱空間是二維的,正映射是降維,是個編碼的過程,或者在分類的問題裏咱們會試圖在隱空間裏分的更好。反過來說從隱空間到流形就是變成一個生成器,就是解碼的過程,從精簡的數據恢復到它看起來的外觀是咱們但願的樣子。

這個曲面在三維空間,咱們叫環境空間。Wasserstein 設計了一個生成對抗網絡其實也有不少層,到達十層的網絡。他要作的事情就是把兩個高斯分佈:一個在零點,一個在 40×40 的地方,把分佈學會。結果發現這個多達十層的一個深度學習網絡竟然學不會,當收斂以後表現爲橘色這些點,就是最後收斂的狀態。當數據分佈有多個聚類或者多個峯值混合分佈的時候,這樣的流形對生成對抗網絡是有挑戰的。

卷積神經網絡是什麼?咱們來看基於矯正的線性單元(ReLU)的卷積神經網絡, 它能夠當作是一個分段線性的映射,咱們看這幾個經常使用的激活函數其實都是分段線性,無論有參數仍是隨機的,都是分段線性的一個映射。

因此這個流形就被這些分段線性的映射分紅了不少子空間,分紅不少小的立方體,因此這個流形通過編碼器以後就變成不少小空間,都是分段線性的,是多個小的多面體。

怎麼理解這個模式坍塌是怎麼來的?當編碼器 E,把流形 M 映射到隱空間 E(M)以後,它的分佈每每是極其不均勻的,在這個不均勻的奇異分佈裏要進行分類或者控制都是很難的。提一個問題,咱們是否能引入另一個隱空間,它能映射到 Z,與生成器 G 複合起來 G*T,能把這個 Z’分佈比較比如較均勻的分佈映射回流形,這樣無論作分類,仍是作採樣點的控制,都應該是比較容易的。丘成桐教授等作了一些分析工做,用最佳質量映射,能把我剛纔說的立方體又較好地從新映射回去。

若是不作最佳質量映射,直接應用解碼器,會有問題。在編碼域上進行均勻的採樣(一般有規律的、好比均勻是咱們最能掌握的,非均勻的東西咱們很難控制得好),那麼我把它重疊在編碼域的圖上,對這些採樣出來的點,若是直接用生成器(也是解碼器)重構,恢復出來這些點,放到原來的圖上,能夠看到頭部很是稀疏,這個稀疏能夠理解成在編碼之後的隱空間用這些均勻採樣點來解碼,很難解出在頭部也能均勻恢復的效果,這也是模式坍塌的一種。

若是加上這個最佳質量傳輸映射,在這個 Z’隱空間作均勻採樣,再恢復。就是剛纔說的把最佳質量映射和生成器在一塊,恢復出來的效果就是比較均勻的。能夠看到這個質量是會更好,因此這個最佳質量映射,能在均勻分佈的隱空間上使得控制變得很是容易。

丘成桐教授等發現解碼器和編碼器在數學上有閉式公式能夠關聯起來,簡單說只要有其中一個就能夠推導出另一個,這個在數學上是保證了的。有了這個結論,用到深度學習,就是隻要訓練好其中一個,就經過幾何計算的方法來恢復出另一個,不須要訓練另一個,免除了數據的擔心。但實際上高維空間中去推導最佳質量映射,是比較困難的,基本上在有限的計算資源下不太容易作到的。因此並無徹底顛覆咱們對深度神經網絡的認識。

這裏有一個問題,這個最佳質量映射也能夠經過深度神經網絡的方式來學習。第二個天然產生的問題,咱們是否是要學兩次?咱們能不能一次把這個複合映射學會?顯然這是頗有實際意義的問題:有兩個模型把它合成一個模型。

再換一個視角來看模式坍塌,這個視角可能更好理解一點。舉例子來講,三維空間中有一個二維曲面,每個點上有一個切面,對較爲規範的流形來講這個切面應該是一個二維的平面,當這個二維的平面退化成一條線甚至是零維的一個點,這時候模式坍塌必定發生。由於退化成一條線的時候,在其法向量方向上,另一個座標軸再怎麼變都不影響結果,這是模式坍塌。退化成零維的時候更是如此了。

咱們能夠在損失函數中加上另一項懲罰項,這個懲罰項表示跟一個恆等矩陣的差,這一項加到損失函數裏。它試圖使得切空間是滿秩的,不會退化到一維或者零維,這樣也能有效的減低模式坍塌的出現,這是從另一個視角看這個問題。

下一個問題,若是給了一個基於矯正分段線性激活函數(ReLU)的卷積神經網絡的學習能力究竟能有多強?換句話說給定一個任務,咱們能設計多小的一個神經網絡來完成任務?咱們但願仍是能限定它的複雜性,而不是徹底開放式的摸索。這樣的話多少能給咱們探索在移動設備上的深度學習算法,提供一些指導原則。

剛纔我提到了編碼器和解碼器都是分段線性函數,解碼器把立方體分的更小,立方體越多越能把縫隙填滿,這個逼近的質量決定了編碼器和解碼器最終的效果。這個很容易理解,一條曲線若是用一段線逼近它和用四條線逼近它,四段確定逼近的更好,甚至用更多線段來無窮逼近,這個固然對原來的曲線是有必定限定的,好比是凸曲面等等。

這個矯正的複雜度,一個分段映射的複雜性是表徵逼近能力的一個度量。它定義成,在 N 維的時空間上,最大的連通子集數,在每個連通子集上編碼器都是線性的,說穿了是分段線性。這是表徵了這個解碼器的能力。一個 K+2 層的深度卷積神經網絡,由它所能表徵的最複雜的分段線性映射來表徵。

每一組不一樣的參數就定義了一組分段線性函數,固然參數不一樣的時候,它的能力不一樣。那麼就有這麼一個結論,深度神經網絡的複雜性是有上界的,這是一個很好的結論。若是咱們知道咱們要學習的任務,它的複雜性是高於這個上限的時候,咱們這個深度神經網絡就設計得過小,確定學很差。學很差有不少表現,好比泛化能力會比較差。無論你訓練多少樣本,你可能學到的分佈跟實際數據的分佈都是不一致的,都是有誤差的。咱們能夠想像在實際應用中,確定有些數據的實際效果不是那麼好。

同時,它也有一個下界,下界的理解比較簡單,某個權重,使得網絡複雜度最小的權重。

這樣深度卷積神經網絡的表徵能力有上界也有下界,基本回答我剛纔說的那個問題。我有幾點體會。一個是由於要求拓撲空間上來作同胚映射,這個限制實際上是較強的制約,其實只能學比較簡單的幾個拓撲結構,不能學太複雜的東西,或者只能學一個局部,一個局部學的很好,全局學起來有困難。最佳質量映射,可以有幫助,但在高維空間中計算出這個最佳質量映射,也算是一個比較挑戰的事。第三個結論,給定任何一個深度卷積神經網絡,必定能找到一個流形嵌入到這個它輸入的環境空間中,而它的分佈不能被這個神經網絡學習。咱們對模式坍塌是有必定辦法來緩解;對算法複雜性,咱們能有必定的辦法,能使神經網絡的複雜性有所界定。

若是你想了解得更加詳細,點擊這裏獲取 RTC 大會PPT 。同時,大會有兩個直播回放地址:視頻回放地址一視頻回放地址二

相關文章
相關標籤/搜索