二十一世紀計算 | John Hopcroft:AI革命

微軟研究院AI頭條發表於2017-11-24

mmbizgif?wxfrom=5&wx_lazy=1


編者按:資訊革命的浪潮浩浩湯湯,越來越多的人將注意力轉向人工智慧,想探索它對人類生產生活所產生的可能影響。人工智慧的下一步發展將主要來自深度學習,在這個領域中,更多令人興奮的話題在等待我們探討:神經網路、影象識別、語言翻譯······


本文是第十九屆“二十一世紀的計算”大會精選系列的第四篇,康奈爾大學計算機系教授、1986年圖靈獎獲得者、電氣電子工程師學會(IEEE)及美國計算機協會(ACM)院士John Hopcroft將就AI革命這一話題為大家帶來精彩講解。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

康奈爾大學計算機系教授,1986年圖靈獎獲得者
電氣電子工程師學會(IEEE)及美國計算機協會(ACM)院士John Hopcroft

640.png?

(以下為John Hopcroft分享的精簡版文字整理)


一百多年前,工業革命成功幫助人類實現了許多物理任務的自動化。而現在,我們正面臨一場前所未有的資訊革命,越來越多的人將自動化構想投射到智慧任務上,而這勢必會對人類生活產生深刻的影響,深度學習就是其中一個非常重要的方面。


在1960年左右,研究者開始對閾值邏輯單元展開研究,如果我們在這裡放入一個訊號,這個裝置就有一個輸出的訊號:0和1。它的工作原理是每一個輸入都有一個權重,這個裝置它會計算去預測輸入乘以權重。如果說最後得出的結果是超過了某一個閾值T的話,它的結果就是輸出就是1,否則的話就是0。研究者所做的工作,他們開發出一種技術,這個技術是去訓練這個裝置,讓它能夠識別不同的訊號。


相應的我們有一個訓練閾值邏輯單元的演算法——感知器演算法。首先我們要根據第一個模式對權重賦值,並對每一個模式進行測試,檢測它們的分類是否正確。如果一個模式的分類發生錯誤,當期望輸出為1時,則將權重加上這個模式的值;反正當期望值為0時,則將權重減去這個模式的值。用該過程不斷檢測所有模式,直到實現全部模式的正確分類。


0?wx_fmt=png


其中有一點需要注意的是,最後的權重因子應該是所有模式的線性組合,原因在於每一次修改權重因子時,我們都是加或者減一個模式的值,最終結果就是這個權重因子是一個模式的線性結合。支援向量機就是在此技術基礎上進化而來的。我們所做的就是訓練這個單輸出門的裝置,讓它正確地完成模式分類,就像它們是可以線性分割的一樣,希望可以實現一邊的輸出是1,另外一邊輸出的是0。


現在的問題就是,有多少狀態是可以進行線性分割?實際上這個數量並不多。這時我們就需要把這些資料對映到更高維的空間,然後再來解決這個問題。我給一個簡單的例子來向大家展示一下我們怎麼樣實現對映。原始的資料是二維的,我把它稱為X&Y,現在我要做的就是要把這個資料對映到一個三維的空間。我有一個Z軸,而Z軸的值將會是X平方加上Y平方,它可以實現的就是把一些元素從平面上拿出來變成立體的,這樣你就可以看到這些資料可以用一個跟之前平面平行的平面來進行分割。這是一個非常簡單的例子,但是它就是我們所謂的支援向量機的工作原理。


0?wx_fmt=png


我們經常會遇見這樣的情況,將這樣的資料對映到一個無限的空間,如此一來它可以更加容易地進行線性分離,無需去計算每一個個體的影象對映值,因為我們所需要知道的就是最後的影象對映值之間的乘積是什麼。那麼什麼樣的矩陣能夠表達樣本在高維空間的內積?如果K是一個半正定矩陣,那麼存在一個高維對映函式使得K是其的內積矩陣。核函式和樣本的高維空間對映是支援向量機的本質。


人工智慧的下一步發展將主要來自於深度學習,在深度學習領域有很多非常令人興奮的話題值得深入研究和討論。深度學習為什麼會到來?比如說我們要訓練計算機進行影象分類,針對ImageNet這個比賽,在2011年,人類能夠實現的影象分類最低錯誤率是25%,並且一年內並沒有突破性的改進。但2012年,我們開始啟用AlexNet進行影象分類,錯誤率立刻就降低到15%,這吸引了所有人的注意;兩年後,GoogleNet把錯誤率降低到6.7%,而一年後微軟亞洲研究院提出的152層深度殘差網路ResNet更是將錯誤率降至史無前例的3.5%,目前計算機影象分類已經遠超5%錯誤率的人類水平。


學習理論有兩種:一種是有監督學習,例如,首先我們需要將有標籤的資料用於訓練特定網路模型,根據標籤調整模型權重使它能對輸入資料正確地分類。這個過程是用一個叫梯度下降的技術實現的,具體是根據誤差對權重的導數來調整權重值。另外一種是無監督學習,例如,首先我們將影象輸入網路模型,但是不是對它進行分類,而是讓模型重新生成相同或相近的影象,從而使其從沒有標籤的資料中學習得到影象的表示。比如無人駕駛,要設想所有可能遇到的情景對機器進行訓練是不現實的,因此我們會選擇給它一個方法,讓它實現自我學習


0?wx_fmt=png

0?wx_fmt=png


接下來要說的神經網路跟之前的神經網路結構不太一樣,所使用的神經網路結構因用途而不同,我在這裡主要關注圖片資料。大家使用卷積神經層來處理圖片資料,具體做法是使用一個3×3的方格逐行逐列掃描整張圖片,然後將其中的9個畫素值以相同的權重值輸出到下一層的一個門中。這個3×3的視窗是用來識別一個特徵的,比如拐角、邊沿、眼睛或者鼻子。然後在這些卷積層後面放置池化層,池化層用於減少網路的規模,比如將2×2的視窗中的元素平均值或最大值輸出到下一層。AlexNet包含了5個卷積層和3個全連線層,這個網路真正開始了深度學習。


接下來我想談一談“啟用空間”的概念。如果你把一個影象放進來,你可以嘗試在不同層的門計算每一個門的值。給定某一個影象的話,比如說它有固定的門的輸出量,我稱之為“啟用空間”或者叫“向量空間”。這裡有一個矩陣,橫軸是網路中的門,縱軸是影象。這裡的向量可以看行也可以看列,行指的是在某一個門中,它會告訴你影象對應的門到底有多少個;看列的話,對於某一個影象,它到底裡面有多少個門。


從啟用向量的角度來說,我們去不斷尋找啟用向量就能夠反推出這個影象。如果把這個影象放到卷積神經網路中,啟用向量就會組成一個矩陣,我們稱之為影象的風格。這個矩陣之所以和風格有關係,是因為它能夠告訴你與它比較相近的的風格或者特點。卷積神經網路可以幫助我們實現圖片的風格遷移,比如說以康奈爾大學這張圖片作為原始內容,把這張中國畫作為風格資訊,這兩者相組合就能夠出來不同的風格效果。


0?wx_fmt=png

  

另外一點非常有意思的是,基於我們現有的裝置,進行深度神經網路訓練通常需要幾周時間。問題就在於這些網路是否必須經過訓練才能夠做出不同風格的照片,還是用隨機權重去重新制作照片也能達到同樣的效果。我們需要研究的是如何又快又好地對網路結構進行表現評估,加速我們網路訓練的時間。


我還想給大家留下一些非常值得研究的問題。每一個門能夠學到什麼東西?隨著時間的流失,這些門是如何學習的?如果我將一個網路訓練兩次,最開始用隨意權重進行訓練,網路和門學習到的最終結果是否一樣?其中一點,當你在訓練一個網路時,你肯定有很多訓練資料,其中可能會有很多本地小的數值,錯誤率非常相近。我們的問題在於,哪一個訓練的網路能夠有更強的規劃能力?也就是說,同樣的測試資料,哪個結果會更好。從統計學角度來說,訓練資料實際上是從一個大的資料集當中選出來的,所以這個全資料集的錯誤率不應該和選取一部分的資料集的錯誤率有太大的差別。但是其實我們發現其實在某些地方,在使用不同權重之後,使用訓練資料和全資料的錯誤率差別還是非常大的。深度神經網路的損失函式有很多區域性極小值點,有些極小值比其他的好。如何保證我們在訓練的過程中能夠找到一個好的區域性極值點?這是很值得研究的方向。


還是回到語言學習,有實驗表明,同時學習兩門語言會使得其中一門語言更加熟練。因此如果有兩項任務,我們是應該分開學還是應該一起學?如果我們一前一後學習兩項任務,這兩項任務是否在不同的啟用區域?對於孩子而言,如果讓他們在很小的年紀就學兩種語言,這兩種語言共享大腦同一塊啟用空間。但如果他們成人以後再學一種語言,這兩種語言就是放在大腦不同的位置


一個當前比較火的例子就是生成式對抗網路,這兩個網路就屬於一前一後學習的情況。我們以語言翻譯為例,首先我們會先列舉一些英語單句,並找出一些與之對應的德語詞彙。其次我們要生成一個判別器,用於判定放入的德語詞彙到底能夠組成一句完整的句子,或者僅僅只是單詞的集合。在反覆訓練和測試中,這個判別器最終也難以分辨出某句話是機器生成還是自然語言,這能夠幫助我們實現相當不錯的翻譯效果。


大量的資料賦予我們訓練網路的能力基礎,最近深度神經網路很火,但是深度神經網路很容易被欺騙。


0?wx_fmt=png


上圖所示有兩隻人眼看來幾乎沒有區別的貓,左邊的貓能夠被正確識別出來,但右邊的卻被錯誤識別為汽車,原因就是右邊的圖改動了幾個畫素,導致了深度神經網路的識別錯誤。因此儘管深度神經網路可以在某些特定的任務特定的資料集上達到甚至超過人的水平,但是它並不是真正的人工智慧,距離人的智慧還有很長的路要走。


經常會有人問我:“人工智慧實現了嗎?”在目前的發展階段,我覺得人工智慧實際上就是高維空間的模式識別,以影象識別為例,人工智慧無法做到抽象物體的功能或其他屬性。


想要學習演講全文,請戳下方視訊觀看:


相關文章