當前位置:
首頁 > 最新 > 閑談 AlphaGo Zero:自我學習之增強學習

閑談 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:愛屋及悟 |