量子運算+人工智慧-這才是未來科技的最大熱門!
90年代初,當威奇塔州立大學(Wichita State University)的物理學教授Elizabeth Behrman開始結合量子物理學和人工智慧(主要是當時備受爭議的神經網路技術)時,大多數人認為這兩門學科就像油和水一樣,根本沒辦法結合。 「當時我連發表論文都很困難。神經網路學術期刊問我『量子力學是什麼’,而物理學期刊則會問『神經網路是什麼玩意』。」她回憶道。
如今,這兩門學科的結合似乎再自然不過了。神經網路和其他機器學習系統成為了21世紀影響最大的技術。這些系統不僅在一些大部分人不擅長的任務(例如:圍棋和資料探勘)上打敗了人類,而且還在大腦的某些本職工作(例如:臉部辨識、語言翻譯)上超越了人類。這些系統的實現取決於龐大的運算能力,因此科技公司要尋找的電腦不僅要更大,還要更先進。
在經歷了數十年的研究後,量子電腦現在的運算能力已經超越了其他所有電腦。人們常認為,量子電腦的殺手級應用可以對大數進行因數分解——這對現代加密技術至關重要。但是要實現這一點至少還要再等十年。不過,目前基本的量子處理器已經可以滿足機器學習的運算需求。量子電腦在一個步驟之內可以處理大量的數據,找出傳統電腦無法辨識出的微妙模式,在遇到不完整或不確定數據時也不會卡住。 「量子運算和機器學習固有的統計學性質之間存在著一種天然的結合。」Rigetti Computing 的物理學家Johannes Otterbach表示。 (Rigetti Computin是一家位於加州伯克利的量子電腦公司。)
如果說有什麼不同的話,那就是當前的趨勢已經走向另一個極端。谷歌、微軟、IBM等科技巨頭正在量子機器學習上猛砸錢,多倫多大學還成立了一個量子機器學習創業孵化器。 「 '機器學習'現在正成為一個潮詞。在'機器學習'加上'量子',它就變成了一個超級潮詞。」莫斯科斯科爾科沃科技學院(Skolkovo Institute of Science and Technology)的量子物理學家Jacob Biamonte稱。
然而,“量子”一詞在此處沒有任何意義。你可能會認為量子機器學習系統應該很強大,但是這種系統實際上卻像是患有某種閉鎖症候群。量子機器學習系統處理的是量子態,而不是人類可以理解的數據,量子態和數據的相互轉換會使系統原有的優勢消失。就像是,iPhone X原本的參數和效能都很強,但是如果網路訊號太差的話,它就會和老式手機一樣慢。在一些特殊情況中,物理學家可以克服輸入輸出障礙,但是這些情況是否存在於現實機器學習任務中?答案仍然是未知的。 「我們現在還沒有明確的答案。一直以來,人們往往對這些演算法是否能提高計算速度並不關心。」德州大學奧斯汀分校電腦科學家Scott Aaronson表示。
量子神經元
無論是傳統神經網絡,還是量子神經網絡,它們的主要任務都是辨識模式。受人類大腦的啟發,神經網路由基本的計算單元(即「神經元」)所構成。每個神經元都可以看作為一個開關設備。一個神經元可以監測多個其他神經元的輸出,就像是投票選舉一樣,如果足夠的神經元處於活化狀態,這個神經元就會被啟動。通常,神經元的排列呈層狀。初始層(initial layer)導入輸入(例如影像像素),中間層產生不同組合形式的輸入(代表邊、幾何等結構),最後一層產生輸出(對影像內容的高階描述)。
需要注意的是,神經元之間的連接需要經過反覆試驗進行調整,不是預先決定的。例如,給神經網路輸入帶有“小貓”或“小狗”標籤的圖像。網路會為每個影像分配一個標籤,檢查是否匹配正確,如果不正確就調整神經元連接。剛開始時網路的預測是隨機產生的,但是其準確度會越來越高;在經過10000個實例的訓練之後,網路將能辨識影像中的寵物。正規的神經網路可能擁有10億個神經元連接,所有連接都需要調整。
傳統電腦計算單元的所有連接都以龐大的數字矩陣表示,而運行神經網路就是在計算矩陣代數。傳統的方法是,用一個專門的晶片(例如:影像處理器)來完成這些矩陣運算。而在完成矩陣運算上,量子電腦是不可匹敵的。 「量子電腦運算大型矩陣和向量的速度快很多。」麻省理工大學(MIT)物理學家、量子運算先驅Seth Lloyd說。
在進行運算時,量子電腦可以利用量子系統的指數性質。量子系統的大部分資訊儲存能力並不是靠單一資料單元-qubit(對應於傳統電腦中的bit)實現的,而是靠這些qubit的共同屬性實現的。兩個qubit帶有四個連線狀態:開/開、關/關、開/關、關/開。每個連接狀態都分配有一個特定的權重或“振幅”,代表一個神經元。三個qubit可以代表八個神經元。四個qubit可以代表16個神經元。機器的運算能力呈指數成長。實際上,整個系統處處分佈有神經元。當處理4個qubit的狀態時,計算機一步可以處理16個數字,而傳統的計算機只能一步只能處理一個。
Lloyd估計,60個qubit的電腦可以編碼的資料量相當於人類一年產生的所有數據,300個qubit的電腦可以編碼可觀測宇宙中的傳統資訊內容。 (IBM、英特爾和Google共同研發的量子計算機是目前最大的量子計算機,大約有50個qubit)。不過前提是假設每個振幅(amplitude)對應於一個傳統的bit。 Aaronson表示:事實上,幅值是連續的數值(複雜的數字)。為獲得可信的試驗準確度,可以儲存15 bit的資訊。
但是,量子電腦的資訊儲存能力並不能加快它的運算速度。如何能夠使用qubit才是關鍵。 2008年,Lloyd、MIT物理學家Aram Harrow和以色列巴伊蘭大學(Bar-Ilan University)電腦科學家Avinatan Hassidim展示如何用量子電腦完成矩陣求逆的關鍵代數運算。他們將整個運算分解為一系列可以在量子電腦上執行的邏輯運算。他們的演算法適用於許多機器學習演算法。而且,需要完成的運算步驟少於因數分解一個大數所要完成的步驟。量子電腦可以在受到雜訊影響前,迅速完成分類任務。 「在完全通用且容錯的量子電腦到來之前,量子運算可以提供量子優勢。」MMS 的 Thomas J. Watson 研究中心的Kristan Temme 說。
讓系統本身解決問題
目前為止,我們只在4 qubit的電腦上實現了基於量子矩陣代數的機器學習。量子機器學習在實驗上取得的大部分成功都採用了不同的方法:量子系統不只是模仿網絡,它本身就是一個網絡。每個qubit代表一個神經元。雖然這種方法無法讓電腦利用指數屬性所帶來的優勢,但是它可以讓電腦利用量子物理學的其他特性。
位於溫哥華附近的D-Wave Systems公司製造的量子處理器擁有2000個qubit,是目前最大的量子處理器。它和大多數人觀念中的電腦不同:它的主要任務是尋找資料的內部一致性,而不是對輸入資料執行一系列的運算,得出輸出。每個qubit都是一個超導電迴路,其作用相當於一個向上、向下或向上與向下(疊加)的小電磁體。讓qubit透過磁力相互作用,這樣就可以將它們「連」在一起。
D-Wave Systems公司製造的用於機器學習應用的處理器
在運作系統時,必須先施加一個水平的磁場,這個磁場可以將qubit預置為向上和向下的均等疊加-等同於空白狀態。輸入資料的方法有好幾種。在某些情況中,你可以將某一層qubit固定在預期的輸入值;不過多數情況下,應將輸入導入到qubit的相互作用的範圍內。然後讓qubit相互作用。某些qubit朝同一方向排列,某些qubit朝相反方向排列,在水平磁場的作用下,它們會翻轉到它們所選擇的方向。透過這樣做,這些qubit可以觸發其他qubit進行翻轉。由於很多qubit都沒對準方向,剛開始時會發生很多翻轉。等到翻轉停止後,你可以關閉水平磁場,將qubit鎖定在固定位置。此時,qubit處於朝上和朝下的疊加狀態,此狀態可確保輸出與輸入相對應。
關鍵在於,Qubit最終的排列方式很難預測。透過完成自然出現的任務,系統可以解決一般電腦難以解決的問題。 「我們不需要使用演算法。這種系統與常規的程式設計完全不同。系統本身可以解決問題。」東京工業大學的物理學家Hidetoshi Nishimori解釋道。 D-Wave計算機的工作原理就是由Hidetoshi Nishimori提出的。
qubit的翻轉是由量子穿隧效應(quantum tunneling)所驅動的。這種效應是自然趨勢,量子系統必須要選出最佳配置,不能退而求其次。你可以建立一個工作原理相似的傳統網絡,採用隨機晃動,而不是透過穿隧效應來讓bit翻轉。在某些任務中,這樣的網路表現較好。但有趣的是,在處理機器學習中出現的問題時,量子網路實現最佳結果的速度似乎更快。
D-Wave計算機也有缺陷。在目前的配置下,D-Wave計算機的雜訊非常大,它只能執行有限的操作。而機器學習演算法本質上是具有容噪能力的,它們可以理解混亂的現實環境,在幹擾性背景中從區分小貓和小狗。 「神經網路對雜訊有很強的穩健性。」Behrman 說。
Hartmut Neven是Google的電腦科學家,他開創了擴增實境技術,並且是GoogleGoogle Glass計畫的共同創辦人。後來,他領導一個團隊開始研究量子資訊處理。 2009年,這個團隊證明了一台初期的D-Wave 電腦可以很好地完成一個機器學習任務。他們將這台電腦用作為一個單層神經網絡,在20000張街景圖資料庫中將影像分類為兩個類別:「汽車」和「非汽車」(請記住:這台D-Wave電腦與2018年上線的50-qubit系統屬於完全不同的機型。 Neven的團隊結合D-Wave 計算機與傳統的計算機,他們分析了圖像的各種統計參數(quantities),然後計算這些參數對圖像中汽車的敏感度——通常不是很敏感,但至少比拋硬幣(猜正反面)要好。這些參數的某些組合可以準確地識別出汽車,但是無法識別出特定車型——這是神經網路的任務。
這個團隊為每個參數都分配了一個qubit。如果qubit的值穩定在1,則將對應的參數標記為有用;如果qubit的值穩定在0,則不用標記。 Qubit的磁力相互作用可以編碼問題的要求,例如:只包含區分作用最強的參數,以確保參數的最終選擇盡可能簡單明了。試驗的結論是,D-Wave計算機可以辨識出汽車。
去年,加州理工學院粒子物理學家Maria Spiropulu和南加州大學物理學家Daniel Lidar領導的團隊將演算法應用到粒子物理學問題中:將質子碰撞分類為「希格斯玻色子(Higgs boson) 」和「非希格斯玻色子」。這個團隊將研究物件選擇為產生質子的碰撞,他們使用基本的粒子理論來預測哪些粒子屬性可能會表徵希格斯粒子的短暫存在,例如:超出動量的某些閾值。他們考慮了8種粒子屬性和28種屬性組合,總共是36種候選訊號然後讓南加州大學的新型量子電腦找出最佳選擇。該計算機識別出16個有用的變量,3個最佳變量。此量子電腦在執行準確的分類任務時比標準流程所需的資料量要少。 「在訓練集較小的條件下,量子計算方法的準確度比高能物理學中的傳統方法高。」Lidar表示。
加州理工學院物理學家Maria Spiropulu使用量子機器學習尋找希格斯玻色子。
去年12月,Rigetti 證明了一種使用通用19 qubits量子電腦自動分類物件的方法。大致上,研究人員向電腦輸入了一系列的城市名稱以及它們之間的距離,然後讓電腦將這些城市分類為兩個地理區域。這個問題的困難之處在於,一座城市屬於哪個地理區域取決於系統對其他城市的分類,因此必須一下子解決整個系統。
Rigetti的團隊為每個城市分配了一個qubit,表明這個城市屬於哪個類別。透過qubit之間的相互作用(在Rigetti的系統中,這種相互作用是電作用力,而不是磁作用力),每一對qubit都盡量要選取相反的值——這樣做可以將它們的能量降到最小。顯然,對於任何qubit數超過2個的系統而言,某些qubit對只能被分配到相同的類別。靠近的城市更容易被分配到同一類別中,因為相比距離較遠的城市,鄰近城市被分配到同一類別中的能量損耗要小。
為了將系統的能量降至最低,Rigetti的團隊採用了在某些方面類似於D-Wave量子退火的方法。他們先將qubit預設為所有可能簇分配(cluster assignment)的疊加狀態。然後讓qubit進行短暫的相互作用,使qubit偏向假設相同或相反的值。接著他們應用了一種模擬水平磁場的機制,在qubit傾斜時使它們可以翻轉,以使系統更接近最低能量狀態。最後,他們重複執行了這個兩步驟流程——相互作用與翻轉,直到系統的能量降至最低,這樣城市就被分類為兩個不同的區域。
這些分類任務是有用的,但很直接。機器學習的尖端是生成模型,這種模型不僅可以識別小貓小狗,還可以生成新的原始模型——從來不存在的動物,但它們和真實動物一樣可愛。這個模型甚至可以自己分辨「小貓」和「小狗」的類別,或修復缺少尾巴或爪子的圖像。 「在機器學習中,這些方法非常強大且有用,但是應用起來十分困難。」D-Wave的首席科學家Mohammad Amin表示。量子運算如果能被應用到生成式模型中,一定會大受歡迎。
D-Wave和其他研究團隊已經開始著手解決這個難題。訓練生成式模型,也就是調整qubit之間的(磁力或電)相互作用,以使網路能複製某些實例資料。為了實現這一點,我們可以結合使用神經網路和普通的電腦。神經網路負責困難的任務-理解選定的相互作用對最終的網路配置有什麼意義,然後電腦使用這個資訊來調整qubit之間的相互作用。去年,NASA量子人工智慧實驗室(NASA’s Quantum Artificial Intelligence Lab)的研究人員Alejandro Perdomo-Ortiz和他的團隊在一篇論文中,用一個D-Wave系統處理手寫數字的圖像。結果,該系統識別出10個類別,並為0至9這10個數字各分配了一個類別,而且還產生了自己的手寫體數字。
量子電腦的瓶頸
令人失望的是,如果你無法將資料載入到處理器中,你的處理器再強大也無濟於事。在矩陣代數演算法中,一個簡單的運算就可以處理一個由16個數字構成的矩陣,但是載入這個矩陣卻需要進行16個運算。 「人們完全沒有重視量子態製備——將傳統的數據載入到量子狀態中我認為這一步是最重要的一步。」量子計算新創公司Xanadu的研究人員Maria Schuld表示。她是最早獲得量子機器學習博士學位的人員之一。當我們把機器學習系統佈置到實體機器中時,常常陷入兩難的境地:如何將一個問題嵌入到qubit網路中;讓qubit以正確的方式相互作用。
當載入資料之後,你需要將資料儲存起來,並確保量子系統在與資料互動時不會影響正在進行的運算。 Lloyd和他的團隊提出了一個使用光子的量子RAM,但目前還沒有超傳導qubit或囚禁離子(trapped ions)的類似裝置——用在先進量子電腦中的技術。 「除了建構量子電腦本身之外,這是一個額外的技術難題。從我和一些實驗主義者的談話中,我發現他們對待這些難題的態度是畏懼的。因為他們不知道如果開始建構這樣的量子計算機。
最後還有一個問題:如何導出資料?這意味著檢測電腦的量子狀態,一次檢測不僅只能一次返回一個隨機抽取的數字,而且還會使整個狀態崩潰,在你還沒來得及收回數據之前,其他的數據就已被清除。你只能再次一遍又一遍地執行演算法,以收回所有資訊。
不過並不是沒有希望。在某些問題中,你可以利用量子乾涉(quantum interference)。也就是說,你可以設計運算過程,使錯誤的答案自行消除,並鞏固正確的答案。這樣,當偵測量子狀態時,計算機就會給出你想要的數值,而不是隨機數值。但是只有少數演算法(例如蠻力搜尋演算法brute-force search)可以很好地利用量子乾涉,而且速度是適中的。
在某些任務中,研究人員發現了輸入和輸出資料的快捷方法。 2015年,Lloyd、加拿大滑鐵盧大學的Silvano Garnerone和南加州大學的Paolo Zanardi證明了:在某些類別的統計分析中,不需要輸入或儲存整個資料集。同樣,當幾個關鍵數值就可以滿足需求時,就不需要讀取所有資料。例如,科技公司根據龐大的消費者習慣數據,利用機器學習矩陣為使用者建議節目或商品。 「Netflix或亞馬遜(Amazon)並不需要獲取到處生成的矩陣,它們要做的只是為用戶生成建議。」Aaronson 說。
所有這些都引出了這樣一個問題:如果量子電腦只在某些特殊任務中表現優秀,傳統的電腦是否也能勝任這些任務?這是量子計算領域的一個還未解決的大問題。畢竟普通的計算機也十分強大。處理大型資料集的常用方法-隨機採用,本質上與量子電腦十分類似,即:無論系統內部進行何種運算,最終傳回的結果都是隨機的。 Schuld說:「我研究出來的很多演算法常常讓我感到『它們太棒了,我們這下可以提升運算速度了』。不過我為了好玩又編寫了一個在傳統電腦上運行的抽樣演算法,我發現用抽樣演算法也可以實現相同的效果。
如果回顧量子機器學習目前為止的成果,你會發現它們都附有星號。以D-Wave計算機為例:當分類汽車影像和希格斯粒子時,D-Wave計算機的速度並不比傳統的計算機快。 「我們在這篇論文中沒有談到的一個問題是量子加速。」Google DeepMind團隊的電腦科學家Alex Mott 說。他曾經是Higgs研究團隊的一員。矩陣代數方法(例如Harrow-Hassidim-Lloyd演算法)只有在矩陣為稀疏矩陣(多數元素為零)時才會實現量子加速。 「在機器學習中稀疏資料集是否真的有趣?從沒有人問過這個問題。」 Schuld 說。
量子智能
話說回來,現有的方法偶爾有什麼進展,科技公司們就會感到十分高興。 「我們看到的這些優勢都不算大;它們雖然不是指數性的,但是至少是二次的」微軟研究院(Microsoft Research)的量子計算研究院Nathan Wiebe稱。 「如果量子電腦夠大、夠快,我們就可以徹底改變機器學習的許多領域。」在應用這些系統的過程中,電腦科學家可以解決一些理論性難題——這些系統是否在本質上更快,原因是什麼。
Schuld也看到了量子運算在軟體方面的創新空間。機器學習不只是計算問題,而且還是很多問題交纏在一起,每個問題都有自己特殊的結構。 「人們編寫的演算法被從使機器學習變得有趣和美麗的事物中移除。這就是為什麼我開始探索其他方法和思考的原因:如果有了量子電腦(小型的),它可以運行什麼機器學習模型?如果物理學家想要讓機器學習專家刮目相看,除了建構現有模型的量子版模型外,他們要探索別的突破。
許多神經科學家現在認為人類思維的結構反映了身體的要求,實際上機器學習系統也囊括千萬。這些系統所處理的圖像、語言和大多數其他資料都來自於真實世界,這些資料反映了世界的種種特徵。同樣,量子機器學習系統也是包羅萬象的,它所反映的世界遠大於我們的世界。毫無疑問,量子機器學習系統將在處理量子資料上大放異彩。當數據不是圖像,而是物理學或化學實驗的產物時,量子電腦將會大顯神通。如果解決了資料輸入問題,傳統的計算機將會被完全淘汰。
第一批量子機器學習系統可以為後來的系統的設計提供幫助,這形成了一個很好的自我參考循環。 「我們可以使用這樣系統來建立量子電腦。在某些偵錯任務中,這是我們唯一的方法。」 Wiebe說。也許這些系統甚至可以糾正我們的錯誤。且不談人類大腦是否是量子電腦——這是一個備受爭議的問題,大腦有時候的行為讓人感覺它就是量子電腦。眾所周知,人類的行為離不開情境;現有的選擇決定了我們的偏好,這其實和我們的邏輯相違背。從這個角度看,我們確實像是量子粒子。 「人類問問題的方式以及對順序的重視,都是量子資料集中非常典型的特性。」Perdomo-Ortiz說。這樣看來,量子機器學習系統可以幫助我們研究人類認知偏誤。
神經網路和量子處理器有一個共同點:那就是它們竟然能實現。訓練神經網路絕不是想當然能做到的,過去幾十年間,大多數人都對是否能做到持質疑態度。同樣,量子物理學是否能用在計算上也不好說,因為我們對量子物理學獨特的能力還知之甚少。但是神經網路和量子處理器都已實現,雖然並不是總是能實現,但還是超出了我們的預期。考慮到這一點,量子物理學和神經網路的結合也很可能會在未來大放異彩。