computer go… is not only for go暗棋(dark chess) 7. 象棋,圍棋(chinese chess, go) 40...

25
1 Computer Go… is not only for Go 國立東華大學 資訊工程系 副教授 顏士淨 2 棋類複雜度比較 Games 複雜度 與最強程式比較 跳棋 10 32 Solved 黑白棋 10 58 Logistello>H 九路圍棋 10 85 MogoTW<=H 西洋棋 10 123 Deep Blue>=H 象棋 10 160 ELP<=H 圍棋 10 400 MogoTW<H

Upload: others

Post on 31-Aug-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

1

Computer Go…is not only for Go

國立東華大學

資訊工程系 副教授

顏士淨

2

棋類複雜度比較

Games 複雜度 與最強程式比較

跳棋 1032 Solved

黑白棋 1058 Logistello>H

九路圍棋 1085 MogoTW<=H

西洋棋 10123 Deep Blue>=H

象棋 10160 ELP<=H

圍棋 10400 MogoTW<H

Page 2: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

3

圍棋

4

棋子與棋盤

Page 3: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

5

棋力分級

弱 強

5 4 3 2 1 Kyu

1 2 3 4 5 6

1 9 Dan

912

業餘初學者 職業棋士

6

百萬美金的懸賞

應昌期先生曾提供一百萬美金給能夠寫出擊敗職業棋士的圍棋程式的人

Page 4: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

7

Rank of Computer Go

0

2

4

6

8

10

12

14

16

18

20

85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07 08 09

8

電腦棋類的設計方式

西洋棋,象棋game tree, α-β cut off成功原因

合法步不多(30~40)有一個簡單而合理的審局函數

此方式不適用於圍棋合法步太多(>200)

目前沒有好的審局函數

Page 5: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

9

圍棋與西洋棋之比較

圍棋 西洋棋

勝負目標 地多為勝 吃掉對方國王

棋子死活 有程度上差異 非生即死

分支度 約200 約40

10

電腦圍棋設計方法

電腦圍棋的傳統設計法

模擬人類思維;經驗法則

JIMMY程式(since 1994)

2007年UCT出現,奪得奧林匹亞19路圍棋的金牌

UCT:運用蒙地卡羅法為基礎的樹狀搜尋演算法

Page 6: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

Monte Carlo Application

11

37個

63個

Left = 0.37 * the measure of areaRight = 0.63 * the measure of area

12

UCT樹狀搜尋演算法

UCT:一個樹狀搜尋演算法

特性:往較有可能為好點的分支,展開較深,最後會長成一棵不平衡樹

如何決定一個點是否為好點?蒙地卡羅法

統計許多模擬棋局之結果,進行局面之判斷

Page 7: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

13

UCT運用在圍棋

14

Scheme of a Monte-Carlo Tree Search(2007, Herik)

教育部「大專校院研究人才延攬方案」

Page 8: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

15

UCT-不平衡的樹

Page 9: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

17

UCT搜尋方法

進行多次搜尋,每次均由上而下拓展UCT Tree每次如何決定往哪個分支深入拓展?UCBUCT : UCB for Tree search UCB : Upper Confidence BoundUCB原本用來解決吃角子老虎問題

18

吃角子老虎問題

開發:依照目前經驗決定下一次要選擇的機器

探險:嘗試其他機器

Page 10: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

19

Scheme of a Monte-Carlo Tree Search(2007, Herik)

教育部「大專校院研究人才延攬方案」

20

UCT搜尋方法

最佳路徑:每次搜尋,均藉由UCB公式找一條由根節點到葉節點的最佳路徑

更新UCT樹:找到最佳路徑後,對葉節點代表之盤面執行模擬棋局,所得的勝負結果更新路徑上所有節點

Page 11: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

21

UCT例子

22

搜尋樹的裁剪方法

多算勝,少算不勝

分支度的多寡直接影響搜尋樹的深度

如何減少無用子點為一改良重點

三種裁剪法:JIMMY裁剪、一線裁剪、棋塊裁剪

Page 12: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

23

JIMMY裁剪

JIMMY對目前盤面作判斷,給定著手分數

UCT Tree創子點時,排除沒分數之點

24

JIMMY裁剪效果

未裁剪:第一層子點數量為40~80個裁剪後第一層子點之數量控制在1~15個左右

大幅排除無用之點,並加深搜尋深度

Page 13: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

25

JIMMY裁剪實驗結果

結果分析

JIMMY裁剪可行

26

模擬棋局方法

工作:給定盤面,將此局下到終局,計算勝負

意義:作為UCT樹的節點的收益值之來源

影響UCT判斷、選擇最佳路徑之正確性

重點在於選擇下一步的函式

目標:1.快速 2.準確

Page 14: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

27

最簡單的方法:隨機落子

優點:簡單、速度快

缺點:準確性較低,需統計較多棋局

若棋步越有意義,則越準確,但花較多時間

目標:讓電腦所選的著手更具有圍棋上的意義

28

經驗法則與棋形比對

選擇下一步:根據此盤面下合法著手

的著手機率決定

著手機率:根據經驗法則判斷與棋形比對所的的分數決定,分數越高,機率越高

Page 15: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

29

著手機率分布範例

30

經驗法則

利用已有的知識,快速判斷著點價值

目前使用的經驗法則:「長」與「提」

Page 16: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

31

長與提子的例子

32

棋形比對

棋形:棋子在棋盤上的分布狀況

可幫助人類棋手在對奕時快速排除無用著手

棋形表達:要下之點置中,周圍是棋子分佈狀態

Page 17: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

33

棋形比對做法

棋形資料庫

來源:約四萬個職業棋譜

擷取每一手所產生的棋形,統計出現次數

依照出現次數排序

34

實驗結果

棋形比對

取棋形資料庫中排名較前的棋形以比對

比對前一手周圍的八個點

棋力增益

Page 18: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

35

Computer Go Future work

Multi-core ParallelizationMessage passing ParallelizationBias in the tree (patterns, rules)RAVE valuesOpening book by meta-UCT...

36

Beyond Go

Why Computer Go, Is it worth?No!It’s only a game.

Page 19: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

37

Beyond Go

Why Computer Go, Is it worth?

Yes! it’s for many other applications: all discrete-time control problems.

38

Beyond Go

But perhaps we need more experiments beyond Go (already notable successes!) and extensions to of UCT to other frameworks.

Page 20: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

39

線上遊戲排行榜

1. 麻將(MahJong)2. 牌七(Fantan)3. 大老二(Big Two)4. 十三張(Card13)5. 梭哈(Showhand)6. 暗棋(Dark Chess)7. 象棋,圍棋(Chinese chess, Go)

40

Games是否使用UCT?

行棋方式?落子 vs 移動

將軍棋步?

需檢查迫著

複雜度?

下棋資訊是否透明?

大部分商業遊戲都適用

Page 21: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

High-dimensional discrete time control

A main application: the management of many energy stocks in front of randomness

At each time step we see random outcomesWe have to take decisionsAfter H time steps, we observe a cost

41

42

Page 22: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

pattern的特徵值列表

特徵 意義 區間

股價漲跌趨勢股價漲跌幅度上影線下影線交易量漲跌趨勢交易量漲跌幅度開盤價漲跌趨勢開盤價漲跌幅度MAC與收盤價關係MAC趨勢

平/漲/跌0%~7%0%~7%0%~7%漲/跌漲/跌0%~7%>/=/<平/漲/跌

0~20~60~60~60~10~30~10~30~20~2

43

模擬時,欲獲取次日股價與pattern之過程

44

Page 23: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

MO-PSO

Particle Swarm Optimization(Kennedy,Eberhart,1995)多目標最佳化演算法

根據各股票模擬結果,找多組投資策略組合,希望這些投資組合在N日後賣出有較大的獲利或是在N日內有較小的風險

以此取代UCT搜尋部分

45

46

Introduction-PSO

The green points are particles and we want to find the target.

Every particle have there’s own local best we called pb , and the local best means the best solution it found from initial to this generation.

And the best of all pb we called gb, it means the global best solution.

PSO method use the velocity V, pb, and gb to move the particle, and we wish the particle according the pb and gb will be better.

Page 24: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

使用不同的feature對模擬結果帶來的影響

K-Line VO MAC 平均誤差比

相關係數

O X X 9.59% -0.11O O X 8.44% 0.45O X O 7.73% 0.40O O O 7.59% 0.47

47

鴻海(0.03535 0.910207 )

48

Page 25: Computer Go… is not only for Go暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go) 40 Games是否使用UCT? 行棋方式? 落子vs 移動 將軍棋步? 需檢查迫著 複雜度?

Portfolio Eg.

49

THANK YOU!!

50