一種兼具神經網絡高效性和高斯過程靈活性的方法——神經過程

2020-12-06 電子發燒友

編者按:幾個月前,Deepmind在ICML上發表了一篇論文《Neural Processes》,提出了一種兼具神經網絡高效性和高斯過程靈活性的方法——神經過程,被稱為是高斯過程的深度學習版本。雖然倍受關注,但目前真正能直觀解讀神經過程的文章並不多,今天論智帶來的是牛津大學在讀PHD Kaspar Märtens的一篇可視化佳作。

在今年的ICML上,研究人員提出了不少有趣的工作,其中神經過程(NPs)引起了許多人的注意,它基於神經網絡概率模型,但又可以表示隨機過程的分布。這意味著NPs結合了兩個領域的元素:

深度學習:神經網絡是靈活的非線性函數,可以直接訓練

高斯過程:GP提供了一個概率框架,可用於學習非線性函數的分布

兩者都有各自的優點和缺點。當數據量有限時,由於本身具備概率性質可以描述不確定性,GP是首選(這和非貝葉斯神經網絡不同,後者只能捕捉單個函數,而不是函數分布);而當有大量數據時,訓練神經網絡比GP推斷更具擴展性,因此優勢更大。

神經過程的目標就是實現神經網絡和GP的優勢融合。

什麼是神經過程?

NP是一種基於神經網絡的方法,用於表示函數的分布。下圖展示了如何建立NP模型,以及訓練模型背後的一般想法:

給定一系列觀察值(xi,yi),把它們分成「context points」和「target points」兩組。現在,我們要根據「context points」中已知的輸入輸出對(xc,yc),其中c=1,…,C,和「target points」中的未知輸入x∗t,其中t=1,…,T,預測其相應的函數值y∗t。

我們可以把NP看作是根據「context points」中的「target points」建模的模型,相關信息通過潛在空間z從左側流向右側,從而提供新的預測。右側本質上是從x映射到y的有限維嵌入,而z是個隨機變量,這就使NP成了概率模型,能捕捉函數的不確定性。一旦模型完成訓練,我們就可以用z的近似後驗分布作為測試時進行預測的先驗。

乍看之下,這種分「context points」和「target points」的做法有點類似把數據集分成訓練集和測試集,但事實並非如此,因為「target points」集也是直接參與NP模型訓練的——這意味著模型的(概率)損失函數在這個集上有明確意義。這樣做也有助於防止模型過擬合和提供更好的泛化性。在實踐中,我們還需要反覆把訓練數據通過隨機採樣分為「context points」中的「target points」,以獲得更全面的概括。

讓我們來思考以下兩種情況:

基於單個數據集推斷函數的分布

當存在多個數據集且它們之間存在某種相關性時,推斷函數的分布

對於情況一,常規的(概率)監督學習就能解決:給定一個包含N個樣本的數據集,比如(xi, yi),其中i=1,…,N。假設確實存在一個函數f,它能產生yi=f(xi),我們的目標就是學習f的後驗分布,然後用它預測測試集上某點的函數值f(x∗)。

對於情況二,我們則需要從元學習的角度去觀察。給定D個數據集,其中d=1,…,D,每個數據集包含Nd個數據對(xi(d), yi(d))。如果我們假設每個數據集都有自己的基函數fd,輸入xi後,它們有yi=fd(xi),那麼在這種情況下,我們就可能想要了解每個fd的後驗分布,然後把經驗推廣到新數據集d∗上。

對於數據集很多但它們的樣本很少的情況,情況二的做法特別有用,因為這時模型學到的經驗基於所有fd,它的內核、超參數是這些函數共享的。當給出新的數據集d∗時,我們可以用後驗函數作為先驗函數,然後執行函數回歸。

之所以要舉著兩個例子,是因為一般來說,GP適用於情況一,即便N很小,這種做法也很有效。而NP背後的思路似乎主要來自元學習——在這種情況下,潛在的z可以被看作是用於不同數據集間信息共享的機制。但是,NP同樣具有概率模型的特徵,事實上,它同時適用於以上兩種情況,具體分析請見下文。

NP模型是怎麼實現的?

下面是NP生成模型的詳細圖解:

如果要逐步分解這個過程,就是:

首先,「context points」裡的數據(xc,yc)通過神經網絡h映射,獲得潛在表徵rc

其次,這個向量rc經聚合(操作:平均)獲得單個值r(和每個rc具有相同的維數)

這個r的作用是使z的分布參數化,例如p(z|x1:C,y1:C)=N(μz(r),σ2z(r))

最後,為了預測輸入x∗t後的函數值,對z採樣並將樣本與x∗t組成數對,用神經網絡g映射(z,x∗t)獲得預測分布中的樣本y∗t。

NP的推斷是在變分推斷(VI)框架中進行的。具體來說,我們介紹了兩種近似分布:

讓q(z|context)去近似條件先驗p(z|context)

讓q(z|context,target)去近似於各自的p(z|context,target),其中context:=(x1:C,y1:C),target:=(x∗1:T,y∗1:T)

下圖是近似後驗q(z|·)的具體推斷過程。也就是說,我們用相同的神經網絡h映射兩個數據集,獲得聚合的r,再把r映射到μz和σz,使後驗q(z|⋅)=N(μz,σz)被參數化。

變分下界包含兩個項(下式),其中第一項是target集上的預期對數似然,即先從z∼q(z|context,target)上採樣(上圖左側),然後用這個z在target set上預測(上圖右側)。

第二項是個正則項,它描述了q(z|context,target)和q(z|context)之間的KL散度。這和常規的KL(q||p)有點不同,因為我們的生成模型一開始就把p(z|context)當做條件先驗,不是p(z),而這個條件先驗有依賴於神經網絡h,這就是我們沒法得到確切值,只能用一個近似值q(z|context)。

實驗

NP作為先驗

我們先來看看把NP作為先驗的效果,也就是沒有觀察任何數據,模型也沒有經過訓練。初始化權重後,對z∼N(0,I)進行採樣,然後通過x∗值的生成先驗預測分布並繪製函數圖。

和具有可解釋內核超參數的GP相反,NP先驗不太明確,它涉及各種架構選擇(如多少隱藏層,用什麼激活函數等),這些都會影響函數空間的先驗分布。

例如,如果我們用的激活函數是sigmoid,調整z的維數為{1, 2, 4, 8}。

如果用的是ReLU:

在一個小數據集上訓練NP

假設我們只有5個數據點:

由於NP模型需要context set和target set兩個數據集,一種方法是選取固定大小的context set,另一種方法則是用不同大小的context set,然後多迭代幾次(1個點、2個點……以此類推)。一旦模型在這些隨機子集上完成訓練,我們就可以用它作為所有數據的先驗和條件,然後根據預測結果繪製圖像。下圖展示了NP模型訓練時的預測分布變化。

可以發現,NP似乎已經成功學習了這5個數據點的映射分布,那它的泛化性能如何呢?我們把這個訓練好的模型放在另一個新的context set上,它的表現如下圖所示:

這個結果不足為奇,數據量太少了,模型過擬合可以理解。為了更好地提高模型泛化性,我們再來試試更大的函數集。

在一小類函數上訓練NP

上文已經用單個(固定)數據集探索了模型的訓練情況,為了讓NP像GP一樣通用,我們需要在更大的一類函數上進行訓練。但在準備複雜函數前,我們先來看看模型在簡單場景下的表現,也就是說,這裡觀察的不是單個函數,而是一小類函數,比如它們都包含a⋅sin(x),其中a∈[−1,1]。

我們的目標是探究:

NP能不能捕捉這些函數?

NP能不能概括這類函數以外的函數?

下面是具體步驟:

設a滿足均勻分布:a∼U(−2,2)

設xi∼U(−3,3)

定義yi:=f(xi),其中f(x)=a⋅sin(x)

把數據對(xi,yi)隨機分成context set和target set兩個數據集,並進行優化

重複上述步驟

為了方便可視化,這裡我們用了二維z,具體圖像如下所示:

從左往右看,模型似乎編碼了參數a,如果這幅圖不夠直觀,下面是調整某一潛在維度(z1或z2)的動態可視化:

需要注意的是,這裡我們沒有用任何context set裡的數據,只是為了可視化指定了具體的(z1, z2)值。接下來,就讓我們用這個模型進行預測。

如下左圖所示,當context set數據集裡只包含(0, 0)一個點時,模型覆蓋了一個較寬的範圍,包含不同a取值下a⋅sin(x)的值域(雖然a∈[−2,2],但訓練時並沒有完全用到)。

往context set數據集裡添加第二個點(1,sin(1))後,可視化如中圖所示,相比左圖,它不再包含a為負數的情況。右圖是繼續添加f(x)=1.0sin(x)的點後的情況,這時模型後驗開始接近函數的真實分布情況。

這之後,我們就可以開始探究NP模型的泛化性,以2.5sin(x)和|sin(x)|為例,前者需要在a⋅sin(x)的基礎上做一些推斷,而後者的值始終是個正數。

如上圖所示,模型的值域還是和訓練期間一樣,但它在兩種情況下都出現了符合函數分布的一些預期。需要注意的是,這裡我們並沒有給NP提供足夠多的不確定性,所以它預測不準確也情有可原,畢竟比起易於解釋的模型,這種自帶黑盒特性的模型更難衡量。

之後,作者又比較了GP和NP的預測分布情況,發現兩者性能非常接近,只是隨著給出的數據點越來越多時,NP會因為架構選擇(神經網絡過小、低緯度z)出現性能急劇下降。對此,以下幾個改進方法可以幫助解決問題:

2維z適合用於學習理解,在實際操作中,可視情況採用更高的維度

讓神經網絡h和g變得更深,擴大隱藏層

在訓練期間使用更多樣化的函數(更全面地訓練NP超參數),可提高NP模型泛化性

結論

雖然NP號稱結合了神經網絡和GP,能預測函數的分布,但它從本質上看還是更接近神經網絡模型——只需優化架構和訓練過程,模型性能就可以大幅提高。但是,這些變化都是隱含的,使得NP更難被解釋為先驗。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • DeepMind的最新研究結合了神經網絡和隨機過程的優點提出神經過程...
    函數逼近(Function approximation)是機器學習中許多問題的核心,在過去十年來,這個問題的一種非常流行的方法是深度神經網絡。高級神經網絡由黑盒函數逼近器構成,它們學習從大量訓練數據點參數化單個函數。因此,網絡的大部分工作負載都落在訓練階段,而評估和測試階段則被簡化為快速的前向傳播。
  • 一份完全解讀:是什麼使神經網絡變成圖神經網絡?
    理想情況下,我們的目標是開發一個像圖神經網絡一樣靈活的模型,它可以消化和學習任何數據,但同時我們希望通過打開或關閉某些先驗來控制(正則)這種靈活性的元素。所有這些良好的特性使得ConvNet不太容易過度擬合(訓練集的高精度和驗證/測試集的低精度),在不同的視覺任務中更精確,並且易於擴展到大型圖像和數據集。
  • 深度圖高斯過程 | NeurIPS 2020論文分享第一期
    高斯過程是概率機器學習中的核心方法,憑藉其良好的解析性質和出色的不確定性建模能力,被廣泛應用於各類機器學習問題。採用深度學習層次化建模範式的「深度高斯過程」則進一步增強了其建模能力,拓寬了其應用範圍。然而,絕大多數現有方法不能很好的擴展到圖結構數據。
  • 表徵圖數據絕不止圖神經網絡一種方法
    本文是一篇出自倫敦大學學院的圖表徵學習綜述,詳細介紹了圖核、卷積、圖神經網絡、圖嵌入、概率模型共五類圖表徵學習方法的起源與發展,並對圖數據表徵學習方法的最新進展和未來發展方向進行總結和討論。一、引言將數據構造為圖的形式可以幫助我們以一種系統化的方式研究如何發掘複雜的關係和模式。
  • 人工智慧神經網絡和生物大腦有什麼區別 神經網絡將如何發展
    自從該領域的歷史開始以來,符號人工智慧和人工神經網絡就構成了開發AI系統的兩種主要方法。Zador寫道:「符號AI可以看作是心理學家的方法,它從人類的認知過程中汲取了靈感,而沒有試圖破解黑匣子,而使用類神經元元素的ANN則從神經科學中汲取靈感。」在AI歷史的前幾十年中,由程式設計師明確定義系統規則的符號系統佔據了主導地位,而如今,神經網絡已成為人工智慧大多數發展的主要亮點。
  • 表徵圖數據,絕不止圖神經網絡一種方法
    雖然現在深度神經網絡在物體識別、圖像分類和自然語言處理領域都取得了巨大的成功。然而,「設計出最優的神經網絡,學習並輸出任意的圖」仍然是一個熱門的研究課題。本文是一篇出自倫敦大學學院的圖表徵學習綜述,詳細介紹了圖核、卷積、圖神經網絡、圖嵌入、概率模型共五類圖表徵學習方法的起源與發展,並對圖數據表徵學習方法的最新進展和未來發展方向進行總結和討論。
  • 神經網絡算法原理_神經網絡算法的應用_神經網絡算法實例說明
    神經網絡是一種模擬人腦結構的算法模型。其原理就在於將信息分布式存儲和並行協同處理。雖然每個單元的功能非常簡單,但大量單元構成的網絡系統就能實現非常複雜的數據計算,並且還是一個高度複雜的非線性動力學習系統。   神經網絡的結構更接近於人腦,具有大規模並行、分布式存儲和處理、自組織、自適應和自學能力。
  • 入門| Tensorflow實戰講解神經網絡搭建詳細過程
    【IT168 技術】之前我們講了神經網絡的起源、單層神經網絡、多層神經網絡的搭建過程、搭建時要注意到的具體問題、以及解決這些問題的具體方法。本文將通過一個經典的案例:MNIST手寫數字識別,以代碼的形式來為大家梳理一遍神經網絡的整個過程。
  • 入門| 請注意,我們要談談神經網絡的注意機制和使用方法
    在後面的案例中,我們可以使用硬注意掩模來直接索引其特徵向量(用 Matlab 的表示方法),它會改變自己的維度,所以現在,其中 m≤k。為了理解注意機制的重要性,我們必須考慮到神經網絡實際上就是一個函數近似器。它近似不同類型的函數的能力取決於它的架構。
  • 谷歌大腦發現神經網絡「牛頓法」:網絡足夠寬就能簡化成線性模型
    雖然這些理論結果只是在無限寬度條件下成立,但谷歌發現原始網絡的預測與線性版本的預測之間的一致性極好。而且對不同的體系結構、優化方法和損失函數都適用。隨著網絡寬度變大,神經網絡可以被其初始化參數的一階泰勒展開項所取代。 而一階線性模型動態的梯度下降是可解析的。
  • 神經網絡如何完成表徵?
    讓我們形象化地理解這種近似概念,而不是前向和後向傳播方法中的最小化預測誤差。假設你了解前向和後向傳播的一點基礎,其旨在藉助梯度和網絡中的錯誤傳播來近似函數。讓我們通過另一種視覺解釋來理解神經網絡的近似能力。其中涉及基礎數學和圖形分析。 在數學上,我們將研究給定神經網絡的表徵能力,以便提供近似的函數。
  • 深度神經決策樹:深度神經網絡和樹模型結合的新模型
    深度神經決策樹:深度神經網絡和樹模型結合的新模型 工程師郭婷 發表於 2018-08-19 09:14:44 近日,來自愛丁堡大學的研究人員提出了一種結合深度神經網絡和樹模型的新型模型
  • 科學家提出具有同層側向激勵和抑制的卷積脈衝神經網絡模型
    但實際上,這一過程是最複雜的處理過程之一:首先,在複雜的背景環境下,球進入人的視野,被視網膜捕捉到後,經視覺通路發送到大腦處理視覺信息的腦區,進行更加徹底的圖像分析。同時視皮層與其他腦區協作,判斷物體的種類,預測它的行進軌跡,最終通過傳出神經控制肌肉的運動,決定人的下一步行動:舉起雙手、接住球。上述過程只在零點幾秒內發生,幾乎完全是下意識的行為,也很少會出差錯。
  • 改善神經網絡方面的各種術語和方法
    全文共2734字,預計學習時長5分鐘深層神經網絡可以解決諸如自然語言處理、機器視覺、語音合成等複雜任務。提高深層神經網絡的性能與理解其工作原理同樣重要。這篇文章將解釋改善神經網絡方面的各種術語和方法。偏差與方差偏差與方差是體現網絡在訓練集和測試集中性能的兩個基本術語。下列兩類問題可以輕鬆直觀地解釋偏差與方差。
  • MAC 的可變多隱層神經網絡
    一.可變多隱層神經網絡的python實現多隱層網絡,用一個隱層網絡來逼近任何連續函數。架構由深層網絡代替單隱層,在擬合過程中可以更快地收斂歸一結果。這種神經網絡有兩個節點:1. 靈活性非常靈活,隱藏層地數目是可以設置地,隱藏層地激活函數也是可以設置地。
  • 自動化所提出具有同層側向激勵和抑制的卷積脈衝神經網絡模型
    但實際上,這一過程是最複雜的處理過程之一:首先,在複雜的背景環境下,球進入人的視野,被視網膜捕捉到後,經視覺通路發送到大腦處理視覺信息的腦區,進行更加徹底的圖像分析。同時視皮層與其他腦區協作,判斷物體的種類,預測它的行進軌跡,最終通過傳出神經控制肌肉的運動,決定人的下一步行動:舉起雙手、接住球。上述過程只在零點幾秒內發生,幾乎完全是下意識的行為,也很少會出差錯。
  • 在AWS上使用GPU實現分布式神經網絡
    當一個新的算法技術例如深度學習在其他領域(如圖像識別、神經成像、語言模型和語音識別)展現非常好的前景時,我們沒有驚喜,而是試圖找出如何應用這些技術來改善我們的產品。在這篇文章中,我們將和大家分享在Netflix實驗這些方法過程中建立基礎設施的一些經驗。希望對從事類似算法的人有所幫助,尤其是那些也使用AWS基礎設施的人們。
  • BP神經網絡
    我國上市公司在飛速發展的同時,也不斷地受到各種外界風險的衝擊,如何能夠對上市公司的財務風險進行有效預警,是許多決策者和研究者面臨的難題。本文介紹智能財務風險預警方法——BP神經網絡。「大數據與人工智慧環境下的智能財務風險預警方法」系列推文二:BP神經網絡 近年來,AlphaGo擊敗了人類職業圍棋選手,激起了全球範圍內對人工智慧的關注。
  • 神經形態運算新突破:兼具學習與記憶功能的神經電晶體
    神經形態運算(Neuromorphic Computing)需要在像是神經整合和突觸(Synapse)等人腦元素(例如)的啟發下建立體系架構。這些運算架構被證明能激發出許多極具發展前景與優勢的應用,因為它們可以同時兼具儲存和學習的功能。
  • 對人工神經網絡「開刀」,利用神經科學消融法檢測人工神經網絡
    在他們發表在 arXiv 上的論文中,研究者在人工神經網絡中使用了名為「消融」(ablation)的技術,原本是應用於神經科學的一種技術,即在神經網絡中切除大腦的某些神經元來確定它們的功能。「我們的想法源自於神經科學領域的研究,該領域的主要目標是理解我們的大腦是如何工作的。」