NIPS2018最佳论文解读:Neural Ordinary Differential Equations...
雷鋒網 AI 科技評論按,不久前,NeurIPS 2018 在加拿大蒙特利爾召開,在這次著名會議上獲得最佳論文獎之一的論文是《Neural Ordinary Differential Equations》,論文地址:https://arxiv.org/abs/1806.07366。Branislav Holl?nder 在 towards data science 上對這篇論文進行了解讀,雷鋒網 AI 科技評論編譯整理如下:
這篇論文的作者隸屬于著名的多倫多大學向量研究所。在這篇文章中,我將嘗試解釋這篇論文的主要觀點,并討論它們對深度學習領域的潛在影響。該論文涉及到了常微分方程(ODE)、遞歸神經網絡(RNN)和歸一化流(NF)等概念,但我會盡可能直觀地解釋它的觀點,讓您可以在不太深入了解技術細節的情況下理解主要概念。如果你感興趣的話,你可以去論文原稿中閱讀這些細節。文章分為多個部分,每個部分解釋論文中的一個或多個章節。
從序列變換到神經微分方程
如今,多神經網絡體系結構(如 RNN 或殘差網絡)包含重復的層塊,這些層塊能夠有序保留信息,并通過學習函數在每一步中對其進行更改。一般來說,這種網絡可以用下面的方程來描述:
因此,ht 是時間步長 t 的「隱藏」信息,f(ht,θt)是當前隱藏信息和參數θ的學習函數。本文提出的核心問題是,我們是否可以通過逐步減小步長 [t,t+1] 來提升目前這些網絡的最優性能。我們可以想象這是逐步增加 RNN 中的評估數量,或者增加殘差網絡中的殘差層數量。如果我們這樣做,我們最終會得到上述方程的微分版本:
因為方程的解是一個函數(函數 h(t)),所以這種方程稱為常微分方程(ode)。換句話說,通過求解方程,我們得到了所需的隱藏狀態序列。我們必須在每次評估過程中,從初始狀態 h0 開始求解方程。這種問題也稱為初值問題。
用「伴隨法」計算模式求解器的梯度
數值求解一個 ODE 通常是通過積分來完成的。多年來,人們發明了很多積分方法,包括簡單的 Euler 方法和 Runge-Kutta 方法的高階變種。然而,這些方法在計算上都是相當密集的。在訓練過程中尤其如此,它需要對積分步驟進行微分,以便能將網絡參數θ的所有梯度相加,這會導致較高的內存成本。
本文提出了一種用 Pontryagin 的「伴隨法」計算 ODE 梯度的替代方法。該方法通過求解第二個時間向后增加的 ODE,可以與所有的 ODE 積分器一起使用,并且占用較小的內存。讓我們考慮最小化 ODE 求解器結果的損失函數,即:
在第二步中,使用了 ODE 解的定義,在第三步中,將 ODESolve 作為求解 ODE 的操作符引入。正如我前面提到的,這個操作符依賴于初始狀態 z(t0)、數 f、初始和結束時間 t0、t1 以及搜索的參數 θ。「伴隨法」現在確定了損耗函數 w.r.t 的梯度,其隱藏狀態為:
這個數量伴隨著 ODE 的增加。
計算梯度
(上述方程要求的第一個梯度)現在可以通過向后求解增強的 ODE 來完成。為了完整性,下面的公式說明了如何計算神經網絡函數參數的梯度 w.r.t:
如作者所述,整個梯度計算算法過程如下:
用于監督學習的 ODE 網絡
接下來是論文中最有趣的部分:相關的應用。作者在論文中提到的第一個應用是在監督學習領域,即 MNIST 書寫數字分類。結果表明,該方法與參數較少的殘差網絡性能相當。本文中用于評估的網絡對輸入圖像進行兩次采樣,然后應用于 6 個殘差塊。總之,網絡包含大約 60 萬個參數。ODESolve 網絡使用單個 ODESolve 模塊替換 6 層網絡。此外,作者還對 RK 網絡進行了測試,除了使用 Runge-Kutta 方法直接反向傳播誤差外,該網絡與 RK 網絡相似。如上所述,您可以將傳統神經網絡中的層數與 ODE 網絡中的評估數聯系起來。這兩個網絡的參數個數為 22 萬個,重要的結果是,使用大約 1/3 的參數,RK 網絡和 ODE 網絡的性能與殘差網絡大致相同。此外,ODE 網絡的內存復雜性是恒定的(見下圖)。
此外,可以調整 ODE 解的精度以最大限度地提高計算性能。例如,一個人可以進行高精度的訓練,并降低評估準確性(更多詳細信息,請參閱原文)。
連續歸一化流
歸一化流是分布的可逆變換。它們可以通過一系列非線性變換將簡單的概率密度轉換為復雜的概率密度,正如在神經網絡中一樣。因此,它們利用分布中的變量轉換公式:
上式中,q0(z0)為初始分布,qk(zk)為轉換分布,轉換為 fk,k=0...K。上述和中的 Jacobi 行列式保證了整個轉換過程中分布函數的積分保持為 1。不幸的是,除了一些簡單的變換外,計算這個行列式代價太大。
歸一化流的一個常見應用是變分自動編碼器(VAE),它通常假定潛在變量是高斯分布的。這一假設使得 VAE 的輸出結果變差,因為它不允許網絡學習所需的分布。對于歸一化流,高斯參數可以在「解碼」之前轉換成各種各樣的分布,從而提高 VAE 的生成能力。這篇博文詳細解釋了歸一化流:http://akosiorek.github.io/ml/2018/04/03/norm_flows.html
本文討論了歸一化流在連續域中的擴展。有趣的是,這簡化了歸一化常數的計算。如果我們讓隨機變量在時間上是連續的,用函數 f 描述時間的變化(f 是 Lipschitz 連續的),則概率的對數變化遵循簡單的微分方程:
因此,行列式的計算在這里被簡單的跟蹤運算所取代。此外,如果我們使用一個轉換的和,那么我們只需要對跟蹤求和:
為了證明 CNF 的有效性,本文測試了概率密度從高斯分布到兩個目標分布的轉換,如下圖所示。
利用 CNF(上兩行)和 NF(下一行)在高斯分布和目標分布之間進行轉換(從 5% 到 100%)。
采用最大似然估計方法對神經網絡和神經網絡進行訓練,使目標概率分布下的期望值最大化,然后將模型反演為已知分布的樣本。
通過 ODE 生成時間序列模型
本文提到的第三個應用(可能是最重要的應用),是通過 ODE 進行時間序列建模。作者開始這項工作的動機之一是他們對不規則采樣數據的興趣,如醫療記錄數據或網絡流量數據。這種數據的離散化常常定義不明確,導致某些時間間隔內數據丟失或潛在變量不準確。有一些方法將時間信息連接到 RNN 的輸入上,但這些方法并不能從根本上解決問題。
基于 ODE 模塊的解決方案是一個連續時間生成模型,在給定初始狀態 z0 和觀測時間 t0…tN 的情況下,該模型計算潛在狀態 z_t1…z_tN 和輸出 x_t1…x_tN:
神經網絡函數 f 負責計算從當前時間步長開始的任何時間 t 處的潛伏狀態 z。該模型是一個變分自動編碼器,它使用 RNN 在初始潛伏狀態 z0 下編碼過去的軌跡(在下圖中為綠色)。與所有變分自動編碼器一樣,它通過分布的參數(在本例中,滿足均值為μ、標準差為σ的高斯分布)來捕獲潛在狀態分布。從這個分布中,抽取一個樣本并由 ODESolve 進行處理。
該體系結構在一個雙向二維螺旋的合成數據集上進行了測試,該數據集在不規則的時間點采樣,并且數據中有高斯噪聲。下圖定性地顯示了 Latent Neural ODE 模型的優越建模性能:
結論
本文提出了一種非常有趣和新穎的神經網絡思維方法。這可能是一篇開啟深度學習新進化的里程碑式論文。我希望隨著時間的推移,越來越多的研究人員開始從不同的角度來思考神經網絡,正如本文所做的那樣。
文中的方法是否確實適用于現有的各種模型、是否會被時間證明是有效的,仍有待觀察。作者也提到了他們方法的一些局限性:
小批量可能是這種方法的一個問題,然而作者提到,即使在整個實驗過程中使用小批量,評估的數量仍然是可以管理的。
只有當網絡具有有限的權值并使用 Lipschitz 非線性函數(如 tanh 或 relu,而不是階躍函數)時,才能保證 ODE 解的唯一性。
前向軌跡的可逆性可能會受到前向模式求解器中的數值誤差、反向模式求解器中的數值誤差以及由于多個初始值映射到同一結束狀態而丟失的信息的綜合影響。
作者還提到,他們的方法是不唯一的,殘差網絡作為近似的 ODE 求解器的想法已經過時了。此外,還有一些論文試圖通過神經網絡和高斯過程來學習不同的方程。
本文提出的方法的一個重要優點是,在評估或訓練過程中,通過改變數值積分的精度,可以自由地調節速度和精確度之間的平衡。此外,該方法也非常適用(只要求神經網絡的非線性是 Lipschitz 連續的),并且可以應用于時間序列建模、監督學習、密度估計或其他順序過程。
來源:https://towardsdatascience.com/paper-summary-neural-ordinary-differential-equations-37c4e52df128
雷鋒網(公眾號:雷鋒網)
雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。
總結
以上是生活随笔為你收集整理的NIPS2018最佳论文解读:Neural Ordinary Differential Equations...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度智能云区块链产品负责人刘尧:Web3
- 下一篇: 移动设计