close

AlphaGo背後技術(附人工智能全景圖)

AlphaGo是第一個擊敗人類職業圍棋選手並戰勝圍棋世界冠軍的程序,是圍棋史上最具實力的選手之一。2016年3月,AlphaGo經過5局對弈,最終以4比1的總比分戰勝瞭圍棋世界冠軍李世石,這場比賽成為瞭人工智能領域的一個重要...



AlphaGo 是第一個擊敗人類職業圍棋選手並戰勝圍棋世界冠軍的程序,是圍棋史上最具實力的選手之一。2016 年 3 月,AlphaGo 經過5局對弈,最終以 4 比 1 的總比分戰勝瞭圍棋世界冠軍李世石,這場比賽成為瞭人工智能領域的一個重要裡程碑。

今天,備受期待的中國烏鎮圍棋峰會在浙江烏鎮正式拉開帷幕。相比於此前 AlphaGo 和李世石的比賽的 5 局 3 勝制度,此次 AlphaGo 和世界第一柯潔將進行三番棋的對弈。配對賽中,兩位棋手將分別與 AlphaGo 組隊,挑戰棋手如何去理解 AlphaGo 的獨特風格並與之合作;在團隊賽中,將由五位中國頂尖棋手合作,建立棋手“神經網絡”,降低心理因素的影響,從而做出更加客觀的判斷。

本文選編於199it.com,收錄於CSDN知識庫。

本文較長,末尾有人工智能全景大圖,有助於你對人工智能領域的瞭解。

類神經網絡

卷積神經網絡

為什麼圍棋比較困難?

AlphaGo的主要機制

弱人工智能與強人工智能

人工智能全景圖

什麼是類神經網絡?

類神經網絡是很古老的技術瞭,在1943年,Warren McCulloch以及Walter Pitts首次提出神經元的數學模型,之後到瞭1958年,心理學傢Rosenblatt提出瞭感知器(Perceptron)的概念,在前者神經元的結構中加入瞭訓練修正參數的機制(也是我們俗稱的學習),這時類神經網絡的基本學理架構算是完成。類神經網絡的神經元其實是從前端收集到各種訊號(類似神經的樹突),然後將各個訊號根據權重加權後加總,然後透過活化函數轉換成新訊號傳送出去(類似神經元的軸突)。

至於類神經網絡則是將神經元串接起來,我們可以區分為輸入層(表示輸入變量),輸出層(表示要預測的變量),而中間的隱藏層是用來增加神經元的復雜度,以便讓它能夠仿真更復雜的函數轉換結構。每個神經元之間都有連結,其中都各自擁有權重,來處理訊號的加權。

傳統的類神經網絡技術,就是透過隨機指派權重,然後透過遞歸計算的方式,根據輸入的訓練數據,逐一修正權重,來讓整體的錯誤率可以降到最低。隨著倒傳導網絡、無監督式學習等技術的發展,那時一度類神經網絡蔚為顯學,不過人類很快就遇到瞭困難,那就是計算能力的不足。因為當隱藏層隻有一層的時候,其實大多數的狀況,類神經網絡的分類預測效果其實並不會比傳統統計的羅吉斯回歸差太多,但是卻要耗費更龐大的計算能力,但是隨著隱藏層神經元的增加,或者是隱藏層的增加,那麼所需要計算權重數量就會嚴重暴增。所以到瞭八十年代後期,整個類神經網絡的研究就進入瞭寒冬,各位可能隻能在洗衣機裡體會到它小小威力(現在洗衣機裡根據倒入衣物評估水量與運行時間很多都是用類神經網絡作的),說真的,類神經網絡一點都沒有被認為強大。

這個寒冬一直持續到2006年,在Hinton以及Lecun小組提出瞭「A fast learningalgorithm for deep belief nets」論文之後,終於有瞭復蘇的希望,它們提出的觀點是如果類神經網絡神經元權重不是以隨機方式指派,那麼應該可以大幅縮短神經網絡的計算時間,它們提出的方法是利用神經網絡的非監督式學習來做為神經網絡初始權重的指派,那時由於各傢的論文期刊隻要看到類神經網絡字眼基本上就視為垃圾不刊登,所以他們才提出深度學習這個新的字眼突圍。除瞭Hinton的努力之外,得力於摩爾定律的效應,我們可以用有更快的計算能力,Hinton後來在2010年使用瞭這套方法搭配GPU的計算,讓語音識別的計算速度提升瞭70倍以上。深度學習的新一波高潮來自於2012年,那年的ImageNet大賽(有120萬張照片作為訓練組,5萬張當測試組,要進行1000個類別分組)深度學習首次參賽,把過去好幾年隻有微幅變動的錯誤率,一下由26%降低到15%。而同年微軟團隊發佈的論文中顯示,他們透過深度學習將ImageNet 2012數據集的錯誤率降到瞭4.94%,比人類的錯誤率5.1%還低。而去年(2015年)微軟再度拿下ImageNet 2015冠軍,此時錯誤率已經降到瞭3.57%的超低水平,而微軟用的是152層深度學習網絡。

卷積神經網絡(Convolutional Neural Network)

在圖像識別的問題上,我們處理的是一個二維的神經網絡結構,以100*100像素的圖片來說,其實輸入數據就是這10000像素的向量(這還是指灰階圖片,如果是彩色則是30000),那如果隱藏層的神經元與輸入層相當,我們等於要計算10的8次方的權重,這個數量想到就頭疼,即使是透過並行計算或者是分佈式計算都恐怕很難達成。因此卷積神經網絡提出瞭兩個很重要的觀點:

局部感知域:從人類的角度來看,當我們視覺聚焦在圖片的某個角落時,距離較遠的像素應該是不會影響到我們視覺的,因此局部感知域的概念就是,像素指需要與鄰近的像素產生連結,如此一來,我們要計算的神經連結數量就能夠大幅降低。舉例來說,一個神經元指需要與鄰近的10*10的像素發生連結,那麼我們的計算就可以從10的8次方降低至100*100*(10*10)=10的6次方瞭。

權重共享:但是10的6次方還是很多,所以這時要引入第二個觀念就是權重共享。因為人類的視覺並不會去認像素在圖片上的絕對位置,當圖片發生瞭平移或者是位置的變化,我們都還是可以理解這個圖片,這表示我從一個局部所訓練出來的權重(例如10*10的卷積核)應該是可以適用於照片的各個位置的。也就是說在這個10*10范圍所學習到的特征可以變成一個篩選器,套用到整個圖片的范圍。而權重共享造成這10*10的卷積核內就共享瞭相同的權重。一個卷積核可以理解為一個特征,所以神經網絡中可以設計多個卷積核來提取更多的特征。下圖是一個3*3的卷積核在5*5的照片中提取特征的示意圖。



卷積層找出瞭特征後,就可以做為輸入變量到一般的類神經網絡進行分類模型的訓練。不過當網絡結構越來越復雜,樣本數如果不是極為龐大,很容易會發生過度學習的問題(over-fitting,神經網絡記憶的建模數據的結構,而非找到規則)。因此我們後來引入池化 (pooling)或是局部取樣(subsampling)的概念,就是在卷積核中再透過n*n的小區域進行匯總,來凸顯這個區域的最顯著特征,以避免過度學習的問題。

所以常見的圖像識別技術(例如ImageNet)就是透過多階段的卷積層+池化層的組合,最後在接入一般的類神經網絡架構來進行分類預測。下圖是一個圖像識別的范例。其中的C2、C4、C6都是卷積層,而S3與S5則是池化層。卷積神經網絡建構瞭一個透過二維矩陣來解決抽象問題的神經網絡技術。而圖像識別不再需要像過去一樣透過人工先找出圖像特征給神經網絡學習,而是透過卷積網絡結構,它們可以自己從數據中找出特征,而且卷積層越多,能夠辨識的特征就越高階越抽象。所以你要訓練神經網絡從照片中辨識貓或狗,你不再需要自己找出貓或狗的特征註記,而是隻要把大量的貓或狗的照片交給神經網絡,它自己會找出貓或狗的抽象定義。



講到這裡有沒有發現卷積神經網絡作圖像識別與圍棋有甚麼相似性?沒錯,圍棋是一個19*19的方陣,而圍棋也是一個規則不像象棋或西洋棋般的明確,而且具備瞭很高的需要透過直覺才能判斷落子的特性。這個時候,深度學習就能發揮極佳的作用,因為程序設計師不需要自己把圍棋的遊戲規則輸入給計算機,它可以透過大量的棋譜自己找出對應的邏輯與抽象概念。

為什麼圍棋比較困難?

為什麼深藍可以在西洋棋贏過人類但是卻無法贏圍棋,這是因為深藍透過強大的計算能力,將未來局勢的樹狀架構,推導出後面勝負的可能性。但是各位要知道,以西洋棋或中國象棋來說,它的分支因子大概是40左右,這表示預測之後20步的動作需要計算40的20次方(這是多大,就算是1GHz的處理器,也要計算3486528500050735年,請註意,這還是比較簡單的西洋棋),所以他利用瞭像是MinMax搜索算法以及Alpha-Beta修剪法來縮減可能的計算范圍,基本上是根據上層的勝率,可能勝的部分多算幾層、輸的少算,無關勝負不算,利用暴力解題法來找出最佳策略。但是很不幸的是,圍棋的分支因子是250,以圍棋19*19的方陣,共有361個落子點,所以整個圍棋棋局的總排列組合數高達10的171次方,有不少報導說這比全宇宙的原子數還多,這是采用瞭之前的一個古老的研究說全宇宙原子數是10的75次方,不過我對此隻是靜電油煙機出租笑笑,我覺得這也是低估瞭宇宙之大吧。

AlphaGo的主要機制

在架構上,AlphaGo可以說是擁有兩個大腦,兩個神經網絡結構幾乎相同的兩個獨立網絡:策略網絡與評價網絡,這兩個網絡基本上是個13層的卷積神經網絡所構成,卷積核大小為5*5,所以基本上與存取固定長寬像素的圖像識別神經網絡一樣,隻不過我們將矩陣的輸入值換成瞭棋盤上各個坐標點的落子狀況。

第一個大腦「策略網絡」基本上就是一個單純的監督式學習,用來判斷對手最可能的落子位置。他的做法是大量的輸入這個世界上職業棋手的棋譜,用來預測對手最有可能的落子位置。在這個網絡中,完全不用去思考「贏」這件事,隻需要能夠預測對手的落子即可。目前AlphaGo預測對手落子位置的正確率是57%(這是刊登在Nature文章時的數據,現在想必更高瞭)。那各位可能認為AlphaGo的弱點是否應該就在策略網絡,一方面是預測準確率不高,再者是如果下瞭之前他沒看過的棋局是不是就有機會可以贏過他。可惜並不是,因為AlphaGo的策略網絡有做瞭兩個層面增強,第一個層面是利用瞭名為增強策略網絡(reinforced-learning (RL) policynetwork)的技術,他先使用部分樣本訓練出一個基礎版本的策略網絡,以及使用完整樣本建立出來的進階版策略網絡,然後讓兩個網絡對弈,後者進階版策略網絡等於是站在基礎版前的「高手」,因此可以讓基礎網絡可以快速的熟即到高手可能落子的位置數據,進而又產生一個增強版,這個增強版又變成原有進階版的「高手」,以此循環修正,就可以不斷的提升對於對手(高手)落子的預測。第二個層面則是現在的策略網絡不再需要在19*19的方格中找出最可能落子位置,改良過的策略網絡可以先透過卷積核排除掉一些區域不去進行計算,然後再根據剩餘區域找出最可能位置,雖然這可能降低AlphaGo策略網絡的威力,但是這種機制卻能讓AlphaGo計算速度提升1000倍以上。也正因為Alpha Go一直是根據整體局勢來猜測對手的可能落子選擇,也因此人類耍的小心機像是刻意下幾步希望擾亂計算機的落子位置,其實都是沒有意義的。

第二個大腦是評價網絡。在評價網絡中則是關註在目前局勢的狀況下,每個落子位置的「最後」勝率(這也是我所謂的整體棋局),而非是短期的攻城略地。也就是說策略網絡是分類問題(對方會下在哪),評價網絡是評估問題(我下在這的勝率是多少)。評價網絡並不是一個精確解的評價機制,因為如果要算出精確解可能會耗費極大量的計算能力,因此它隻是一個近似解的網絡,而且透過卷積神經網絡的方式來計算出卷積核范圍的平均勝率(這個做法的目的主要是要將評價函數平滑化,同時避免過度學習的問題),最終答案他會留到最後的蒙利卡羅搜索樹中解決。當然,這裡提到的勝率會跟向下預測的步數會有關,向下預測的步數越多,計算就越龐大,AlphaGo目前有能力自己判斷需要展開的預測步數。但是如何能確保過去的樣本能夠正確反映勝率,而且不受到對弈雙方實力的事前判斷(可能下在某處會贏不是因為下在這該贏,而是這個人比較厲害),因此。這個部分它們是透過兩臺AlphaGo對弈的方式來解決,因為兩臺AlphaGo的實力可以當作是相同的,那麼最後的輸贏一定跟原來的兩人實力無關,而是跟下的位置有關。也因此評價網絡並不是透過這世界上已知的棋譜作為訓練,因為人類對奕會受到雙方實力的影響,透過兩臺對一的方式,他在與歐洲棋王對弈時,所使用的訓練組樣本隻有3000萬個棋譜,但是在與李世石比賽時卻已經增加到1億。由於人類對奕動則數小時,但是AlphaGo間對奕可能就一秒完成數局,這種方式可以快速地累積出正確的評價樣本。所以先前提到機器下圍棋最大困難點評價機制的部分就是這樣透過卷積神經網絡來解決掉。

AlphaGo技術的最後環節就是蒙地卡羅搜索樹,相較於以前深藍油煙靜電機租賃所使用的搜索(搭配MinMax搜索算法以及Alpha-Beta修剪法,這裡就不再贅述),由於我們並非具有無限大的計算能力(請註意,如果是有限的排列組合,蒙地卡羅搜索樹的確有可能針對所有組合進行通盤評估,但是在圍棋的場景下是沒有辦法的,就算這樣做,恐怕也會造成計算時間的大幅增加),因此不可能是適用於舊的方法,不過在前面策略網絡以及評價網絡中,AlphaGo已經可以針對接下來的落子(包括對方)可能性縮小到一個可控的范圍,接下來他就可以快速地運用蒙地卡羅搜索樹來有限的組合中計算最佳解。一般來說蒙地卡羅搜索樹包括4個步驟:

選取首先根據目前的狀態,選擇幾種可能的對手落子模式。

展開根據對手的落子,展開至我們勝率最大的落子模式(我們稱之為一階蒙地卡羅樹)。所以在AlphaGo的搜索樹中並不會真的展開所有組合。

評估如何評估最佳行動(AlphaGo該下在哪?),一種方式是將行動後的棋局丟到評價網絡來評估勝率,第二種方式則是做更深度的蒙地卡羅樹(多預測幾階可能的結果)。這兩種方法所評估的結果可能截然不同,AlphaGo使用瞭混合系數(mixing coefficient)來將兩種評估結果整合,目前在Nature刊出的混合系數是50%-50%(但是我猜實際一定不是)

倒傳導在決定我們最佳行動位置後,很快地根據這個位置向下透過策略網絡評估對手可能的下一步,以及對應的搜索評估。所以AlphaGo其實最恐怖的是,李世石在思考自己該下哪裡的時候,不但AlphaGo可能早就猜出瞭他可能下的位置,而且正利用他在思考的時間繼續向下計算後面的棋路。

根據AlphaGo團隊的實測,如果單獨使用一個大腦或是蒙利卡羅搜索樹技術,都能達到業餘(段)的等級(歐洲棋王樊摩強度等級大概是在2500~2600,而李世石是在3500以上)。但是當這些技術整合就能呈現更強大的力量。但是在刊登Nature論文時他的預估強度大概也隻有職業3~4段(李世石是9段),不過剛剛提到他透過增強技術強化策略網絡、透過兩臺AlphaGo來優化評價網絡,這都可以讓他可以在短時間變得更加強大。而且計算機沒有情感也不怕壓力,更不會因為對手表現而輕敵(AlphaGo的策略網絡一向隻預測強者),所以人類就算有更強大的實力也未必能夠承受輸贏壓力而做最好的發揮。

弱人工智能與強人工智能

現在計算機在圍棋這個號稱人類最後的堡壘中勝過瞭人類,那我們是不是要擔心人工智能統治人類的一天到來,其實不必杞人憂天,因為在人工智能的分類上來說,區分為弱人工智能(ArtificialNarrow Intelligence)與強人工智能(Artificial General Intelligence)(事實上還有人提出高人工智能Artificial Super Intelligence,認為是比人類智力更強大,具備創造創新與社交技能的人工智能,但我覺得這太科幻瞭,不再討論范圍內),其中最大的差別在於弱人工智能不具備自我意識、不具備理解問題、也不具備思考、計劃解決問題的能力。各位可能要質疑AlphaGo如果不能理解圍棋他是如何可以下的那麼好?請註意,AlphaGo本質上就是一個深度學習的神經網絡,他隻是透過網絡架構與大量樣本找到瞭可以預測對手落子(策略網絡)、計算勝率(評價網絡)以及根據有限選項中計算最佳解的蒙地卡羅搜索樹,也就是說,他是根據這三個函數來找出最佳動作,而不是真的理解瞭什麼是圍棋。所以AlphaGo在本質上與微軟的Cortana或iPhone的Siri其實差別隻是專精在下圍棋罷瞭,並沒有多出什麼思考機制。

那麼會有強人工智能出現的一天嗎?在2013年Bostrom對全球數百位最前沿的人工智能專傢做瞭問卷,問瞭到底他們預期強人工智能什麼時候會出現,他根據問卷結果推導出瞭三個答案:樂觀估計(有10%的問卷中位數)是2022年,正常估計(50%的問卷中位數)是2040年,悲觀估計(90%的問卷中位數)是2075年。所以離我們還久的呢。不過當弱人工智能的發展進入到成本降低可商業化的時候,大傢與其關心人工智能會不會統治地球,還不如先關心自己的工作技能會不會被計算機取代來實際些吧。

人工智能全景圖,看看你掌握瞭多少

機器學習四十天精英計劃,系統大課

150+系統課程,金牌直播答疑,贈送經典VIP

轉發朋友圈並截圖回復本公眾號

還可獲得現金優惠券一張

閱讀原文,成為人工智能領域精英

來源靜電油煙處理機租賃:www.sohu.com


聲明:?91.com所發佈的內容均來源於互聯網,目的在於傳遞信息,但不代表本站贊同其觀點及立場,版權歸屬原作者,如有侵權,請聯系刪除。




信息也是生產力,精簡才是硬道理!情報獵手帶你突破信息迷霧,每日獨傢為您鎖定最有價值的IT行業新鮮事。打開微信,掃描關註,贏取每月粉絲獎!

台灣電動床工廠 電動床

台灣電動床工廠 電動床

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 bvu921n4j4 的頭像
    bvu921n4j4

    文具?

    bvu921n4j4 發表在 痞客邦 留言(0) 人氣()