teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]

【重要】teacup. byGMOのサービス終了について
 <思いやりのあるコミュニティ宣言>
 teacup.掲示板は、皆様の権利を守りながら、思いやり、温かみのあるコミュニティづくりを応援します。
 いつもご協力いただきありがとうございます。

 投稿者
 メール
  題名
  内容 入力補助画像・ファイル<IMG>タグが利用可能です。(詳細)
    
 URL
[ ケータイで使う ] [ BBSティッカー ] [ 書込み通知 ]


Re: 着手のランダム性にはPolicyを使うより、1手指した後のValueの値を使った方がいい?

 投稿者:山下  投稿日:2022年 2月18日(金)21時05分50秒
編集済
  1手進めた最善のvalueとの差をdiffとすると、

1/exp(diff*70)

がなんとなくいい感じ?のPolicyぽいので、これを試してみようかと思ってます。
将棋は序盤は30手から60手ぐらいなので、そこまで負担ではないのですが
囲碁で真面目にやろうとすると厳しいですね・・・。
ただ、Policyの上位20手か10手に限定、とかでもそこそこ正確な値は出してくれそうな気がします。
一度、上のvalueを元にしたPolicyを使って1手800playoutぐらいの勝率調べてみようと思います。

平手初期局面
     value policy  valueの最善との差   1/exp(diff*70),正規化
26歩:55.9,35.22 diff= 0.000000,        1.000000 -> 0.317103
78金:55.1,31.04 diff= 0.007771,        0.580456 -> 0.184064
16歩:54.9,12.60 diff= 0.009914,        0.499568 -> 0.158414
38銀:53.1, 8.87 diff= 0.028020,        0.140658 -> 0.044603
96歩:53.4, 5.99 diff= 0.024828,        0.175879 -> 0.055772
76歩:54.5, 0.64 diff= 0.013584,        0.386397 -> 0.122528
48銀:52.6, 0.60 diff= 0.032630,        0.101867 -> 0.032302
68王:52.8, 0.57 diff= 0.031325,        0.111611 -> 0.035392
66歩:51.7, 0.47 diff= 0.041830,        0.053500 -> 0.016965
58金:52.2, 0.45 diff= 0.037284,        0.073546 -> 0.023322
36歩:48.9, 0.26 diff= 0.070136,        0.007376 -> 0.002339
58王:47.1, 0.24 diff= 0.088093,        0.002099 -> 0.000665
68銀:48.3, 0.24 diff= 0.075506,        0.005065 -> 0.001606
48金:47.5, 0.24 diff= 0.084410,        0.002716 -> 0.000861
78銀:47.8, 0.23 diff= 0.081047,        0.003437 -> 0.001090
56歩:46.9, 0.22 diff= 0.089793,        0.001863 -> 0.000591
68金:47.2, 0.21 diff= 0.086795,        0.002298 -> 0.000729
48王:45.9, 0.21 diff= 0.099775,        0.000926 -> 0.000294
46歩:47.9, 0.20 diff= 0.080393,        0.003598 -> 0.001141
38金:45.3, 0.20 diff= 0.105577,        0.000617 -> 0.000196
78飛:39.9, 0.14 diff= 0.159790,        0.000014 -> 0.000004
58飛:39.6, 0.14 diff= 0.163084,        0.000011 -> 0.000003
38飛:39.3, 0.14 diff= 0.166028,        0.000009 -> 0.000003
68飛:41.2, 0.13 diff= 0.146754,        0.000035 -> 0.000011
98香:37.3, 0.13 diff= 0.185951,        0.000002 -> 0.000001
48飛:35.8, 0.11 diff= 0.200548,        0.000001 -> 0.000000
58金:38.7, 0.10 diff= 0.172123,        0.000006 -> 0.000002
18飛:36.6, 0.10 diff= 0.192722,        0.000001 -> 0.000000
18香:36.1, 0.09 diff= 0.197524,        0.000001 -> 0.000000
86歩:31.1, 0.07 diff= 0.248072,        0.000000 -> 0.000000
 
 

Re: 着手のランダム性にはPolicyを使うより、1手指した後のValueの値を使った方がいい?

 投稿者:zakki  投稿日:2022年 2月18日(金)14時46分5秒
  次のバリュー全部だして使うのは応用効いて面白そうで考えてるんですが、囲碁だと361回評価するのは辛いですね。  

着手のランダム性にはPolicyを使うより、1手指した後のValueの値を使った方がいい?

 投稿者:山下  投稿日:2022年 2月10日(木)18時45分1秒
編集済
  現在のAobaZeroは初手▲76歩の棋譜をほとんど生成しなくなったので、
その局面でのPolicyの値と、実際に1手指した後の(瞬間的な)Valueの値を比較してみました。
初期局面で▲26歩のPolicyは35.22%で、Value(勝率)は55.9%、
▲76歩はPolicyは0.64%で、Value(勝率)は54.5%
1%程度しか勝率に差がないのにPolicyの確率はかなり小さくなっています。

先手が初手▲26歩と指した場合の△34歩もPolicyが0.64%、Valueが42.5%、とこちらも
△84歩に対して2%勝率が落ちますが、かなりPolicyの値が小さいです。

わずかの勝率の差でPolicyは極端な値が付くことが多い感じです。
強化学習でランダムに局面を生成する場合はPolicyの値ではなく、1手指した後のValueを
使った方が偏りすぎない棋譜を作れる気がします。
1手指してValueを調べるので時間がかかるのが難点ですが・・・。


AobaZero、w3855での結果(Valueは手番から見た勝率です)

平手初期局面       ▲26歩             ▲76歩△34歩▲22角成
    Value,Policy        V(%) P(%)          V(%) P(%)
26歩:55.9,35.22    84歩:44.4,47.19    22銀:51.3,98.45
78金:55.1,31.04    32金:44.2,36.16    22飛:35.6, 0.44
16歩:54.9,12.60    72銀:43.0, 6.44    33桂: 0.1, 0.05
38銀:53.1, 8.87    94歩:41.8, 2.81    32銀: 0.4, 0.05
96歩:53.4, 5.99    14歩:42.2, 2.36    14歩: 0.2, 0.05
76歩:54.5, 0.64    34歩:42.5, 0.64    35歩: 0.1, 0.05
48銀:52.6, 0.60    62銀:41.2, 0.57    94歩: 0.2, 0.04
68王:52.8, 0.57    52金:40.1, 0.37    42金: 0.2, 0.04
66歩:51.7, 0.47    42王:37.1, 0.25    42銀: 0.3, 0.04
58金:52.2, 0.45    62金:36.5, 0.24    72飛: 0.1, 0.04
36歩:48.9, 0.26    42銀:37.5, 0.23    92飛: 0.1, 0.04
58王:47.1, 0.24    52王:34.4, 0.21    62金: 0.1, 0.04
68銀:48.3, 0.24    74歩:34.7, 0.21    12香: 0.3, 0.04
48金:47.5, 0.24    72金:33.9, 0.19    32金: 0.2, 0.03
78銀:47.8, 0.23    64歩:33.4, 0.18    24歩: 0.2, 0.03
56歩:46.9, 0.22    62王:32.0, 0.17    52金: 0.1, 0.03
68金:47.2, 0.21    42金:33.5, 0.17    74歩: 0.2, 0.03
48王:45.9, 0.21    32銀:32.6, 0.16    72金: 0.0, 0.03
46歩:47.9, 0.20    54歩:30.8, 0.15    84歩: 0.2, 0.03
38金:45.3, 0.20    44歩:30.2, 0.15    54歩: 0.1, 0.02
78飛:39.9, 0.14    72飛:28.4, 0.13    92香: 0.0, 0.02
58飛:39.6, 0.14    52飛:25.6, 0.12    72銀: 0.1, 0.02
38飛:39.3, 0.14    92香:22.9, 0.11    42飛: 0.1, 0.02
68飛:41.2, 0.13    42飛:24.8, 0.11    44歩: 0.1, 0.02
98香:37.3, 0.13    92飛:24.7, 0.11    64歩: 0.1, 0.02
48飛:35.8, 0.11    62飛:23.7, 0.11    62王: 0.1, 0.02
58金:38.7, 0.10    12香:22.7, 0.10    52王: 0.2, 0.02
18飛:36.6, 0.10    52金:20.0, 0.09    62銀: 0.1, 0.02
18香:36.1, 0.09    32飛:10.4, 0.06    62飛: 0.1, 0.02
86歩:31.1, 0.07    24歩: 4.9, 0.05    42王: 0.2, 0.02
                                      52飛: 0.1, 0.02
                                      52金: 0.1, 0.02
                                      32飛: 0.2, 0.02
 

AlphaZeroの講演動画が公開

 投稿者:山下  投稿日:2022年 2月 7日(月)23時12分0秒
編集済
  昨年11月にあったACGのDavid Silverの講演動画が公開されています。
AlphaZeroの論文に書いてない細かいテクニック、とかを期待したのですが
主にAlphaZeroの学習アルゴリズムが何を元に出来てるのか、の解説でした。

Advances in Computer Games 2021 - Keynote 3, David Silver AlphaZero Fundamentals
https://www.youtube.com/watch?v=434cPpJKATY
字幕ONにして隣の設定ボタンで日本語に自動翻訳できます。

Advances in Computer Games 2021
https://icga.org/?page_id=3328

紹介されていた本:3冊
GAME CHANGER, MATTHEW SADLER & NATASHA REGAN
https://www.amazon.co.jp/dp/B07N6G7X5V/

AlphaGo to Zero, The Complete Games, Vol.1 AlphaGo vs Lee Sedol, Michael Redmond 9p
https://www.usgo.org/news/2020/03/redmond-and-garlock-release-alphago-to-zero/

RETHINKING OPENING STRATEGY, AlphaGo's Impact on Pro Play by Yuan Zhou
https://www.amazon.co.jp/dp/1981642005

スライドの内容
Backup
  Bellman eval backup
  Improvent backup

Sample Backup Operator
  TD(0)
  n-step TD
  Monte-Carlo

Search Control
  Recursion: 深さ優先探索
  Rollout: eg Monte-Carlo
  Recursive Rollout: eg nested Monte-Carlo

Expectimax Search (1966)
Monte-Calro Search(1996)
Monte-Carlo Tree Search (2006)
Nested Temporal Diffrence Search(2008)
Transience
AlphaZero
  2-level nested Monte-Calro tree search with transient approximation
  Level 1: Search Tree    : l-step TD :PUCT
  Level 2: Neural network : m-step TD :

AlphaZero: Extension
  MuZero (2019)
  Gumbel AlphaZero (2021)
  Muesli (2021)
  Sampled AlphaZero/MuZero (2021)
  Mulit-Level AlphaZero/MuZero

AlphaZero: Applications
  MuZeroの応用で動画codecを学習し50%サイズが減った
 

UEC杯の申し込みも今日まで

 投稿者:山下  投稿日:2022年 1月31日(月)13時28分47秒
  3月5日、6日に開催されるUEC杯の申し込みも今日(1月31日)までです。
http://entcog.c.ooco.jp/entcog/new_uec/
KataGoやLeelaZeroのソースに独自の改良を加えてソフトの参加も可能です。

オンラインか、もしくは現地での参加も可能なハイブリッドになるかはまだ未定です。
参加費は無料です。お気軽にご参加いただければ、と思います。
 

選手権の申し込みは今日まで

 投稿者:山下  投稿日:2022年 1月31日(月)13時28分10秒
  5月3,4,5日に行われる選手権の申し込みは今日(1月31日)までです。

昨年のようにオンラインか、もしくは現地での参加も可能なハイブリッドになるかは
まだ未定です。
http://www2.computer-shogi.org/
 

AobaZeroの初期局面での初手のPolicyの変遷。▲76歩は衰退

 投稿者:山下  投稿日:2022年 1月18日(火)17時33分2秒
編集済
  AobaZeroの初手のPolicyの変遷を調べてみました。
初手▲26歩は最初(500万棋譜)から0.66と高いです。ただ徐々に下がっています。
▲76歩は1000万棋譜では0.31と高かったのですが、その後衰退、5000万棋譜では0.007まで下がってます。
徐々に上がってきたのが▲78金。ただこれは10手後くらいには▲26歩と同じ形になるので
(▲26歩△84歩▲25歩△85歩▲78金△32金・・・・)
手順前後程度の意味しかないかもしれません。

▲16歩や▲38銀がじわっと上がってきています。
▲26歩、▲78金がずっと主流なので相掛かりに似た戦型だらけになっています。
個人的には▲76歩から振飛車の変化をもっと選んで欲しいのですが・・・。
特に初手▲78金には後手は振飛車でとがめて欲しいですが振ってきても銀冠に組んで十分、と思っています。
ちなみに安定してほぼ最下位なのは▲86歩(0.0008)です。
 

AobaZeroでの振飛車の採用率と勝率

 投稿者:山下  投稿日:2022年 1月13日(木)22時04分38秒
編集済
  学習で出現する振飛車の局面数と勝率を調べてみました。
20手目までで、王が28にいて飛車が58(中飛車の場合)にいる棋譜の数です。
直近の431万棋譜の統計です。

まず出現割合が少ないです。0.26%、370局に1局程度です。
振飛車の採用率は後手の方が多いです。
これは一時期、後手四間飛車が最善だった名残でしょうか?
向かい飛車は先手、後手、ともに少なく、後手は四間飛車が一番多いです。
勝率では先手の中飛車が0.44と一番勝率が高いです。
ただ全体の先手勝率は0.55程度なので、先手、後手ともに振飛車は選択されにくいです。


431万棋譜(4600万棋譜から5031万棋譜)での振飛車の出現数

         勝ち 局数  勝率
先手 向かい飛車  164  406  0.404
先手 三間飛車    553 1299  0.426
先手 四間飛車    439 1136  0.386
先手 中飛車      743 1687  0.440
--------------------------------
先手振飛車合計  1899 4528  0.419

後手 向かい飛車  169  458  0.369
後手 三間飛車    586 1490  0.393
後手 四間飛車   1079 2882  0.374
後手 中飛車      887 2182  0.406
--------------------------------
後手振飛車合計  2721 7012  0.388

================================
振飛車合計     4620 11540  0.400
 

AobaZeroの棋譜生成を800playout固定でなく可変にしました

 投稿者:山下  投稿日:2022年 1月10日(月)13時43分18秒
  AobaZeroの棋譜生成を800playout固定でなく、
最小100、最大3200までの可変にしました。
この変更で生成される棋譜の棋力は+76ELOほど強くなっています(Kristallweizenでの比較)。
Aoba駒落ちでは作られる重みの強さは +26 ELOでした。

kldgain = 0.0000013
で実験では1手平均777playoutで、ほぼ同じ思考時間になります。
Aoba駒落ちでは
kldgain = 0.000002, 最大5000playoutまで、でした。

1手800playoutだとkldgainは効果ありですがLCBはなし
https://524.teacup.com/yss/bbs/3812
 

30手目までの学習局面割合を減らすと、学習初期はやや効果ありですが途中からは微妙

 投稿者:山下  投稿日:2022年 1月 9日(日)19時03分29秒
編集済
  AobaZeroの棋譜で40手以下で投了してる棋譜の採用率は10分の1、さらに30手以下の局面は
0手目は10分の1、30手目では1分の1、になるように学習させる割合を減らして試してみました。

グラフにすると下図の緑のような感じになります。

ほぼ最新の重みで小さい学習率だとやや弱く、最初から学習させると+30 ELO程度強くなるようです。
ただ計測が24手までは互角局面集を使ってるので当然ともいえますが。
学習途中からだと、多少変更しても変化を見るのは難しそうです。


重みw3670に対する勝率。途中(w3670)から学習。1手100playout。

勝  引  負 局数  ELO
174-22-204 400 ( -26) 0手目を10分の1
170-27-203 400 ( -28) 0手目を10分の1, 実際の勝敗と探索勝率の平均を学習
163-25-212 400 ( -42) 0手目を10分の1, 実際の勝敗と探索勝率の平均を学習  (再試)

重みw3670から4800万棋譜から50万回(ミニバッチ128、6400万局面)学習。学習率 0.000002


「実際の勝敗」のみの「実際の勝敗と探索勝率の平均」への勝率。最初(乱数)から学習

勝   引  負 局数  ELO
249- 39-328 616 ( -44) 1手100playout
373-102-325 800 (  20) 1手  1playout, Policyのみだと若干弱い。valueのみが正確になってる

「30手以下の割合を小さく」の「制約なしで学習」に対する勝率
350- 73-290 713 (  29) 1手100playout   最初から、だと強い。24手目以降の強さなので当然かも
390-123-287 800 (  44) 1手  1playout,

下の4つは192x10bの小さなモデルで乱数で初期化したネットワークで学習。
すべて互角局面集で24手以降からの対戦成績。
 

レンタル掲示板
/318