閑談 AlphaGo Zero:自我學習之增強學習
逍遙公子專欄
上期回顧及思考
在AlphaGo Lee的演算法中,人類的知識引導它找到了局部最優解,這並不能說人類的知識在其中起了負作用。關鍵得看優化演算法是否足夠強大,是否能跳出局部最優而找到全局最優。(如果演算法夠好,人類的知識可能會起到更好的助益。AlphaGo Master在某種程度上也證明了這點。)
AlphaGo的成員發展,到目前,經歷了四代:
從人工智慧演算法的角度來看,
這裡要注意的是:在人工智慧的演算法上,AlphaGo Master並沒有突破性的變化。
Alpha Zero分別與 AlphaGo Lee和Alpha Master 的對決結果,是否真地說明:人類的棋譜知識沒什麼用?
增強學習是什麼?
阿法元的成功帶火了一個名詞:增強學習(Reinforcement Learning,也稱為強化學習)。
實際上,從AlphaGo Lee就開始採用增強學習。只是它先學完人類的棋局,再進行增強學習(通過自我對弈的方式)。
從大面上講,增強學習是機器學習的一個分支。其中一種分法如下:
因此:增強學習是一種能教會機器理解事物、並解決實際問題的方法。
增強學習的目的
增強學習的目的:在一個環境(environment)中,得到適用於代理(agent)的最佳策略(policy)。
下圖是其典型構造。
策略向環境產生一個行動(action),從而改變此環境的狀態(state);同時環境也會向代理反饋一個獎勵(reward):如果獎勵是正向的,將強化原有的策略;反之,則弱化原有的策略。無論哪種情況,都會促使代理進行相應的策略調整,從而獲得最大化的獎勵。
問
聽起來,有點難理解?
答
下面,我們以下圍棋為例,解釋這個問題,你就好理解了。
在下圍棋這個應用上,「代理」是:棋的一方(例如:AlphaGo);「策略」是:你走棋的思路;「行動」是:你落子的招式;「環境」是:圍棋和對手;「狀態」是:棋局的形勢;而「獎勵」就是:最終的輸贏(也可以是棋局的優劣)。
增強學習是一種帶有反饋行為的學習方式:「代理」與「環境」相互交互,通過「行動」,獲取反饋信息,然後不斷地自我調整、學習,最終找到最優策略。這一點,它與傳統的有監督學習和無監督學習是不同的。
我的體會
1
最優策略是一系列行動的序列
增強學習得到的最優策略是一系列行動的序列,並不是單一的一個行動。這就相當於要找到一條最優的曲線。如果用傳統的解優化的方法,的確是非常困難的。
2
"環境"存在不確定性
環境的存在帶來了一定的不確定性。就好比下棋時,你不確定對手下一步的招式,這就增加了問題的複雜度。
怎樣求解,得到最優策略?
理論上,求解出最優策略是非常困難的。一般會加上一個很強的假設並符合馬爾科夫鏈的特性。即:下一個行動的好壞只與當前的狀態有關,而與之前的行動和狀態都無關。
這是個很強的假設,大大簡化了問題。(好在,實際中,符合這種假設的應用還不少。)
針對它,有個專業名詞:MDP(Markov Decision Process,馬爾科夫決策過程)。
說到這裡,不禁想起十年前,當時在做博後。深夜裡,和實驗室的同學們一起研究 MDP 論文的情景。
當時是怎麼也不會想到:十年後,MDP 換了個叫法 - 「增強學習」,竟然這樣火了起來。
要解一個增強學習的問題,關鍵在於要得到兩個函數:一個是價值函數,一個是Q函數。
價值函數(V函數):評估當前狀態的好壞
它是當前狀態的函數 V(s)。基於當前的狀態,在考慮所有可能的行動及導致的新狀態的基礎上,得到最終獎勵的平均值。
Q函數:計算價值
它考慮的是:採取行動a之後的價值。
它是當前狀態V(s)和行動的函數 Q(s,a)。即:在當前狀態s下,當採取行動a後,得到的最終獎勵的平均值。
對照上述定義不難看出:Q函數是一個策略函數,給出了在當前狀態下,最佳的行動是什麼。
只要把在當前狀態下所有可能的行動的Q函數值都計算一下,選擇最大的值,其對應的行動就是最佳的(因為它讓最終的獎勵最大化)。
但Q函數的計算是離不開V函數的。
根據V函數的定義,把在當前狀態下,採取某一行動後可能導致的行動狀態的價值分別計算,並取其最大值,就能得到Q函數的值。
在解決實際問題中,要得到這兩個函數是非常困難的。
學術界一般會進行大量假設,限制問題範圍,以求能得到一個閉環的公式描述。
在AlphaGo中,
怎麼得到這兩個函數的值?
AlphaGo採用深度神經網路的方法得到這兩個函數的值,以指導最佳的落子策略。
既然是深度網路的方式,就必須有有標記的樣本對它進行訓練(可參看另一篇阿法元的文章《閑談AlphaGo Zero (阿法元)》)。
AlphaGo 的演算法採用的是:隨機走子和自我對弈的方式。即:根據最終的勝負(AlphaGo Lee的方式)或評估的棋局優劣(AlphaGo Master 和AlphaGo Zero的方式)產生大量的有標註的樣本數據來訓練這個深度神經網路。這個方式被稱為蒙特卡洛搜索樹(Monte-Carlo Tree Search, MCTS)。
(當然,這裡說的是其基本思路,它背後的理論要複雜很多。具體細節大家可參看相關的專業解讀。)
本文小結
寫到這,有關AlphaGo的文章,就告一段落了。各路大俠:若有興趣,歡迎和我進一步討論,互相學習。
這篇文章講的理論有點多,我自己也是花了很多時間來閱讀理解,並盡量用通俗易懂的文字把它描述出來。
拋開其中深奧的理論,我最深的一點感觸是:阿法元所用的演算法,無論是增強學習還是深度神經網路,亦或是蒙特卡洛搜索樹,都是在人工智慧學術界已經研究得比較久的,並且是較成熟的方法。所以不僅是阿法元的技術,整個AlphaGo系列,都只是一種現有方法的整合的工程應用。
當然,這種工程應用的結果讓人不敢小覷:在現有理論的基礎上,工程應用帶來的可創新空間還是非常非常地大;給人們的生活帶來的驚喜也將是越來越無法估量的,就好像:喬布斯的蘋果、馬斯克的特斯拉。
我們下期再見!
小編 二當家
部分圖片 網路
TAG:愛屋及悟 |