在過去的2016年里,人工智能時代已然開啟。這一年,AlphaGo圍棋勝了人類;微軟報告ASR語音識別結果好過專業速記員;日本NHK電視報道,IBM機器Watson只花10分鐘完成41名病人的診斷,這通常是醫生兩周的工作;它讀取大量資料和病人DNA后,救了一位醫者束手無策的白血病人……機器人正慢慢進入我們的生活。
不過,這些機器人在上崗工作前,也要接受一番培訓學習的!
樣本數據是機器人的智商
首先我們得明白,人類之所以生下來就具有學習的能力是因為人有智商,事實上,任何一個有學習能力的動物也都是具有智商的。這一點對于機器人來說也不例外,想要學習,就得有智商。那么,機器人的智商從何而來呢?答案是:樣本數據。
在機器人的“大腦”中,通常有這樣一個數學模型,其中包括了大量的數值規律和類別模式。這些規律和模式通常都是由線性函數來組成的,這些線性函數的參數數量巨大,少的有幾萬,多的則有可能上百億。
如此看來,這樣的數學模型其實并不復雜困難,不過,由于參數數量的巨大,看似簡單的模型卻足以涵蓋各種預測和辨別情況。而在數學上,這種調整模型參數及應用模型的計算機制,都是精確有效的。
這個時候我們就可以回答什么是機器學習了。簡單地說,機器學習就是計算機利用輸入的大量樣本數據,調整表示規律和分類通用數學模型的參數,然后以調好的模型作答。樣本的數據里潛藏著大量的信息,通過訓練給予了機器知識,讓機器表現出判斷和預測的智能。
機器學習基本分成無監督學習和監督學習兩類。無監督學習是從樣本數據分布中,按它們的聚集來分類,例如用大量的人民幣硬幣尺寸和重量作為樣本的數據,它們在二維空間的分布聚集在幾個地方。人們看后,知道它們是分成幾類,依此知識判斷新給的硬幣類別。機器可以通過數據點間距離的計算(K-means),自動將聚類分成幾組。得到各組的中心和分布范圍后,再以此判別新輸入硬幣所對應的組別。
許多事物看來雜亂無章,其實分屬不同類別,例如學生潛力,繪畫風格,只要用足夠多的特征屬性來描述就可以把它們區分。但對于許多的特征屬性,人類需要研究歸納抽取出能理解其含義的少量特征,很難利用非常多的特征屬性來分類,機器卻很容易做到。在你現在的工作中,也可能應用現成的N維自動分類程序,在已經擁有數據中發現潛藏的分類。
無監督學習就像無師自通的領悟,效率較差,有老師教學就會快得多。監督學習是最廣泛,最成功應用的機器學習,用我們的知識來標記樣本,去“教”機器學會回答問題。這個問答在數學上,是從問題的屬性空間映射到答案空間的一個函數。機器學習的基本算法是從一組候選函數中,比如說線性函數,通過計算選取出與預測樣本標記誤差最小的函數。這個選取多是通過迭代法,沿著減小誤差的梯度方向,不斷修正候選函數的參數來實現,這個過程稱為訓練。
深度學習才是亮點
大量的樣本數據能夠讓簡單的模型覆蓋各種預測和辨別情況,但有一個缺點,那就是因為變量個數的巨大,使得這樣的工作方式難以分析歸納成像物理規律那樣簡單明晰的因果性機制,無法從人腦邏輯推演的角度來理解。這就導致了機器人的學習很難提升到更高的深度。
所謂深度學習,就是用多層神經元構成的神經網絡,以達到機器學習的功能。這些多層的電腦網絡像人類大腦一樣,可以收集信息,并基于收集到的信息產生相應的行為。簡單地講,深度學習技術是對人腦的一種模擬,因而可以完成很多人腦所具有的功能。
深度學習最為人所熟知的是視覺功能。我們的相機可以像眼睛一樣看到這個世界,卻不能像大腦一樣看懂這個世界,深度學習恰恰補上了這個短板。有了深度學習,百度識圖可以準確識別照片中的物體類別,并對照片進行自動歸類或搜索。有了深度學習,我們可以很方便地刷臉付款。有了深度學習,特制機器可以檢測一定空間內所有人員、車輛的行蹤,并對可疑和危險事件及時報警。
傳統的機器學習方法一般只能挖掘簡單的線性關系,如1+1=2。然而,大千世界并不是這種簡單關系所能描述的,如收入與年齡、性別、職業、學歷的關系。深度學習的出現改變了這種現狀,它的靈感來源于模仿人類大腦神經網絡。
科學家發現,人類大腦皮質不是直接對視網膜傳遞過來的數據進行特征提取處理,而是讓接收到的刺激信號通過一個復雜的網絡模型進行篩選。這種層級結構大大降低了視覺系統處理的數據量,并最終保留了有用的信息。
如果要想讓機器人像人一樣學習,那么就要讓機器人擁有一個類似“人腦”的神經網絡。創造這樣一個神經網絡需要強大的硬件支撐,早期的人工智能只能創造出2到3個神經層。不過由于近年來GPU(圖形處理器)、超級計算機和云計算的迅猛發展,讓深度學習有了很大的發展。
2011年,谷歌大腦采用1000臺機器、16000個CPU處理的深度學習模型大概有10億個神經元。而現在,我們只需幾個GPU便可以完成同樣的計算了。
專家預計,再過幾年,我們口袋里的手機也可以運行像人腦一樣復雜的神經網絡了。
AlphaGo的學習過程
去年3月,AlphaGo4:1戰勝李世石,名聲大噪。今年1月初,AlphaGo升級版Master在網上對陣全球各大圍棋高手,再次以60連勝的傲人成績叫人類目瞪口呆。AlphaGo成了當下人工智能界里最“紅”的大明星。
AlphaGo的學習總體上包含了離線學習和在線對弈兩個過程。
離線學習過程分為三個訓練階段。第一階段:利用3萬多幅專業棋手對局的棋譜來訓練兩個網絡;第二階段:利用第t輪的策略網絡與先前訓練好的策略網絡互相對弈,利用增強式學習來修正第t輪的策略網絡的參數,最終得到增強的策略網絡;第三階段:先利用普通的策略網絡來生成棋局的前U-1步(U是一個屬于[1,450]的隨機變量),然后利用隨機采樣來決定第U步的位置(這是為了增加棋的多樣性,防止過擬合)。
這樣,通過大量的自我對弈,AlphaGo產生了3000萬盤棋局,用作訓練學習價值網絡。不過,由于圍棋的搜索空間太大,3000萬盤棋局也不能幫AlphaGo完全攻克圍棋問題。
而在線對弈則分為5個步驟:根據當前盤面已經落子的情況提取相應特征;利用策略網絡估計出棋盤其他空地的落子概率;根據落子概率來計算此處往下發展的權重,初始值為落子概率本身(如0.18)。利用價值網絡和快速走棋網絡分別判斷局勢,兩個局勢得分相加為此處最后走棋獲勝的得分;利用第四步計算的得分來更新之前那個走棋位置的權重(如從0.18變成了0.12);此后,從權重最大的0.15那條邊開始繼續搜索和更新。
不過,AlphaGo仍有很多缺點。首先,如果對手(人類)建立比較復雜的棋局,每步棋都牽連很多個不同的局部棋變化,那么這時候AlphaGo的搜索空間急劇增大,精度就會大打折扣。
其次,AlphaGo能夠戰勝這么多高手,跟它的價值網絡有很大的關系,有專家甚至稱如果沒有了價值網絡,AlphaGo的真實水平就只有3段左右。但AlphaGo的價值網絡有時候還不能完全避免一些怪異甚至錯誤的判斷。這樣的不穩定因素也是AlphaGo的一大缺點。