「 Alpha Zero の論文って どこにあるんだぜ☆?」
Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
「 職人技で作った関数とか、勘より ディープ・ニューラル・ネットワークだぜ、という自慢が書いてある☆」
「 sは局面だな☆ 局面といっても 駒の位置を覚えるだけが芸ではなく、どう表現するか いろいろあるだろ☆」
「 その s を入力として受け取って、指し手の確率 p を返すとのことだぜ☆
つまり、局面を渡したら この指し手p は どれぐらいv ということを返すと言っている数式だぜ☆」
「 この頃は そうなのかもしれないな☆
このあと バリュー・ネットワーク 使ったら もっと強いとか言われだすんだぜ☆」
「 確率論で出てくる数式だぜ☆
Probability の頭文字 Pr というのは 1 が出てきたら 100% で、 0 が出てきたら 0% みたいなやつだぜ☆
a|s は くじの箱にs個入っているクジからa個取り出すぐらいの意味だぜ☆」
「 トランプの中から3枚引いてそれが J、Q、K な確率とか やりたいことは いろいろあるだろ☆
どんな式になるのか ちゃんと書いたら 読みにくいから、めんどくさいんで a|s なんだぜ☆」
「 action って何だぜ☆? 囲碁棋士はジャンプキックでもするのか☆?」
「 囲碁の action って何なんだろな☆? 指し手は move だし☆ 座布団でも投げるのかも知らん☆」
「 コンピューター将棋が最善手のことを bestmove というように、
コンピューター囲碁では最善手のことを z と書くソフトもある☆ この例がそうかは知らんけど☆」
「 Estimator
だぜ☆ 犬とか出てきて何言ってるか分からない分野だが、分布の形か何かじゃないか☆?」
「 近似だぜ☆ 1.9998 と 2 は近似だし、 1.9999995 と 2 はもっと近似だぜ☆」
「 実用的な =
だぜ☆ 理想的な数とか 実験で出せない☆」
「 s, v
と 犬が近似って どういうことなの?
数学で カンマで区切られたアルファベットって何なの?」
「 タプル(Tuple)だな☆ 2つ揃って1つの何かを表していると考えろだぜ☆」
「 MCTS はよく出てくる略語なんで覚えておけだぜ☆(^~^)」
「 root は 木の根だぜ☆ S root なら 開始局面 だな☆
この式は 開始局面から 投了図まで、という意味だな☆
MCTSの プレイアウトとか、 ロールアウトとかいうやつだぜ☆ 最後までとにかくやることだぜ☆」
「 将棋ではロールアウトできないんだよな☆
囲碁は 石置いてりゃ そのうち終わるけど、将棋で駒を動かしても いつまで経っても進まないからな☆」
「 みんなが関心あるのが この f だぜ☆
Θは パラメーターなんで、このパラメーターが なんかいい感じのとき、 f は ちゃんと最善手を選んでくれるわけだぜ☆」
「 Alpha Zero は、この Θ を自己対局の強化学習で 自動調整できると言ってるわけだな☆」
starting from randomly initialised parameters θ.
「 πは MCTSのあとに返ってくる確率分布らしい☆ わたしが知らないということは 犬 と関係あるのだろう☆」
「 α は action と何か関係あるんじゃないか☆
t は よく時間として出てくるから 何手目 とか そういうやつじゃないか☆?」
「 Terminal Position って投了局面のことだろ☆ やっぱ T は 何手目とかいう数だと思うんだぜ☆」
「 outcome
が 報酬でしょ?
じゃあ z
は勝敗なんじゃないの?」
「 z - v
という式があとで出てくるが、 v はスカラー値なんで、 z は引ける何かのスカラーなのでは☆?」
The neural network parameters θ are updated so as to minimise the
error between the predicted outcome vt and the game outcome z, and to maximise the similarity
of the policy vector pt
to the search probabilities πt
「 Θは 誤差が最小になるように更新するようだぜ☆
予想した報酬 vt と ゲームの報酬 z の差がだぜ☆
これは いい指し手 pt を選ぶ確率 πt を最大化するんだぜ☆」
Specifically, the parameters θ are adjusted
by gradient descent on a loss function l that sums over mean-squared error and cross-entropy
losses respectively,
「 特に、Θパラメーターは 微分の曲線のぐにゃぐにゃしたやつの勾配を降りていくことで調整されるんだぜ☆
損失関数 l
というやつは 平均2乗誤差と クロス・エントロピーの損失の合計だぜ☆」
「 直訳してるだけじゃないの! 原文に対して 情報を加えなさいよ!」
「 zは なんか 予想上の理想の値か何かだぜ☆?
それとも 今回の実際の値?」
「 c
は なんで突然出てきたの? クロスのcなの?
タテボウ2つで挟まれているのは絶対値なの? パラメーターの絶対値なの? それを2乗?」
where c is a parameter controlling the level of L2 weight regularisation.
「 ↑ちゃんと説明されてるぜ☆ ここで c
は パラメーターをコントロールするんだぜ☆
L2の重みの正則のレベルだぜ☆」
AlphaGo Zero estimates and optimises the probability of winning, assuming binary win/loss
outcomes. AlphaZero instead estimates and optimises the expected outcome, taking account of
draws or potentially other outcomes.
「 ↑オリジナルの アルファ碁ゼロは 勝率を予想するのに、勝ち負けの2値だけでやっていたが、
アルファ・ゼロはそれに替えて 引き分けの数やその他のアウトカムも使っているようだぜ☆」
「 そのための2つの方法が 3ページ目の末端に書いてある☆」
First, training data was augmented by generating 8 symmetries for each position.
Second, during MCTS, board positions were transformed using a randomly
selected rotation or reflection before being evaluated by the neural network, so that the MonteCarlo evaluation is averaged over different biases.
「 自慢と参考文献を読み流して10ページ目、メソッドへ☆ チェスの話しだぜ☆」
「 局面と何か重りがどうので、スカラーvなのか何なのか、局面と重りかだぜ☆」
「 イコールの両辺に sとwは ずっといるけど、何が変わったの?」
<書きかけ>
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!