close
柯潔輸瞭,所以來學學AlphaGo背後的人工智能吧
原標題:柯潔輸瞭,所以來學學AlphaGo背後的人工智能吧 | 重磅
張江 北京師范大學副教授,集智俱樂部、AI學園創始人,騰訊研究院、阿裡研究院、網絡智庫專傢、人工智能研究者與佈道師。
導語
發這篇文章的時候,柯潔與AlphaGo世紀大戰已經結束瞭,可以說是毫無懸念,柯潔最終還是輸掉瞭一局,這也是在大傢意料之中的事情。今天借著這樣一個契機,我寫下瞭這篇文章,重點想和大傢聊一聊AlphaGo背後的人工智能技術。
我們知道,去年三月份戰勝圍棋高手李世乭的AlphaGo實際上是一個多種AI技術、多個深度網絡的混合體。它的總體架構如下圖所示:
其中整個架構分成左右兩部分,左邊是兩個神經網絡,利用人類的走棋來訓練得到。DeepMind獲取瞭韓國網絡圍棋對抗平臺KGS上大量高手走棋的棋譜,並訓練左邊的神經網絡來預測人類下一步的走棋。右側的部分則是不需要借鑒人類下棋的經驗,機器完全通過強化學習,自己跟自己玩從而訓練網絡達到強大的水平。據說,現在的AlphaGo是升級版本的,它已經完全拋棄瞭基於人類專傢下棋經驗的走棋網絡(左邊),而隻剩下瞭AlphaGo左右互靜電油煙機租賃博的強化學習部分。本篇文章就主要講講右半部分,左右互搏的AlphaGo。
走棋網絡
首先,我們可以將AlphaGo看作是一個機器人,棋盤加對手就是它所面臨的環境。AlphaGo需要學習的就是在面對不同環境的時候,它應該如何進行決策,也就是給出下一時刻的走棋。我們把這種從當前棋局決定我應該走到哪裡的對應稱作一個策略(Policy),AlphaGo通過大量的自己跟自己下棋從而得到這樣的一個走棋策略。
具體的方法是,我們首先構造一個深度的卷積神經網絡(稱為走棋網絡),輸入的是棋盤狀態所構成的一張二維圖片;輸出的則是AlphaGo下一步的走法,如下圖所示。
新竹靜電機租賃
我們知道,深度卷積神經網絡非常擅長處理圖像,它不僅可以敏銳地辨別圖像屬於不同的類別,而且還可以提煉出圖像中的多層次信息。例如,當我們把大量的圖片喂給卷積神經網絡的時候,它就可以在低層的網絡提煉圖像中的細節信息(如邊緣、棱角),而在高層則處理圖像中的大尺度信息。之所以在和李世乭的世紀大戰中,AlphaGo展現出瞭某種“大局觀”,就是因為卷積神經網絡可以提煉棋局中的大尺度、高層次信息。
有瞭這樣的網絡架構,我們就要訓練這個網絡瞭。然而,卷積神經網絡的訓練是需要有監督信息的,而我們知道圍棋是一種無監督的博弈,AlphaGo隻有在走完瞭整個棋局才能獲得反饋,怎麼辦呢?答案就在於左右互博!我們可以讓當前的AlphaGo和它自己來進行比賽,走到終點!這樣不就可以獲得反饋信息瞭嗎?
具體地說,我們可以用同一個走棋網絡的兩個副本完成兩個AlphaGo的博弈,然後讓其中的一個AlphaGo進行學習。這樣,每從一個棋局S開始,AlphaGo和它自己的副本完成瞭對局,就會獲得一個輸贏的得分;然後它再從S開始,再下到棋局結束,……,一共進行3千萬次。由於每一次走棋都是有隨機性的,所以每次的得分都會不一樣,有的時候AlphaGo可能贏,有的時候則可能是輸,於是針對一個棋局S,我們就可以計算這三千萬盤棋的平均得分。我們把這個平均得分作為目標,來訓練卷積神經網絡以實現這個目標的最大化。於是,我們就用左右互搏的方式,訓練出瞭一個走棋網絡。
價值網絡
然而,單純依靠這樣的走棋網絡,AlphaGo雖然已經很強,但還沒有強到能對抗人類圍棋九段高手的地步,怎麼辦呢?DeepMind團隊的科學傢們想出瞭另外一種強化學習手段,這就是價值網絡。什麼是價值呢?我們都知道,人類是有自己的價值觀判斷的。比如,我們每個人都知道尊老愛幼是一種美德,這就是價值觀。對於一個強化學習的程序來說,由於在很多情況下,它缺乏環境給它的反饋,於是人們就給程序設計瞭一種價值函數,在沒有環境反饋信息的時候,程序可以根據這個價值函數來選擇自己的行動,讓價值最大化。但難點是,我們應該怎麼設計這個價值函數呢?答案是,讓機器自己把這個函數學到。
在AlphaGo 中,它同樣是依賴於類似於走棋網絡的方法來學習出一個價值函數的,這個函數能夠評定每一個棋局的可能獲勝的價值有多大。AlphaGo仍然利用瞭一種卷積神經網絡的技術來實現這個價值函數,如下圖所示:
同樣的,這個價值網絡的反饋信息也來源於從任意一個棋局開始的左右互搏。在訓練的階段,AlphaGo從當前棋局開始運用上面已經訓練好的走棋網絡走棋,一直下到結尾而得到輸贏的得分。這麼做三千萬次後計算平均得分z就是價值網絡的學習目標。也就是說價值網絡要根據當前棋局S'得到價值判斷v(S'),以使得v(S')要盡可能地靠近z。
引入瞭價值網絡之後,我們又會面臨新的問題,我們究竟是應用走棋網絡來指導我們下棋,還是依賴於價值網絡呢?在AlphaGo的早期版本中,它是運用價值網絡的評估結果來作為AlphaGo走棋的主要參考的。但由於價值網絡在計算每一個棋局的平均得分的時候,每一次走棋都是根據走棋網絡進行的,所以其實價值網絡已經綜合瞭走棋網絡。
蒙特卡洛樹搜索
然而,即使這樣綜合瞭兩者的意見,AlphaGo還是不能達到九段的水平,因為它不能像圍棋高手一樣進行虛擬走棋。我們人類在下棋的時候,總會從當前的棋局開始,往前看幾步,然後才決定當前這一步的走法。
所以,在實際開始下棋的時候,DeepMind再借用瞭一個大招,這就是蒙特卡洛樹搜索,這種算法可以讓AlphaGo進行虛擬地走棋,從而在一定搜索步驟後,才決定當前應該走到哪裡。我們知道,經典的人工智能的方法就是搜索。我們把每一個棋局看作一個節點,如果通過一步走棋a可以從棋局A走到棋局B,那麼我們就從A建立一條有向連邊到B,這樣通過走棋我們就可以得到一個網絡。然而,我們很快就會發現,不可能在電腦空間中裝下這個網絡。假設每步有10種可能的走法,那麼虛擬地走10步棋就會有10^10種可能棋局,這已經是一個非常大的數字瞭。所以,AlphaGo必須巧妙地對這個空間進行壓縮,從而避免組合爆炸。
蒙特卡洛搜索算法的好處就在於它可以依概率來在眾多的可能性中選擇一個,從而砍掉大量其它的分支樹,快速地展開樹搜索。開始的時候,由於我們對當前棋局瞭解不多,於是我會純隨機地選擇一種走法a。但是經過幾步虛擬走棋之後,我就會積累關於棋局的信息,從而減少不必要的隨機搜索。
在AlphaGo中,它的隨機選擇並不是純粹的隨機,而是利用瞭前面介紹的走棋網絡、價值網絡的先驗信息,以及累積到的下一步棋局的信息等等再隨機走棋的。
具體地,假設現在AlphaGo所在的棋局是S(真實的棋局),於是它開始展開樹搜索,也就是展開虛擬的對局。每一步虛擬對局應該怎麼走是依據走棋網絡進行的,如下圖所示:
這就是一次虛擬走棋(搜索),每一步打開棋局節點都是根據走棋網絡p_{sigma}。在早期版本的AlphaGo中,這個走棋網絡是通過和人學習訓練得到的(參見圖1中的左手第二個網絡),而在現在的升級版中,這個走棋網絡很可能就是前面介紹的通過深度強化學習訓練得到的。
這種虛擬走棋不可能一直走下去,而是在經過瞭T時間步後就會停止。虛擬走棋停止之後,我們就可以對這些虛擬走出來的棋局進行評估。事實上,人類在進行棋局推演的時候,也就是要評估每一種可能走棋究竟是好還是壞。AlphaGo的價值評估過程如下:
首先,對於一個葉節點(也就是虛擬走棋走到的最後一步所對應的棋局)來說,AlphaGo會利用一個快速走棋算法p_{pi}(根據人類的棋譜訓練得到的另一個神經網絡,參見圖1)將整個棋局走完,從而對該節點進行評估。這種評估綜合瞭之前訓練好的價值網絡(v_{theta})和快速虛擬走棋到達終局的結果好壞程度(r)來給出。
其次,對於非葉子節點,AlphaGo會將葉子節點反推回來的價值信息進行綜合來計算該非葉節點的價值信息,如下圖所示:
這裡的Q就表示根據後續的棋局來進行綜合的算法。總而言之,通過層層的計算,我們能夠給每一個虛擬走出來的棋局賦值一個評估值Q,它綜合瞭快速搜索和價值網絡的評估。
最後,AlphaGo將根據台北靜電機租賃這些“思考”的結果,依據估值信息Q來展開真實的走棋,也就是在所有可能的下一步棋局中,選擇Q值最大的一個進行實際落子。至此,AlphaGo終於走出瞭艱難的一步!
AlphaGo展開的蒙特卡洛搜索樹
綜合
整個AlphaGo實際上仍然分成瞭學習和走棋兩個大的階段。在與柯潔對戰之前,AlphaGo通過自我對局的方式完成對走棋網絡和價值網絡的學習。而在真正對戰的階段,AlphaGo將主要展開對蒙特卡洛樹搜索的算法,並綜合搜索和學習的成果完成每一步走棋。
所以,總的來說,AlphaGo是將深度強化學習的技術與蒙特卡洛樹搜索技術巧妙地綜合到瞭一起,從而得到的一種超強的算法。這種將最新的深度學習技術與傳統的基於符號、推理、搜索的AI技術相綜合的方法正是現在人工智能界的一個主要趨勢。
直播推薦
通用人工智能之夢——李熙
2017年5月27日(周五)晚上20:00-23:00
深度強化學習的三種方法——張江
2017年5月30日晚上8:00
集智QQ群|292641157
商務合作|zhangqian@swarma.org
投稿轉載|wangting@swarma.org
◆ ◆ ◆
搜索公眾號:集智俱樂部
加入“沒有圍墻的研究所”
讓蘋果砸得更猛烈些吧!返回搜狐,查看更多
責任編輯:
聲明:本文由入駐搜狐號的作者撰寫,除搜狐官方賬號外,觀點僅代表作者本人,不代表搜狐立場。
閱讀 ()
原標題:柯潔輸瞭,所以來學學AlphaGo背後的人工智能吧 | 重磅
張江 北京師范大學副教授,集智俱樂部、AI學園創始人,騰訊研究院、阿裡研究院、網絡智庫專傢、人工智能研究者與佈道師。
導語
發這篇文章的時候,柯潔與AlphaGo世紀大戰已經結束瞭,可以說是毫無懸念,柯潔最終還是輸掉瞭一局,這也是在大傢意料之中的事情。今天借著這樣一個契機,我寫下瞭這篇文章,重點想和大傢聊一聊AlphaGo背後的人工智能技術。
我們知道,去年三月份戰勝圍棋高手李世乭的AlphaGo實際上是一個多種AI技術、多個深度網絡的混合體。它的總體架構如下圖所示:
其中整個架構分成左右兩部分,左邊是兩個神經網絡,利用人類的走棋來訓練得到。DeepMind獲取瞭韓國網絡圍棋對抗平臺KGS上大量高手走棋的棋譜,並訓練左邊的神經網絡來預測人類下一步的走棋。右側的部分則是不需要借鑒人類下棋的經驗,機器完全通過強化學習,自己跟自己玩從而訓練網絡達到強大的水平。據說,現在的AlphaGo是升級版本的,它已經完全拋棄瞭基於人類專傢下棋經驗的走棋網絡(左邊),而隻剩下瞭AlphaGo左右互靜電油煙機租賃博的強化學習部分。本篇文章就主要講講右半部分,左右互搏的AlphaGo。
走棋網絡
首先,我們可以將AlphaGo看作是一個機器人,棋盤加對手就是它所面臨的環境。AlphaGo需要學習的就是在面對不同環境的時候,它應該如何進行決策,也就是給出下一時刻的走棋。我們把這種從當前棋局決定我應該走到哪裡的對應稱作一個策略(Policy),AlphaGo通過大量的自己跟自己下棋從而得到這樣的一個走棋策略。
具體的方法是,我們首先構造一個深度的卷積神經網絡(稱為走棋網絡),輸入的是棋盤狀態所構成的一張二維圖片;輸出的則是AlphaGo下一步的走法,如下圖所示。
新竹靜電機租賃
我們知道,深度卷積神經網絡非常擅長處理圖像,它不僅可以敏銳地辨別圖像屬於不同的類別,而且還可以提煉出圖像中的多層次信息。例如,當我們把大量的圖片喂給卷積神經網絡的時候,它就可以在低層的網絡提煉圖像中的細節信息(如邊緣、棱角),而在高層則處理圖像中的大尺度信息。之所以在和李世乭的世紀大戰中,AlphaGo展現出瞭某種“大局觀”,就是因為卷積神經網絡可以提煉棋局中的大尺度、高層次信息。
有瞭這樣的網絡架構,我們就要訓練這個網絡瞭。然而,卷積神經網絡的訓練是需要有監督信息的,而我們知道圍棋是一種無監督的博弈,AlphaGo隻有在走完瞭整個棋局才能獲得反饋,怎麼辦呢?答案就在於左右互博!我們可以讓當前的AlphaGo和它自己來進行比賽,走到終點!這樣不就可以獲得反饋信息瞭嗎?
具體地說,我們可以用同一個走棋網絡的兩個副本完成兩個AlphaGo的博弈,然後讓其中的一個AlphaGo進行學習。這樣,每從一個棋局S開始,AlphaGo和它自己的副本完成瞭對局,就會獲得一個輸贏的得分;然後它再從S開始,再下到棋局結束,……,一共進行3千萬次。由於每一次走棋都是有隨機性的,所以每次的得分都會不一樣,有的時候AlphaGo可能贏,有的時候則可能是輸,於是針對一個棋局S,我們就可以計算這三千萬盤棋的平均得分。我們把這個平均得分作為目標,來訓練卷積神經網絡以實現這個目標的最大化。於是,我們就用左右互搏的方式,訓練出瞭一個走棋網絡。
價值網絡
然而,單純依靠這樣的走棋網絡,AlphaGo雖然已經很強,但還沒有強到能對抗人類圍棋九段高手的地步,怎麼辦呢?DeepMind團隊的科學傢們想出瞭另外一種強化學習手段,這就是價值網絡。什麼是價值呢?我們都知道,人類是有自己的價值觀判斷的。比如,我們每個人都知道尊老愛幼是一種美德,這就是價值觀。對於一個強化學習的程序來說,由於在很多情況下,它缺乏環境給它的反饋,於是人們就給程序設計瞭一種價值函數,在沒有環境反饋信息的時候,程序可以根據這個價值函數來選擇自己的行動,讓價值最大化。但難點是,我們應該怎麼設計這個價值函數呢?答案是,讓機器自己把這個函數學到。
在AlphaGo 中,它同樣是依賴於類似於走棋網絡的方法來學習出一個價值函數的,這個函數能夠評定每一個棋局的可能獲勝的價值有多大。AlphaGo仍然利用瞭一種卷積神經網絡的技術來實現這個價值函數,如下圖所示:
同樣的,這個價值網絡的反饋信息也來源於從任意一個棋局開始的左右互搏。在訓練的階段,AlphaGo從當前棋局開始運用上面已經訓練好的走棋網絡走棋,一直下到結尾而得到輸贏的得分。這麼做三千萬次後計算平均得分z就是價值網絡的學習目標。也就是說價值網絡要根據當前棋局S'得到價值判斷v(S'),以使得v(S')要盡可能地靠近z。
引入瞭價值網絡之後,我們又會面臨新的問題,我們究竟是應用走棋網絡來指導我們下棋,還是依賴於價值網絡呢?在AlphaGo的早期版本中,它是運用價值網絡的評估結果來作為AlphaGo走棋的主要參考的。但由於價值網絡在計算每一個棋局的平均得分的時候,每一次走棋都是根據走棋網絡進行的,所以其實價值網絡已經綜合瞭走棋網絡。
蒙特卡洛樹搜索
然而,即使這樣綜合瞭兩者的意見,AlphaGo還是不能達到九段的水平,因為它不能像圍棋高手一樣進行虛擬走棋。我們人類在下棋的時候,總會從當前的棋局開始,往前看幾步,然後才決定當前這一步的走法。
所以,在實際開始下棋的時候,DeepMind再借用瞭一個大招,這就是蒙特卡洛樹搜索,這種算法可以讓AlphaGo進行虛擬地走棋,從而在一定搜索步驟後,才決定當前應該走到哪裡。我們知道,經典的人工智能的方法就是搜索。我們把每一個棋局看作一個節點,如果通過一步走棋a可以從棋局A走到棋局B,那麼我們就從A建立一條有向連邊到B,這樣通過走棋我們就可以得到一個網絡。然而,我們很快就會發現,不可能在電腦空間中裝下這個網絡。假設每步有10種可能的走法,那麼虛擬地走10步棋就會有10^10種可能棋局,這已經是一個非常大的數字瞭。所以,AlphaGo必須巧妙地對這個空間進行壓縮,從而避免組合爆炸。
蒙特卡洛搜索算法的好處就在於它可以依概率來在眾多的可能性中選擇一個,從而砍掉大量其它的分支樹,快速地展開樹搜索。開始的時候,由於我們對當前棋局瞭解不多,於是我會純隨機地選擇一種走法a。但是經過幾步虛擬走棋之後,我就會積累關於棋局的信息,從而減少不必要的隨機搜索。
在AlphaGo中,它的隨機選擇並不是純粹的隨機,而是利用瞭前面介紹的走棋網絡、價值網絡的先驗信息,以及累積到的下一步棋局的信息等等再隨機走棋的。
具體地,假設現在AlphaGo所在的棋局是S(真實的棋局),於是它開始展開樹搜索,也就是展開虛擬的對局。每一步虛擬對局應該怎麼走是依據走棋網絡進行的,如下圖所示:
這就是一次虛擬走棋(搜索),每一步打開棋局節點都是根據走棋網絡p_{sigma}。在早期版本的AlphaGo中,這個走棋網絡是通過和人學習訓練得到的(參見圖1中的左手第二個網絡),而在現在的升級版中,這個走棋網絡很可能就是前面介紹的通過深度強化學習訓練得到的。
這種虛擬走棋不可能一直走下去,而是在經過瞭T時間步後就會停止。虛擬走棋停止之後,我們就可以對這些虛擬走出來的棋局進行評估。事實上,人類在進行棋局推演的時候,也就是要評估每一種可能走棋究竟是好還是壞。AlphaGo的價值評估過程如下:
首先,對於一個葉節點(也就是虛擬走棋走到的最後一步所對應的棋局)來說,AlphaGo會利用一個快速走棋算法p_{pi}(根據人類的棋譜訓練得到的另一個神經網絡,參見圖1)將整個棋局走完,從而對該節點進行評估。這種評估綜合瞭之前訓練好的價值網絡(v_{theta})和快速虛擬走棋到達終局的結果好壞程度(r)來給出。
其次,對於非葉子節點,AlphaGo會將葉子節點反推回來的價值信息進行綜合來計算該非葉節點的價值信息,如下圖所示:
這裡的Q就表示根據後續的棋局來進行綜合的算法。總而言之,通過層層的計算,我們能夠給每一個虛擬走出來的棋局賦值一個評估值Q,它綜合瞭快速搜索和價值網絡的評估。
最後,AlphaGo將根據台北靜電機租賃這些“思考”的結果,依據估值信息Q來展開真實的走棋,也就是在所有可能的下一步棋局中,選擇Q值最大的一個進行實際落子。至此,AlphaGo終於走出瞭艱難的一步!
AlphaGo展開的蒙特卡洛搜索樹
綜合
整個AlphaGo實際上仍然分成瞭學習和走棋兩個大的階段。在與柯潔對戰之前,AlphaGo通過自我對局的方式完成對走棋網絡和價值網絡的學習。而在真正對戰的階段,AlphaGo將主要展開對蒙特卡洛樹搜索的算法,並綜合搜索和學習的成果完成每一步走棋。
所以,總的來說,AlphaGo是將深度強化學習的技術與蒙特卡洛樹搜索技術巧妙地綜合到瞭一起,從而得到的一種超強的算法。這種將最新的深度學習技術與傳統的基於符號、推理、搜索的AI技術相綜合的方法正是現在人工智能界的一個主要趨勢。
直播推薦
通用人工智能之夢——李熙
2017年5月27日(周五)晚上20:00-23:00
深度強化學習的三種方法——張江
2017年5月30日晚上8:00
集智QQ群|292641157
商務合作|zhangqian@swarma.org
投稿轉載|wangting@swarma.org
◆ ◆ ◆
搜索公眾號:集智俱樂部
加入“沒有圍墻的研究所”
讓蘋果砸得更猛烈些吧!返回搜狐,查看更多
責任編輯:
聲明:本文由入駐搜狐號的作者撰寫,除搜狐官方賬號外,觀點僅代表作者本人,不代表搜狐立場。
閱讀 ()
AUGI SPORTS|重機車靴|重機車靴推薦|重機專用車靴|重機防摔鞋|重機防摔鞋推薦|重機防摔鞋
AUGI SPORTS|augisports|racing boots|urban boots|motorcycle boots
文章標籤
全站熱搜
留言列表