AlphaGo、人工智能、深度学习解读以及应用
經(jīng)過幾天的比拼,AlphaGo最終還是勝出,創(chuàng)造了人機大戰(zhàn)歷史上的一個新的里程碑。幾乎所有的人都在談?wù)撨@件事情,這使得把“人工智能”、“深度學(xué)習(xí)”的熱潮推向了新的一個高潮。AlphaGo就像科幻電影里具有人的思維和情感的機器人一樣,被極大地神話了,而且這讓更多的人對人工智能產(chǎn)生了畏懼感。那么,AlphaGo的勝利真的意味著人工智能(AI)已經(jīng)超越人類了嗎? 答案肯定是No。
AlphaGo仍只是個機器,之所以它能夠戰(zhàn)勝李世石是完全依靠它強大的運算能力和模仿能力,但本身并不具備人類擁有的智慧。面對新的規(guī)律、不確定性、更復(fù)雜的環(huán)境,機器的作用還是有限的。相反,圍棋的規(guī)則和搜索空間是確定的,不具備任何的不確定性,這也是為什么在這種問題上機器打敗人類再也正常不過了。
很不幸的是,AlphaGo的勝利恰恰給很多浮躁的媒體們帶來了非常有吸引力但具有誤導(dǎo)性的素材,也給不少創(chuàng)業(yè)者們帶來了一個不切實際的口號。當(dāng)一個新的技術(shù)突破仿佛來臨時,我們需要從一個更理性的角度去分析它的影響以及它對一個產(chǎn)業(yè)的作用。AlphaGo系統(tǒng)確實很厲害,但在技術(shù)上的顛覆還談不上,從中我們能得到的重要結(jié)論是:強大的計算能力和工程能力是搭建優(yōu)秀AI系統(tǒng)的必要條件。
全球頂尖機器學(xué)習(xí)專家Max Welling教授(也是我的合著者)對AlphaGo的評價是:
“It reflects the reality that if you want a system to work well you need to hack and engineer your way to good results... but it's awfully good!”雖然AlphaGo的勝利確實非常振奮人心,但歸根結(jié)底還是借助于優(yōu)秀的系統(tǒng),而不是所謂的顛覆性的“新技術(shù)”。我們不得不承認(rèn),所謂“真正的人工智能”離我們還非常遙遠。當(dāng)我們能夠有勇氣正視現(xiàn)狀的時候,才能沿著合理的目標(biāo)前行。
本文主要以科普為目的,力求讓讀者對AlphaGo的技術(shù)、人工智能和深度學(xué)習(xí)的現(xiàn)狀有個比較更清晰的認(rèn)識。在本文的最后,根據(jù)作者在P2P行業(yè)的從業(yè)經(jīng)驗,簡單地舉例說明了以目前的技術(shù),人工智能可以在哪些領(lǐng)域里發(fā)揮作用。
1. AlphaGo的技術(shù)其實很簡單
下面來自于自然期刊的論文 [1] 就AlphaGo的技術(shù)做了詳細(xì)的描述,有興趣的讀者可以去細(xì)讀一下。這篇論文投稿于去年,但公開刊登于今年的年初。我們可以看到論文里長長的作者名單列表,可以看出Google Deepmind為了這項工作確實花了不少血本,而且好幾個人都是本領(lǐng)域最頂尖的學(xué)者。根據(jù)AlphaGo帶來的這一波社會效應(yīng)來看,很明顯這些投入還是非常值的!
最近幾天,我看到了幾篇講解AlphaGo技術(shù)的文章 [2] [3],雖然都寫得很不錯,但還是過于抽象化。另外,一位卡耐基梅隴大學(xué)博士生整理的關(guān)于AlphaGo的講解比較清楚 [9],本文也參考了它那種解釋問題的方式。總之在本文里,我會試圖用更簡單通俗的方式把AlphaGo的核心思想呈獻給讀者。
1.1 AlphaGo在技術(shù)上沒有太多新意
首先,AlphaGo的勝利是不是意味著AI技術(shù)有了突破性的進展? 答案是否定的。其實,AlphaGo在算法層面上并沒有太多新的東西,主要是通過把已有的技術(shù)整合在一起,并利用大量的訓(xùn)練數(shù)據(jù)和計算資源來提高準(zhǔn)確性。歸根結(jié)底,強大的計算平臺和工程能力是核心。
下面的圖表示AlphaGo主要用到的核心技術(shù)(這種組織方式可能并不完全準(zhǔn)確,主要是為了更清楚地表達核心思想)。按照官方的定義,機器學(xué)習(xí)分為監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)和強化學(xué)習(xí),AlphaGo就用到了其中的兩大塊 - 監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)。類似的,AlphaGo用到了啟發(fā)式搜索算法的一種 - 蒙特卡羅樹搜索算法。這個算法是在一般AI游戲系統(tǒng)里非常常見。另外,深度學(xué)習(xí)模型里的深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)和優(yōu)化里的一階方法一起構(gòu)成了AlphaGo的核心組件。當(dāng)然,所有這些模塊離不開Google強大的計算平臺(CPU/GPU群)和強大的工程師團隊。
1.2 為什么圍棋的人工智能這么難?
這類人工智能問題的核心在于搜索。最簡單粗暴的方法其實就是把所有的可能性羅列出來,然后從中選出最優(yōu)的方案;比如在圍棋的世界里,當(dāng)我們知道每下一步走子帶來的勝利的(精確的)概率時,這個問題其實就很容易解決。但不幸的是,在圍棋的世界里這種“可能性”太多,用更準(zhǔn)確的語言描述就是 - 搜索空間過于龐大。
舉個簡單的例子,給定一個棋盤,假設(shè)每次能投放的位置有30個且游戲持續(xù)了共50步,如果把所有的可能性羅列出來這數(shù)字近似于30的50次方。即使利用再多的硬件資源,把每種可能的情況都做一遍驗證是不現(xiàn)實的。所以AlphaGo的核心技術(shù)就是在解決這樣一個難題: 避免窮舉這些所有的可能性,而是利用更聰明的方式(比如近似)來找到那些有可能促使勝利的策略(Strategy)。
1.3 AlphaGo簡單的原理
假設(shè)白色棋子代表人,黑色棋子代表機器。對于給定的棋盤局面,訓(xùn)練出來的AlphaGo每次都會試圖去選擇最好的走子方案 a (也成為action),而且這種最優(yōu)方案會讓機器有更大的可能性獲得勝利。在這里,我們假定S1為棋盤的初始狀態(tài),S2為AlphaGo選擇走子方案a之后的狀態(tài)。通過一系列的actions, 棋盤的狀態(tài)會逐步變化:S1 -> S2 ->.... > SN...?
如前所示,簡單粗暴的方法就是評估所有的可能性,其實就是判斷每一步走子帶來的勝利的概率。需要注意的是,這不僅僅要考慮眼前的一步,還要考慮到游戲結(jié)束為止走過的所有的步子,這好比優(yōu)秀的圍棋選手會比其他選手能夠多考慮接下來的幾步。
如下圖所示,當(dāng)一個選手把白色棋子放在棋盤上的時候,對于機器來說它有80種可能的走子方案(9*9-1),這稱之為廣度(Breadth)。請注意,真實棋盤是19*19。還有,作者對圍棋的規(guī)則不了解,如果在例子中有些不切實際的地方,請不要太在意。
機器確認(rèn)了下一步走子方案的時候,選手就可以選擇剩下的79種走子方案。很容易看出,僅僅簡單的兩步就共產(chǎn)生了80*79種不同的組合。所以可以想象,當(dāng)一個游戲的長度為N的時候(也稱之為深度Depth),考慮所有的可能性是不現(xiàn)實的。細(xì)心的讀者可以很容易注意到,總的可能性數(shù)目依賴于前面所提到的廣度和深度。據(jù)說,這個數(shù)量級超過了整個宇宙中原子的數(shù)目。
所以我們的目標(biāo)就是要降低搜索空間的大小(Reduce the search space)。既然搜索空間的大小依賴于搜索的廣度和深度,我們的子目標(biāo)就變得非常明確:就是要降低廣度和深度。論文里提出的走棋網(wǎng)絡(luò)(Policy Network)和估值網(wǎng)絡(luò)(Value Network)其實就是可以用來減少廣度和深度。另外,蒙特卡羅樹搜索(Monte Carlo Tree Search)把上面幾項技術(shù)整合在一起并幫助構(gòu)建完整的AI系統(tǒng)。在論文中,作者還提到了快速走子(Fast rollout)的方法,但思想跟走棋網(wǎng)絡(luò)類似,目的是為了極大地提高效率,在本文中不會過多地去介紹。
走棋網(wǎng)絡(luò)(Policy Network)
走棋網(wǎng)絡(luò)的目的是為了減少廣度(Breadth)。也就是說,對于一個給定的棋盤狀態(tài),我們要盡量把需要考慮的范圍減少,同時也要考慮最優(yōu)的走子方案。如下圖所示,通過走棋網(wǎng)絡(luò)我們可以只選擇可能性較大的走子方案,而不去考慮剩下的方案。從數(shù)學(xué)的角度來講,對于給定的一個棋盤狀態(tài)S,先計算概率分布p(a|S), 然后從中選擇最為合理的走子方案。
剩下的問題就變得很直觀:用什么方法來計算p(a|S)? 答案就是用深度神經(jīng)網(wǎng)絡(luò)! AlphaGo系統(tǒng)會從已有的比賽歷史中去學(xué)習(xí)頂級高手的走子方案。也就是說,給定一個棋盤狀態(tài),AlphaGo會試圖去模仿專家的走法,并判斷哪中走法最有利。
深度神經(jīng)網(wǎng)絡(luò)的一種 - 深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)用來做這件事情。DCNN是圖像識別領(lǐng)域里最為常用的模型。在圖像識別應(yīng)用里,DCNN的輸入為一幅圖片,它的輸出為圖像的分類。類似的,在AlphaGo系統(tǒng)里,DCNN的輸入是一個棋盤(可以把棋盤看做是一幅圖,棋盤上的黑子和白子分別可以用1和-1來表示,剩下的空位置可以用0來表示),其實相當(dāng)于一個矩陣。它的輸出就是不同走子方案的概率分布,然后基于這個分布,可以做下一步的決策。
為了達到訓(xùn)練的目的,AlphaGo需要大量的訓(xùn)練樣本,樣本就是職業(yè)玩家的比賽記錄。訓(xùn)練好的模型就可以用來模擬高手似的走法。整個樣本的訓(xùn)練過程需要大量的計算資源,幸好這是Google的優(yōu)勢。然而,AlphaGo并沒有停留在這一步,而是接著用強化學(xué)習(xí)(Reinforcement Learning)的方式來進一步提高系統(tǒng)的性能。
在這里,強化學(xué)習(xí)主要用來搜集更多的樣本,從而提高系統(tǒng)的準(zhǔn)確率。他們的做法很簡單,就是把訓(xùn)練出來的模型倆倆做對抗,根據(jù)比賽的結(jié)果再更新模型的參數(shù)。所以這是機器和機器之間的較量,這種迭代會反復(fù)很多次。
如下圖所示,通過這種迭代,最初的模型v1.0最后可能演變成了模型v1099。按照論文中的說法,這種通過不斷地自我提升訓(xùn)練出來的模型在大部分情況下會勝出最初的專家模型。
估值網(wǎng)絡(luò)(Value Network)
除了走棋網(wǎng)絡(luò),AlphaGo還采用了估值網(wǎng)絡(luò),這是一項錦上添花的技術(shù),但并不是什么新的技術(shù)。從下面的表格中可以看出即使沒有估值網(wǎng)絡(luò),AlphaGo的實力也不會太弱,至少在7d-8d之間的水平 [2]。但是相反的,如果沒有走棋網(wǎng)絡(luò),AlphaGo的實力會大大折扣。
簡單地講,估值網(wǎng)絡(luò)是用來計算每種棋盤狀態(tài)的“價值”。在這里,所謂的價值可以理解成勝負(fù)的概率,可以用0-1之間的數(shù)字來表示。
如圖所示,當(dāng)我們有不同選擇的時候,可以去計算每一種選擇之后的棋盤狀態(tài)的分值,比如可以用V(S1), V(S2), V(S3)來表示。所以,我們的目標(biāo)再次變得很清楚,也就是給定一個棋盤的狀態(tài)S,計算出勝負(fù)的概率,這部分恰恰又是歸功于深度學(xué)習(xí)網(wǎng)絡(luò)。
為了搜集足夠多的樣本,AlphaGo采用了隨機走子的方法。但在這里,生成樣本是有講究的,每一盤棋只取一個樣本來訓(xùn)練以避免過擬合 [2]。原因很簡單: 對于同一盤棋,不同輸入(相似)都會產(chǎn)生同一個輸出。這也是為什么論文提到了需要三千萬局這種龐大的樣本的原因。具體怎么做隨機走子,可以參考論文。
有了樣本,我們就可以做模型的訓(xùn)練。在這里,我們同樣地用到了深度卷積神經(jīng)網(wǎng)絡(luò)。過程非常類似于訓(xùn)練走棋網(wǎng)絡(luò),所以就不多說了。模型的輸出就是一個棋盤狀態(tài)的估值(Value)。
有了走棋網(wǎng)絡(luò)和估值網(wǎng)絡(luò),剩下的就要看怎么把它倆結(jié)合起來用。具體的效果請參考上面的表1。表里的lambda值決定兩者之間的權(quán)重。
蒙特卡羅樹搜索(Monte Carlo Tree Search)
蒙特卡羅樹搜索算法在AI游戲系統(tǒng)里非常常見。在AlphaGo里,它用來把各個部分整合在一起。由于這是一個比較經(jīng)典的AI算法 [4],在文本中不多做介紹。其實,光從名字就可以猜到它的作用是什么。這種算法用到了隨機性,并會不斷地去采樣,然后利用采樣的結(jié)果來近似地描述我們的目標(biāo)。
作為簡單的科普,怎么理解蒙特卡羅? 舉個很簡單的例子(只是為了說明大概的思想,不一定很恰當(dāng)),比如我們想統(tǒng)計全國人口的平均身高,這時候最粗暴的方式就是把國內(nèi)所有人的身高都測量一遍,然后計算它們的平均值。但如果根據(jù)蒙特卡羅的思想,我們其實可以在每個省份去采樣一部分人群,然后用這部分人群的平均身高值來代替全國的平均身高值。所以自然地,當(dāng)我們采樣的樣本數(shù)量增多時,就會變得越準(zhǔn)確。
怎么才能在人機大戰(zhàn)中贏得勝利?
下棋本身就是一種博弈的過程,其中充滿了挑戰(zhàn)。我們看到了AlphaGo連連擊敗李世石,雖然后者也贏回了一場比賽。這使得很多人開始相信了機器智能超過了人類。然而,AlphaGo只不過是在模擬專業(yè)圍棋選手的走子方案,而且這種模擬依賴于歷史比賽的記錄。
怎么才能在面對AlphaGo的比賽中獲得勝利呢? 答案其實很簡單: 就是嘗試走一些不同尋常的棋,而且這種走法很少出現(xiàn)在專業(yè)比賽當(dāng)中。要知道, AlphaGo的學(xué)習(xí)都是基于歷史比賽記錄的,如果有一部分走子方法沒有被這些歷史記錄覆蓋到,那AlphaGo就很難有效地去應(yīng)對。相反,如果按照常規(guī)的走法,那人勝出的概率會大大折扣,畢竟人在羅列和計算上還是比不過機器的。我相信不少專業(yè)棋手看到跟AlphaGo的比賽之后,都忍不住去跟它切磋一下,只要能夠有效地做出一些不同尋常的走法,贏得比賽還是有可能的。
2. 深度學(xué)習(xí)到底是什么?
在AlphaGo的系統(tǒng)里,我們用到了走棋網(wǎng)絡(luò)和估值網(wǎng)絡(luò),并且兩個網(wǎng)絡(luò)都用到了深度學(xué)習(xí)的技術(shù)。既然深度學(xué)習(xí)這么強大,它是不是意味著一個嶄新的人工智能時代的到來? 不完全否定,深度學(xué)習(xí)的確很大程度地推動了人工智能的發(fā)展,它使得圖像識別,語音識別這種核心領(lǐng)域得到突破性的進展。這也難怪,在學(xué)術(shù)圈子里逐步形成了 “深度學(xué)習(xí)“和“非深度學(xué)習(xí)”兩個派別。但是不得不承認(rèn),它的發(fā)展目前仍然處于初級階段,離我們想象中的智能還非常得遙遠。
2.1 深度學(xué)習(xí)是什么?
雖然很多人聽說過深度學(xué)習(xí),但發(fā)現(xiàn)很少人真正理解什么是深度學(xué)習(xí)。有很多媒體吹捧深度學(xué)習(xí)就是用來模擬人的大腦,從而實現(xiàn)所謂的人工智能。但很遺憾的是,我們離真正的智能還很遙遠。作為一個從事AI領(lǐng)域的科技工程師和學(xué)者,我對人工智能本身報有很大的期望,但很清楚這需要一個漫長的過程。另外,把深度學(xué)習(xí)說成模擬大腦過于夸張,我覺得即便是神經(jīng)科學(xué)家,他們對大腦運行機理的理解也不那么清楚。
還有一個問題,人工智能、機器學(xué)習(xí)、深度學(xué)習(xí)的關(guān)系又是怎樣呢? 下面的圖僅代表作者的觀點。我們所說的人工智能的范圍很廣,機器學(xué)習(xí)是一門用來實現(xiàn)人工智能的核心技術(shù),并且深度學(xué)習(xí)是機器學(xué)習(xí)中的一個子分支。
另外,所謂的深度學(xué)習(xí)是否特指某一種算法,比如深度卷積神經(jīng)網(wǎng)絡(luò)? 我的理解是,深度學(xué)習(xí)并不是特指某種機器學(xué)習(xí)算法或模型,而更像是一種方法論、思想和框架。它主要是以構(gòu)建深層結(jié)構(gòu)(deep architecture) 來學(xué)習(xí)多層次的表示(multiple levels of representation)。 比如很多算法都可以用來構(gòu)建這種深層次結(jié)構(gòu),這些包括深度神經(jīng)網(wǎng)絡(luò),深度卷積神經(jīng)網(wǎng)絡(luò),深度遞歸神經(jīng)網(wǎng)絡(luò)(Recursive/Recurrent)等等。除了下面提到的一些深度學(xué)習(xí)模型,比如像深度強化學(xué)習(xí)(Deep Reinforcement Learning)在Robotics領(lǐng)域也很受歡迎。
2.2 深度學(xué)習(xí)為什么最近才流行?
其實構(gòu)建多層次結(jié)構(gòu)的想法在20多年前就已經(jīng)有過。然而,由于種種原因,這種想法未能在當(dāng)時取得理想的效果。那究竟是哪些改變把這門“舊學(xué)科“推向了一個新的風(fēng)口? 總結(jié)起來,大概有幾個原因:
硬件上的提高。深度學(xué)習(xí)模型需要大量的樣本,這就避免不了大量的計算。然而,以前的硬件設(shè)備不足以訓(xùn)練出復(fù)雜的深度學(xué)習(xí)模型。目前,這種模型基本上都需要GPU技術(shù)的支持。
更多的數(shù)據(jù)。正是大數(shù)據(jù)有效地推動了深度學(xué)習(xí)的發(fā)展。
更有效的訓(xùn)練方法。這就要歸功于無監(jiān)督預(yù)訓(xùn)練(unsupervised pre-training)和dropout。尤其,無監(jiān)督預(yù)訓(xùn)練是深度學(xué)習(xí)發(fā)展歷史上的一個里程碑似的發(fā)現(xiàn)。因為有了它,模型才能夠得以更有效地訓(xùn)練出來,使得準(zhǔn)確率大幅提升。
對于無監(jiān)督預(yù)訓(xùn)練和dropout技術(shù),讀者可以去參考相應(yīng)的文獻,在這里就不多做介紹。總之,現(xiàn)在我們擁有的大規(guī)模計算平臺和大數(shù)據(jù)是促使深度學(xué)習(xí)發(fā)展的非常重要的因素!
2.3 深度學(xué)習(xí)的優(yōu)勢在哪里?
既然我們說到深度學(xué)習(xí)是一種構(gòu)建多層次結(jié)構(gòu)的框架,那自然而然的,我們會跟傳統(tǒng)的機器學(xué)習(xí)模型做對比,我們可以稱其為淺層模型(Shallow Model)。那深度學(xué)習(xí)跟淺層模型比有什么優(yōu)勢呢? 不少人會人為深度學(xué)習(xí)只不過是一層一層的疊加,除此之外沒有什么太大的區(qū)別。但事實不是這樣的,可以從幾個方面說起。部分涉及到的技術(shù)點較多,如果對這部分理論不感興趣,讀者可以勇敢地跳到下一章節(jié)。
分布式表示(Distributed Representation)
這是深度學(xué)習(xí)模型最為重要的性質(zhì)。舉一個非常簡單的例子,假設(shè)我們的詞典上有16個單詞,如果用傳統(tǒng)的bag-of-words 的表示方法,我們可以用16維的向量來表示每個詞,向量的每一位代表某個詞的出現(xiàn)與否。然而,如果我們用分布式表示的思想,則也可以用四維的向量來代表每一個詞,例如 (0,0,0,1), (0,0,1,0),..., (1,1,1,1) 。 通過這個例子,我想說明的一點是:對同一個輸入,我們可以有不同的配置(configuration)。但具體哪種方式更好呢?
再舉一個稍微復(fù)雜的例子,這是Bengio教授經(jīng)常拿出來講的例子。下面兩幅圖表示兩種聚類的表達方式。我們可以把左圖看成是一般的聚類方式,右圖看成是基于分布式表示的聚類方式。在左圖里,我們把整個空間分成了幾個區(qū)域,每一個區(qū)域由一組參數(shù)來描述(characterize),所以我們共需要9組參數(shù)。 與此相比,在右圖中,每一個區(qū)域由三個子模塊來表達。 這個時候我們只需要三組參數(shù),而且每一個區(qū)域都會共享這三組參數(shù), 被稱之為參數(shù)共享(parameter sharing)。 這個性質(zhì)帶來的一個重要的優(yōu)點是 -- 非局部泛化(non-local generalization). 我們要知道機器學(xué)習(xí)的目的就是要在測試集上(test set)得到更好的泛化(better generalization)效果 。 在左圖中,我們只能得到局部泛化(local generalization), 即便這樣,為了達到局部泛化的目的,我們需要對每個區(qū)域有足夠多的樣本(training examples)來學(xué)習(xí)參數(shù)。除此之外,分布式表示可以有效地應(yīng)對curse of dimensionality問題 。
學(xué)習(xí)多層次的表示(Multiple Levels of Representation)
這類似于人的大腦:人們總是先學(xué)到簡單的概念(concept), 然后以這個為基礎(chǔ),不斷地去學(xué)習(xí)更為復(fù)雜和具體(concrete)的概念。
如下圖所示,當(dāng)我們把深度學(xué)習(xí)應(yīng)用在圖像時,第一層學(xué)出來的是各種濾波器(filter), 第二層學(xué)出來的是臉部的某一個部位,最上層(第三層)就已經(jīng)可以學(xué)出具體的人臉了。 整個過程,從下到上,就是在不斷地學(xué)習(xí)更為具體特征的過程。
自動學(xué)習(xí)特征
使用這種多層次結(jié)構(gòu)可以幫助避免繁瑣的人為特征設(shè)計(feature engineering)過程。在傳統(tǒng)的圖像識別方法里,我們首先要做的就是從圖片中提取有效的特征(這些都是人為設(shè)計的),但問題是對于不同類型的識別任務(wù),我們需要人為地去設(shè)計不同類型的特征,這就導(dǎo)致整個的過程非常繁瑣。然而,在深度學(xué)習(xí)框架下,我們的輸入就是圖片的每個像素,并不需要做人為的特征提取 (當(dāng)然,必要的預(yù)處理還是要做的)。
2.4 深度學(xué)習(xí)有多強大?
目前深度學(xué)習(xí)在圖像識別和語音識別上得到了不錯的發(fā)展,也有不少專家非常看好在自然語言處理上的發(fā)展。但個人而言,自然語言處理上的成果還是比較初級的。自然語言處理領(lǐng)域里,自動問答可能是很多人想去攻克的問題,因為它的應(yīng)用面很廣比如智能助手等。但遺憾的是,目前的技術(shù)還不足以構(gòu)建通用性的問答系統(tǒng)。對于某一個垂直領(lǐng)域,簡答的事情上還是可以實現(xiàn)自動化的。除了這些領(lǐng)域,深度學(xué)習(xí)在金融和醫(yī)療上也受到越來越多的關(guān)注,但相比圖像識別這種應(yīng)用,發(fā)展還是比較緩慢一些。
至于深度學(xué)習(xí)有多強大,我只能說目前能夠滿足日常生活里非常基礎(chǔ)的智能化需求。但想達到那種科幻片里的效果,還是非常遙遠的。并且我們對深度學(xué)習(xí)最根本原理的理解也不夠透徹。
3. 金融上的應(yīng)用
講了很多技術(shù)方面的東西,接下來我們就簡單地分析一下在金融行業(yè)里,深度學(xué)習(xí)這種AI技術(shù)能起到什么樣的作用。雖然深度學(xué)習(xí)等技術(shù)不是什么傳奇的工具,但如果能夠正視技術(shù)的本質(zhì)和可行性,其實有不少應(yīng)用點是可以考慮進來的。本人在寫這篇文章時在P2P行業(yè)里僅僅待滿半年,所以也有可能在某些地方說得不切實際。如有疑問,請及時通知作者,盡快修正。
它已成為消費信貸領(lǐng)域里最為重要的工具。通過評分模型的結(jié)果,我們可以對客戶做借貸與否的決定,對各戶的分類以及相應(yīng)的授信。大部分模型都是基于用戶本身的一些基本的變量,通過簡單的機器學(xué)習(xí)算法比如邏輯回歸(Logistic Regression),決策樹(Decision Tree),隨機森林(Random Forest)等,或者用他們的組合模型來做判斷。在傳統(tǒng)的風(fēng)險評估模型里,用到的變量數(shù)目并不多(基本都是強變量),所以這種簡單的模型也能夠滿足基本的需求。然而在P2P行業(yè)里,我們能夠直接獲取到的用戶的歷史數(shù)據(jù)有限,這跟傳統(tǒng)的銀行貸款是有區(qū)別的。
在P2P行業(yè)里,除了那些基本的強變量,我們也會去使用很多的弱變量來幫助做決策。這種弱變量來源多樣化,有些來自用戶的行為數(shù)據(jù),有些來自用戶的瀏覽記錄... 這些強變量和弱變量組合在一起就構(gòu)成了一個高維的特征向量,它們之間存在著非常復(fù)雜的非線性關(guān)系。這些條件使得深度學(xué)習(xí)模型在風(fēng)險評估上擁有獨一無二的優(yōu)勢。
但是很難有兩全其美。由于深度學(xué)習(xí)模型本身較差的可解釋性,訓(xùn)練出來的模型在很多使用方的眼里是個黑盒子。
3.2 反欺詐
反欺詐一直是風(fēng)控里最為重要的環(huán)節(jié)。 特別在復(fù)雜的國內(nèi)市場的環(huán)境下,減少欺詐風(fēng)險是對每一個金融公司來說尤其得重要,并且傳統(tǒng)的反欺詐手段很難再適用于P2P這種新型行業(yè),我們不得不用更先進的手段去發(fā)現(xiàn)欺詐風(fēng)險。很多欺詐風(fēng)險隱藏在復(fù)雜的關(guān)系網(wǎng)絡(luò)里,所以分析這種網(wǎng)絡(luò)變得格外必要。
行業(yè)里,最常用的做法就是從已有的關(guān)系網(wǎng)絡(luò)里人為地去提取欺詐規(guī)則,然后根據(jù)這些規(guī)則的結(jié)果給出最后的欺詐評分。這種工作不僅需要敏銳的頭腦和想象力,還需要充分的數(shù)據(jù)驗證過程和業(yè)務(wù)知識。欺詐其實也是個博弈的過程,作為風(fēng)控方,我們需要不斷地去修改反欺詐手段來迎合變化多端的欺詐風(fēng)險。這不得不讓風(fēng)控團隊不斷地去設(shè)計和部署新的規(guī)則。然而,整個過程非常耗時,而且需要全程的人為干涉。我們想做的是一種全自動化的手段,就是不通過規(guī)則的提取而直接使用模型來準(zhǔn)確地給出一個欺詐評分,或者讓機器自動提取出一些反欺詐規(guī)則。這部分工作需要依靠深度學(xué)習(xí)模型,但前提條件是有足夠多的數(shù)據(jù),包括豐富的關(guān)系。
3.3 用人工智能來取代分析員的工作
最近,很多人在討論美國一家比較有意思的公司,叫做Kensho。這是一家金融人工智能公司。它的目的很簡單,就是要讓機器完成分析師的工作,如果這個能夠?qū)崿F(xiàn),這將是顛覆性的。舉個簡單的例子,比如一個新的事件a發(fā)生,如果機器能夠快速地把跟事件a相關(guān)的信息關(guān)聯(lián)出來,這將會減少分析師大量的工作。再比如,如果機器能夠準(zhǔn)確地判斷股票升跌之間的關(guān)系,這也將對股民是一個非常有價值的信息。
然而,實現(xiàn)這些功能,需要克服以下幾個難點:
海量文本的挖掘。這里包括各大新聞、財經(jīng)類網(wǎng)站、論壇、財務(wù)報表等。其實最大的難點在于信息的自動關(guān)聯(lián)以及相關(guān)性強度的判斷。這部分需要強大的自然語言處理(NLP)技術(shù)來做支持,在這方面,深度學(xué)習(xí)是一個很好的選擇。
數(shù)據(jù)稀疏性的處理。很多事件在歷史上發(fā)生的次數(shù)并不多,比如空難等。這種歷史數(shù)據(jù)的不足會使得系統(tǒng)的性能有所折扣。在這種情況下,怎么把其他相關(guān)的信息結(jié)合在一起顯得非常得重要。
相關(guān)性的推理。當(dāng)我們得到一個完整的因果關(guān)系網(wǎng)絡(luò)以后,就可以用推理的手段去進一步去豐富它。舉個例子,比如股票A影響股票B的價格波動,股票B影響股票C的價格波動,那我們自然而然地去問股票A跟C的相關(guān)性有多大。 在關(guān)系推理的工作上,深度學(xué)習(xí)也得到了不錯的進展。
關(guān)系的量化其實這是一個很難的問題,就是如何量化某一個關(guān)系。我們從文本中不難挖掘A和B之間是否有因果關(guān)系,但卻很難定義他倆之間的量化程度。還有就是,當(dāng)把這些量化指標(biāo)結(jié)合到因果關(guān)系網(wǎng)絡(luò)里的時候,推理也會變得更難。
3.4 輿情分析
通過一些網(wǎng)上的新聞或論壇里發(fā)表的帖子來判斷對某一件事情的輿情是很有幫助的。人們常常討論用它來做股票的預(yù)測,具體效果好不好,因為我還沒有親自做過調(diào)研就不多講了。還有一個最常用的應(yīng)用就通過對產(chǎn)品輿情的監(jiān)控來判斷消費者的滿意程度以及對產(chǎn)品的建議。對一個公司來說,這種信息是非常有價值的。
基于文本的輿情分析并不是一個新的問題。早在10多年前很多人就開始探討這個問題。隨著深度學(xué)習(xí)的發(fā)展,基于深度學(xué)習(xí)的輿情分析技術(shù)也受到了不少關(guān)注,在預(yù)測的準(zhǔn)確率上也有所提高。所以,我還是比較看好深度學(xué)習(xí)在輿情分析領(lǐng)域里的作用。
3.5 高頻交易
很多人覺得人工智能在長期的投資上幫不了什么忙,這個我比較同意,畢竟金融市場隨機性太大。但在高頻交易上,它還是能夠幫上很多忙的。但縱觀深度學(xué)習(xí)的發(fā)展,它在這些領(lǐng)域里的應(yīng)用還是有限的,至少我還沒有看到過太多這方面的案例。但鑒于深度學(xué)習(xí)逐步進入醫(yī)療領(lǐng)域等跡象,我還是比較看好高頻交易上的應(yīng)用。
4. 結(jié)語
寫了這么多,主要還是為了介紹目前人工智能的現(xiàn)狀,能讓讀者對這個領(lǐng)域有個更清晰的認(rèn)識。總的來說,雖然AlphaGo的結(jié)果很振奮人心,但它畢竟不是什么顛覆性的新科技,只是把已有的技術(shù)以更好的方式組織在一起并做出了一套智能化的系統(tǒng)。機器在棋牌上勝過人類一點都不奇怪,因為這些問題都是有著明確的規(guī)則和有限的搜索空間,就看誰能夠更快地找到最優(yōu)解罷了。
然而,在現(xiàn)實生活里,很多的問題充滿著噪聲和隨機性,比如股價的波動、自動駕駛需要面對的復(fù)雜的路況等等。目前的AI技術(shù)離真正的AI還非常遙遠,推動這項工程需要工業(yè)界和學(xué)術(shù)界人士的緊密的合作。
對于工業(yè)界應(yīng)用來說,其實最重要的就是要正視目前的技術(shù)能力和瓶頸,從而提出更加合理的應(yīng)用場景和產(chǎn)品設(shè)計方案。
參考文獻
[1] Silver, David, et al. "Mastering the game of Go with deep neural networks and tree search." Nature 529.7587 (2016): 484-489.
[2] 田淵棟 AlphaGo的分析?AlphaGo的分析 - 遠東軼事 - 知乎專欄
[3] Dan Mass. How AlphaGo works.?How AlphaGo Works
[4]?Monte Carlo tree search
[5] Socher, Richard, et al. "Recursive deep models for semantic compositionality over a sentiment treebank." Proceedings of the conference on empirical methods in natural language processing (EMNLP). Vol. 1631. 2013.
[6] Damianou, Andreas C., and Neil D. Lawrence. "Deep gaussian processes."arXiv preprint arXiv:1211.0358 (2012). *
[7] van den Oord, Aaron, and Benjamin Schrauwen. "Factoring variations in natural images with deep gaussian mixture models." Advances in Neural Information Processing Systems. 2014.
[8] Hinton, Geoffrey E., and Ruslan R. Salakhutdinov. "Reducing the dimensionality of data with neural networks." Science 313.5786 (2006): 504-507.
[9]?How AlphaGo Works
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的AlphaGo、人工智能、深度学习解读以及应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全卷积网络FCN详解
- 下一篇: 深度学习应用大盘点