量子物理推動機器學習
作者:Maria Schuld,南非誇祖魯-納塔爾大學博士生,研究機器學習與量子信息
翻譯:郜勛,尹璋琦,清華大學交叉信息研究院
翻譯自:A quantum boost for machine learning
刪減版在《物理》雜誌上在線出版:量子物理推動機器學習
Maria Schuld 講述了研究人員正如何通過與量子計算結合增強機器學習(一種使計算機可以學習和預測的方法)。
藍色房間中人們都全神關注。在正中間的桌子旁坐著兩位棋手,注視著黑白大理石棋子,無聲地下棋。n n最終,右邊的棋手投子認輸,他是圍棋九段大師李世乭。坐在左邊的是軟體的開發者黃世傑,他從AlphaGo(由谷歌的DeepMind團隊開發的程序)那裡得到指示來下棋。在2016年3月的這一天,AlphaGo在五番棋中贏了四盤,打敗了世界上最好的圍棋選手之一。
AlphaGo的成功已經被廣泛認為是人工智慧研究的一個里程碑。圍棋比國際象棋(計算機在1997年首次贏了國際象棋世界冠軍)複雜很多。在圍棋中,通過蠻力搜索所有可能的策略從而找出最好的走法是行不通的;落子位置的可能組合數比宇宙中的原子還要多,而AlphaGo所使用的2200個處理器的計算能力與今天的超級計算機相比還算是輕量級的。其實,AlphaGo成功的秘密在於和一個特殊的陪練進行嚴格地練習,而這個陪練就是軟體自己。為了成為一個稱職的陪練,AlphaGo的「深度神經網路」(受人腦結構啟發而來的計算機演算法)最開始通過參考包含大約三千萬個專業走法的資料庫來掌握這個遊戲。
機器學習可以被認為是人工智慧側重於數據的一面,其中要處理大量的信息或者說「大數據」。類似於人類的學習方式,機器學習涉及到把問題的海量實例輸入到計算機,它利用數據的模式來解決以前從未出現過的情況。n n例如,餵給一個計算機許多同一個人的圖片,再給它另一個新的圖片問是否是同一個人。難點在於我們不知道如何將視神經的視覺刺激和在圖片中認出一個人這件事聯繫起來。換句話說,在像素級別的描述(比如說在位置(1334,192)這個點是紅色)和「照片中有我們的朋友Sivu」之間沒有一個簡單的關聯,知道這樣的關聯可以指導我們如何編程。機器學習方法因此必須給出一個一般的方法來找出數據中複雜的模式,正如Facebook的自動標記功能所展示的,機器學習的這一能力在不斷的提高。
物理學,或者更精確地說,量子物理學能在其中發揮什麼作用呢?運行AlphaGo的計算機是基於經典物理的。處理信息的方式是通過操控0和1信號的微電子線路,而這些線路遵從經典電動力學。物理學家已經開始從頭思考計算的概念有二十年了:如果我們造一個基於量子理論的計算機會怎麼樣?這樣一個設備會從根本上改變可以計算的極限么?雖然看起來我們對這個問題已經有很多理解了,事實證明,這並不容易回答。儘管我們還沒有能力去建造一個足夠大的以至於能解決現實問題的量子計算機,已經有若干個強力的數學語言被發展出來用以刻畫和研究「量子演算法」(量子計算機的軟體)了。這樣的研究工作現在不只局限在純粹的學術界,在一些大的IT公司比如谷歌和IBM也開始在這方面競賽。隨著我們越來越確信量子計算機實現的可行性,尋找量子計算機「殺手鐧應用」的緊迫性也在不斷增長。於是,機器學習就登場了。
既然我們知道量子計算機以後會使用的工作語言,我們已經可以開始思考量子計算將對機器學習產生什麼影響了。這樣一種途徑被稱為由量子增強的機器學習,這是量子機器學習(這一領域還考慮相反的研究途徑:用經典機器學習方法來研究量子實驗中產生的數據)這一更大領域的一部分。為了了解由量子增強的機器學習,我們首先要理解機器學習是怎麼工作的以及其優勢背後的「黑箱」。
機器學習
一個很快捷的去領悟機器學習概念的方法是通過考慮數據擬合,大部分科學家在本科階段都接觸過它,而且這是眾多發現數據中模式和趨勢的方法之一。想像你做了一個實驗生成了數據點(x,y),其中x是可控參數,y是測量結果。作為物理學家,你可能想得到一個可以解釋這些測量結果的模型。換句話說,你想通過產生的數據,在一定誤差下,找到關係y=f(x)。這可以通過把數據餵給計算機,然後利用數值軟體找出依賴於參數的函數f(x)中擬合得最好的一個來做到(圖1)。用數學的術語來說,這是一個優化問題。
對機器學習來說,解決優化問題已經做了一半的工作。在做實驗前,人們可以通過最好的模型或者說擬合函數來預測新的控制參數下的測量結果。當然,對大部分的機器學習應用,人們對物理實驗的興趣小於對傳統上認為需要人類經驗的任務。例如,x可以表示一組宏觀經濟學變數而y代表了下周油價的漲幅。如果我們從數據中推出了模型y=f(x),我們就可以用它去預測明天的油價。又或者,輸入可以是照片的像素集而輸出是關於你的朋友Sivu是否在照片中的回答,在這種情況下,機器學習被用來做圖像識別。這些應用中的一個共同點是它們讓我們可以回答關於複雜關係的問題,且答案又很值錢。
圖1:讓模型盡量簡單。在給定相同數據集(黑色)的情況下,曲線擬合軟體給出了兩個不同的模型(藍色和紅色)。儘管模型1完美地擬合了數據,但是彎曲度更小的模型2有更好的泛化能力,於是對新數據有更好的預測。(圖中的單詞:數據、模型1、模型2、新數據、模型1的預測、模型2的預測)
至此,這些聽起來都很直接。你所要做的就是解決一個優化問題從而找到最好的預測模型。但是機器學習通常處理的那類優化問題非常困難,以至於一些富於挑戰精神的數學家也會避開它們。比如說,想一想一個優化問題的地形像喜馬拉雅山那麼大,而你要靠雙腳並在沒有地圖的情況下找到最深的山谷(圖2)。而且,真正的「黑箱」在於表述優化問題的微妙性。比如說,在圖1數據擬合的例子中,如果我們定義最好的模型為,對所有數據點y來說,離它們最近的f(x),更彎曲的函數(藍色)更好,因為這個模型函數穿過了所有的數據點。但當我們引入一個新的數據點,很清楚地看到,更粗糙的擬合(紅色)給出了更好的預測。對於我們的登山者來說,彎曲程度更高的模型所對應的優化問題的地形不是太有用,因為即使我們找到了最深的山谷,這並不意味著一個好的模型。一個有用的優化地形對應於最優的模型使得可以從已有數據背後的模式中泛化出還沒有出現的數據,即使這並不意味著在已有數據上擬合的比較完美。給出一個有效的優化問題需要大量的直覺和實踐經驗,這是利用機器學習能力的關鍵。
圖2:最優路徑。一個數學上的優化問題就像一個登山者徒步在大山中尋找最深的山谷。機器學習通常需要求解複雜的優化問題,其中登山者不得不穿過非常多的山谷來找最深的那一個。
量子推動
用量子計算增強機器學習最常用的方法是把困難的優化問題交給量子計算機,可以是今天實驗室中的小型設備,也可以是未來我們想實現的成熟版本的量子計算機。整個演算法「工具箱」已經被量子信息界發展起來了。仍在持續的挑戰是去組合、調整和擴展這些工具以至於對傳統計算機實現壓倒性優勢。在方框中,更詳細地解釋了三個用量子計算機解優化問題的方法。雖然我們現在知道即使利用了量子效應,最困難的計算問題常常還是困難的,但是適當的加速對於今天的大數據應用來說還是至關重要的。
在把子任務交給量子計算時,有一點要特別注意。為了讓這些方法能工作,需要把描述優化問題地形的數據編碼到量子系統中。如圖3所示,一個方法是把黑白圖像表示成有指向上下自旋的格點。用量子疊加(量子系統可以同時處在兩個或多個狀態)允許我們將很多圖片存在一個量子系統中。其他的編碼策略更複雜,但全部都需要我們製備量子系統的初態來表示數據集的數值。製備一個物理系統,用於編碼來自圖像數據集的數以億計的像素,並達到比較高的精度,這對一個實驗物理學家來說簡直就是噩夢。對於機器學習量子演算法來說,編碼數據是一個至關重要的瓶頸和挑戰,而這沒有經典計算的直接對應物。
圖3:把數據編碼到量子計算機中。第一步就是把一個問題從傳統計算機翻譯到量子計算機,將數據編碼到量子系統。在此展示的一個方法是把二進位比特表示為格點上的自旋指向上(白格子)和下(黑格子)。
向量子AlphaGo邁進
毫無疑問,在下一代的AlphaGo以及它的同伴能在量子硬體上運行之前,還有很長的路要走。首先,我們需要穩定的大尺度量子計算機去運行發展出來的軟體。我們需要在經典數據和量子系統之間設計一個界面,使得把問題編碼到設備中。我們還需要更好的量子工具來做優化,尤其是在地形複雜的情況下。
最重要的是,我們需要去學習已經經過數十年實踐檢驗的機器學習中的「黑箱」。從現在開始,我們需要將問題表述為適合量子計算的形式而不是僅僅將經典計算中的優化問題交給量子計算機而已。一個早期的量子計算機正等著在實驗室里處理一些實用問題。問題是,這些設備可以解決什麼類型的優化問題,並且對於這個問題的回答是否可以用來定義新的機器學習方法?是否存在一些特定的物理學研究中的問題適合由量子增強的機器學習來處理?我們是否能用真正的「量子模型」來處理這些任務?並且我們在量子計算中的思考方式能否相對傳統的機器學習研究思路有所創新?
總結一下,量子增強的機器學習這一新興學科必須重新放在量子計算的研究框架中,並且成為一個真正的交叉學科課題。這需要在溝通和「翻譯」兩個領域上付出相當多的努力。然而,兩邊所用的語言或許沒有我們想的相距遙遠:量子理論和機器學習都處理觀測量的統計。可能我們起初就不需要通過0/1比特這種描述。總而言之,我們還不知道在未來幾十年,量子計算機能否計算AlphaGo的每步落子的決策。但是問這些問題可以讓我們思考很多事情。
方框: 實現由量子增強的機器學習的途徑
量子搜索:
在九十年代中期,計算機科學家Lovn nGrover發現用量子計算在無序資料庫(比如電話號碼簿)上做搜索會比經典計算機快。這一方法可以被調整為找k個最近的搜索項,或者說與給定號碼有最多的共同數字(只與相同位置的比較)的k個電話號碼。在機器學習中,給定輸入找最近的數據點是一個很重要的任務,例如一個被叫做「k近鄰」的方法就是根據近鄰的y值(標記類別)去選擇一個新的y值。可能最直接的用量子計算機解決機器學習問題的途徑就是把搜索問題重新表述為量子計算的語言,然後應用Grover演算法。
線性代數:
一個小的量子系統可以有大量的不同構型或者測量結果。量子理論描述了這些不同構型被測量到的概率,而這其中的數學又在很大程度上基於線性代數。在2009年,來自麻省理工學院的Aramn Harrow, Avinatan Hassidim 和 Seth nLloyd,聰明地利用這一特點提出了一個量子演算法去解線性方程組,並且在特定情況下,這一演算法快的不可思議。同樣地,許多機器學習中的優化問題在數學上也被表述為解線性方程,其中的未知數個數依賴於數據集的大小。對於大數據應用來說,數值解需要消耗大量的計算資源,而這就成為量子線性方程演算法絕佳的潛在應用對象。
尋找基態:
第三類優化問題是去找一個比特序列去最小化一個能量函數。一個流行的數值方法是通過所謂的「模擬退火」。這個方法模擬了系統冷卻到基態的熱力學過程。在這一過程的量子版本中,即「量子退火」,能量地形被類似地最小化,然而這一演算法可以利用量子隧穿效應越過能量尖峰,而非通過「爬坡」越過,這意味著可以更快地找到最低的山谷。量子退火設備已經存在了,即是由加拿大公司D-wave在2010年宣稱的世界上第一台商用量子計算機。這些設備已經被證明(毫無疑問,這非常奇異),在尋找全局最小值的問題上,比傳統計算機上運行的模擬退火演算法快一億倍。推薦閱讀:
※商湯IPO指日可待,管理140位博士的工程VP談AI落地
※年度AI跳槽指南 | CV公司哪家強?人生巔峰怎麼上?(真題第二彈)
※AI筆記 | 吳軍《智能時代》讀書筆記,這張思維導圖讓你五分鐘讀懂未來
※抓藥機器人也來了,人工智慧正在一步步取代人類