深度學習應該使用複數嗎?

機器之心發表於2017-10-09

深度學習只能使用實數嗎?本文簡要介紹了近期一些將複數應用於深度學習的若干研究,並指出使用複數可以實現更魯棒的層間梯度資訊傳播、更高的記憶容量、更準確的遺忘行為、大幅降低的網路規模,以及 GAN 訓練中更好的穩定性。

曼德布洛特複數集合:https://en.wikipedia.org/wiki/Mandelbrot_set

深度學習只能使用實數,大家不覺得奇怪嗎?或許,深度學習使用複數才是更加奇怪的事情吧(注意:複數是有虛部的)。一個有價值的論點是:大腦在計算的時候不太可能使用複數。當然你也可以提出這樣的論點:大腦也不用矩陣運算或者鏈式法則微分啊。此外,人工神經網路(ANN)具有實際神經元的模型。長期以來,我們用實分析代替了生物合理性(biological plausibility)。

然而,為什麼我們要止步於實分析呢?我們已經用了這麼久線性代數和微分方程,那我們也可以將這一切都推倒,用複分析建立新的一套。或許更加奇妙的複分析會賦予我們更強大的方法。畢竟它對量子力學奏效,那麼它也有可能在深度學習領域發揮作用。此外,深度學習和量子力學都與資訊處理有關,二者可能是同一件事情。

由於論據的原因,我們暫且不考慮生物合理性。這是一個很古老的觀點,可以追溯到 1957 年 Frank Rosenblatt 第一次提出人工神經網路的時候。那麼問題來了,複數可以提供哪些實數不能提供的東西呢?

在過去幾年裡,曾經出現過一些探索在深度學習中使用複數的文章。奇怪的是,它們中的大部分都沒有被同行評議的期刊接受。因為深度學習的正統觀念在該領域已經很流行了。但是,我們還是要評述一些有趣的論文。

DeepMind 的論文《Associative Long Short-Term Memory》(Ivo Danihelka, Greg Wayne, Benigno Uria, Nal Kalchbrenner, Alex Graves)探討了使用複數值形成聯想記憶神經網路。該系統被用來增強 LSTM 的記憶。論文的結論是使用複數的網路可獲取更大的記憶容量。根據數學原理,與僅僅使用實數的情況相比,使用複數需要的矩陣更小。如下圖所示,使用複數的神經網路在記憶體開銷上與傳統 LSTM 有顯著區別。

深度學習應該使用複數嗎?

Yoshua Bengio 及其在蒙特利爾的團隊探索了另一種使用複數的方式。研究者在《Unitary Evolution Recurrent Neural Networks》(Martin Arjovsky, Amar Shah, Yoshua Bengio)一文中探討了酉矩陣。他們認為,如果矩陣的特徵值接近 1 的話,消失的梯度或許會帶來實際的好處。該研究使用複數作為 RNN 網路的權重。結論如下:

實證表明我們的 uRNN 能夠更好地通過長序列傳遞梯度資訊,並且不會遇到像 LSTM 一樣多的飽和隱藏狀態(saturating hidden states)。

他們做了多次實驗對使用複數的網路與傳統 RNN 的效能進行了量化比較:

深度學習應該使用複數嗎?

使用複數的系統明顯擁有更魯棒、更穩定的效能。

Bengio 團隊和 MIT 合作的一篇論文《Gated Orthogonal Recurrent Units: On Learning to Forget》(Li Jing, Caglar Gulcehre, John Peurifoy, Yichen Shen, Max Tegmark, Marin Soljačić, Yoshua Bengio)提出了使用門控機制的方法。這篇論文探討了長期依賴能夠更好地被捕獲以及形成一個更加魯棒的遺忘機制的可能性。下圖展示了其他基於 RNN 的系統在複製任務中的失敗;

深度學習應該使用複數嗎?

FAIR 和 EPFL 的一個團隊出了一篇類似的論文《Kronecker Recurrent Units》(Cijo Jose, Moustpaha Cisse, Francois Fleuret),他們在論文裡也展現了在複製任務中使用酉矩陣的可行性。他們展示了一種能夠大幅減少所需引數的矩陣分解方法。文中描述了他們使用複數的動機。

由於實空間的行列式是連續函式,所以實空間的酉集是不連貫的。因而,使用標準的連續優化程式不能在實值網路上跨越全酉集。相反,酉集在復空間中是連線在一起的,因為它的行列式是復空間中單位圓上的點,所以使用複數就不會出現這個問題。

這篇論文的精華之一就是下面這則富有建設性的思想:

狀態應當保持高維度,以使用高容量的網路將輸入編碼成內部狀態、提取預測值。但 recurrent dynamic 可使用低容量模型實現。

目前,這些方法已經探索了在 RNN 上對複數值的使用。MILA(蒙特利爾學習演算法研究所)最近的一篇論文《Deep Complex Networks》(Chiheb Trabelsi 等人)進一步探索了這些方法在卷積神經網路上的使用。論文作者在計算機視覺任務上測試了他們的網路,結果很有競爭力。

最後,我們必須說一下複數在 GAN 中的使用。畢竟 GAN 可以說是最熱的話題了。論文《Numerics of GANs》(Lars Mescheder, Sebastian Nowozin, Andreas Geiger)探討了 GAN 中棘手的收斂效能。他們研究了帶有複數值的雅克比矩陣的特點,並使用它建立解決 GAN 均衡問題的最先進方法。

在去年的一篇博文中,我介紹了全息原理和深度學習的關係。博文中的方法探索了張量網路和深度學習架構網路之間的相似性。量子力學可以被認為是使用了一種更加通用的概率形式。對複數的使用則提供了常規概率無法提供的額外能力。具體來說就是疊加和干擾的能力。為了實現全息術,在處理過程中使用複數會比較好。

在機器和深度學習空間中進行的大多數數學分析傾向於使用貝葉斯思想作為引數。事實上,大多數從業者都認為它是貝葉斯的,但實際上來自與統計學機制(除去名字,這裡沒有統計學的那些繁文縟節)。

但如果量子力學是廣義的概率,那如果我們使用 QM 啟發的方法作為替代會如何呢?一些論文試圖研究這一方向,結果值得一看。在去年的一篇論文《Quantum Clustering and Gaussian Mixtures》中,作者探索了無監督均值聚類的使用情況。報告是這樣說的:

因此,我們觀察到了量子類干擾現象並不在高斯混合模型中出現。我們展示了量子方法在所有方面上都優於高斯混合方法。

兩者的對比如圖:

深度學習應該使用複數嗎?

噪聲發生了什麼?

為什麼在有了 20 實際的量子概率理論後還要拘泥於 18 世紀的貝葉斯理論呢?

本文提及的研究論文證明了:在深度學習架構中使用複數確實會帶來「實實在在」的優勢。研究表明:使用複數能夠帶來更魯棒的層間梯度資訊傳播、更高的記憶容量、更準確的遺忘行為、大幅降低的網路規模,以及訓練 GAN 時更好的穩定性。這些優點可不能被簡單地忽略。如果我們接受了目前深度學習的主流觀點--任何一層的微分都是公平的,那麼或許我們應該在儲存很多變體的網路中使用複分析。

或許複數沒有被經常使用的原因是研究者對它不夠熟悉。在優化研究社群中,數學傳統並沒有涉及到複數。然而物理學家卻一直在使用複數。那些虛部在量子力學中始終是存在的。這並不奇怪,這就是現實。我們仍然不太理解為何這些深度學習系統會如此有用。所以探索其他的表示可能會帶來出乎意料的突破。

在不久的將來,這個局面可能會變化。最先進的結構可能會普遍使用複數,那時候不使用複數反倒變得奇怪了。

原文連結:https://medium.com/intuitionmachine/should-deep-learning-use-complex-numbers-edbd3aac3fb8

相關文章