AlphaGo.png
引言
AlphaGo是google最近的一個人工智能項目,以下是百度百科的介紹:
阿爾法圍棋(AlphaGo)是一款圍棋人工智能程序,由位于英國倫敦的谷歌(Google)旗下DeepMind公司的戴維·西爾弗、艾佳·黃和杰米斯·哈薩比斯與他們的團隊開發,這個程序利用“價值網絡”去計算局面,用“策略網絡”去選擇下子。
如何學習新技能
下面我詳細介紹一下AlphaGo是怎樣從0開始學習下子的。
- 研究者教會系統看盤面信息,其中包括黑子信息,白子信息,空著信息,圍棋規則等。
- 通過學習高手對弈棋譜,學習了3000萬高手落子,讓系統預測該如何落子,預測準確率達到57% 。
- 通過與自己對弈2000萬局進一步提高自己的能力,完成這一步的系統與第二步中的系統對弈達到80%的勝率。
同樣學習如何看整個盤面局勢也用類似的方法。
這里我們來分解一下整個學習的過程:
- 入門:第一步對應的是一個領域的基本知識,掌握以后就入門了。
- 模仿:一直和菜鳥下棋是不會有進步的,去模仿該領域高手的作品,此時就進階了。
- 領悟:通過不停練習來提升自己的能力,逐漸形成自己的風格,又一個高手誕生了。
通過這次AlphaGo的勝利,我覺得上面的學習方法是對學習的很好的一種抽象,整個過程可以讓一個人更好的學習掌握一個領域知識,下面我拿學習編程來舉個例子:
在入門階段,選擇介紹一門編程語言,學習語法以及基礎庫的使用,然后去看一些基礎的教程。
在模仿階段,這里一定要接觸高手的作品(去找該語言github上star比較多的項目),思考他們如何去構建一個項目,如何實現各個功能模塊,等到學習幾個項目之后,能夠基本理解高手為什么這么實現的。
在領悟階段,用之前學到的知識,自己嘗試去做幾個項目,不停回顧自己的項目,通過重構現有的代碼來提升自己的編程能力:架構,以及功能實現。
這時候你的編程能力也應該是在中上層的水平了,就像AlphaGo一樣,進入了職業選手的大門。
后記
人類在做這類學習的過程相比機器還是有優勢的,一個是人類強大的抽象能力,還有人類的思考的能力,這大大減少了需要學習的量,可以看到機器在學習圍棋的過程中用的數據是非常大的,而人類要達到這個水平需要的學習量大大小于機器的量。
這里只進階到了高手,和頂尖水平還是有距離的,期待AlphaGo三月份和韓國圍棋高手的對局,同樣我們也要思考頂尖高手和普通高手的差距到底在哪里,如何去跨越。