2019-01-01から1年間の記事一覧

AtCoder Beginner Contest 137

結果 順位 462nd / 5218 パフォーマンス 1685 レーティング 1906 → 1885(-21) D問題までの4問しか解けなくてひえーって感じだったけど失敗に優しいAtCoderなので。 A - +-x 素直なA問題でやりやすかった。 提出 B - One Clue こういうの境界のあたりでバグら…

AtCoder Beginner Contest 136

結果 順位 315th / 5109 パフォーマンス 1843 レーティング 1913 → 1906(-7) A - Transfer 一度間違えてサンプル3の入力を提出欄にコピペして出してしまったがCEになったのでペナルティは付かなかった。あぶねー。 提出 B - Uneven Numbers 整数をまでループ…

Temporal Difference Variational Auto-Encoderを読んだ際のメモ

出典 International Conference on Learning Representations 2019に採択。 所感 長くなってしまったので最初に所感を。 初めて読んだときはなんだかよくわからず挫折してしまったけど、4.2節あたりの気持ちをちゃんと読んでみると多少わかってきた。詳しい…

AtCoder Beginner Contest 135

結果 ユーザ名 tokumini コンテスト名 AtCoder Beginner Contest 135 順位 327th / 4583 パフォーマンス 1795 レーティング 1925 → 1913 (-12) 難しかった。 A問題 見た目が難しくてびびった。 提出 B問題 脳みそを使わない力のこもった三重ループを投げつけ…

価値のソフトマックス分布を教師としたAlphaZero学習

要約 価値のソフトマックス分布を行動選択および教師分布として利用することで学習が2倍から3倍程度速くなった。 背景 前回、生成している棋譜を分析したところ、評価値を大きく損ねる悪い手が多く選ばれすぎていると感じられた。この原因として探索回数をも…

AtCoder Grand Contest 036

結果 tokuminiさんのAtCoder Grand Contest 036での成績:254位 パフォーマンス:2080相当 レーティング:1906→1925 (+19) :) Highestを更新しました! B問題を自分としては素早く解けたがC問題に歯が立たなくて座っているだけの時間が長かった。 A問題 一つ…

AtCoder Beginner Contest 134

結果 tokuminiさんのAtCoder Beginner Contest 134での成績:320位 パフォーマンス:1845相当 レーティング:1913→1906 (-7) :( D問題で4WA出したのが痛かった。 提出 A問題 半径の円に内接する正十二角形の面積はであることが知られています。 知らなかった…

AtCoder Grand Contest 035

結果 A,Bの2完。順位は悪くなかったしレートも上がったけど嘘解法もありC問題を解けず、反省点は多かった。 A問題 300点という見た目に惑わされて「簡単に解けるはずなのに全然わからない」と焦るのもいい加減やめよう。確かAGCの300点はABCの300点とは違う…

学習中に生成した棋譜の分析

要約 生成している学習データの質が悪い可能性がある。質を高めていくために(1)価値を考慮した行動選択 (2)の調整 (3)リプレイバッファサイズの調整 などを考えていきたい。 実験 前回1Mステップの学習を行ったが、まだ収束していないようにも思えたので2Mス…

ELF OpenGo: An Analysis and Open Reimplementation of AlphaZeroを読んだ際のメモ

出典 International Conference on Machine Learning 2019に採択。arXivには2月ごろに投稿されていたので以前もちらっと読んだことはあったが、一応再確認。 概要 AlphaZeroのオープンソースによる再実験を行い、学習や推論における挙動について分析 詳細 実…

AtCoder Beginner Contest 133

結果 E問題までの5完で157位。パフォーマンス2118でレーティングは1854 → 1883 (+29)。F問題が難しい(というか重実装だった)影響でEまで早く解けていればそこそこな順位になった。始まる前から疲れていて不安だったがなんとかなってくれて良かった。 A問題 …

思考時間とレートの関係

要約 Miacisではおおむね思考時間を2倍でレート+100となる。MCTSのスケール性もαβ探索と比べてあまり変わらないのではないか。 背景 AlphaZeroの論文(arXiv版)には1手の思考時間とレートの関係が図で表されている(Figure 2)。以下に将棋の方だけを切り抜いた…

AtCoder Beginner Contest 132

結果 E問題までの5完で365位。変な勘違いばかりして解くのが遅く、全然ダメだった。 A問題 すっきりとしたやり方がわからなくて結局std::mapに各文字の出現回数を詰め込むというオーバーキル気味なことをやった。解説PDFにあるソートして比較が一番スマート…

長時間学習の結果/選手権以降にやったことのまとめ

要約 2週間弱かけて1Mステップの学習を行ったところレート2600程度になった。パラメータとWindows向けバイナリはGitHubで公開している。 背景 第29回世界コンピュータ将棋選手権以降、一通り試したいことはやったのでここで一度長時間の学習を行った。選手権…

AtCoder Beginner Contest 131

結果 E問題までの5完。 内容 値 順位 292nd / 5123 パフォーマンス 1869 レーティング 1861 → 1862 (+1) A問題 特になし。 提出 B問題 脳みそを使いたくなかったので問題文の通りまず総和を計算して各に対して絶対値の差が小さくなるものと探索してそれを出…

Learning Action Representations for Reinforcement Learningを読んだ際のメモ

出典 International Conference on Machine Learning 2019に採択 読んだ理由 前回に続いて行動の表現を学習する手法についてのものがICMLにあった。特に昨日の論文が行動ログから事前学習という形のものだったのに対して、より強化学習の学習ステップに明示…

The Natural Language of Actionsを読んだ際のメモ

出典 International Conference on Machine Learning 2019に採択 読んだ理由 うさぴょん外伝のアピール文書を読んでから行動表現の学習に興味が出ている。自然言語処理における分散表現の考え方に近いなと思いながらICML2019の論文一覧を見ていたところ、か…

AtCoder Beginner Contest 130

結果 D問題までの4完で久しぶりにレートが下がった。 A問題 最近はA問題でもちょいひねりが入ったりしていた気もするが今回はいやに簡単だった。 提出 B問題 特になし。 提出 C問題 半分に切る場合が最大というのはすぐわかったが、それが複数ある場合の条件…

diverta 2019 Programming Contest 2

結果 D問題までの4完。Highestが更新されていく。 A問題 での場合分けを間違えて1WA。サンプルにあるのに合ってないものを提出してしまうとは。自動でサンプルの成否確認して提出するプログラム欲しいと思うこともあるけど、コンテストに出る際の環境が複数…

優先度付き経験再生の実装・実験

要約 優先度付き経験再生はAlphaZero方式の学習でも効果がありそう。 背景 以前の記事でも軽く触れたが、優先度付き経験再生という手法がある。 大雑把に言うとリプレイバッファからのサンプリング確率を一様ランダムではなく優先度で重み付けするものである…

AtCoder Beginner Contest 129

結果 E問題までの5完。Fを解けている人が少なく、Eまでの早解きゲームになっていたようだ。近のRatedでは6回連続でレートが伸びており、たまたま上手くいっている感じは否めないが気分は良い。 A問題 ちゃんと問題文を読めているかちょっと不安になりつつの…

Sarsa-UCT(λ)の実装・実験

要約 Sarsa-UCT(λ)のλを調整しても明確な性能向上は見られなかった。 背景 以前の記事の通りMCTSにおける価値の漸進的更新を実装した。 これにより単なる平均を求める手法とは異なる手法へ改造することが容易になった。特に以前紹介したSarsa-UCT(λ)は自然な…

AtCoder Grand Contest 034

結果 A,Bの2完でレート+1。C問題を解けないようでは厳しい。 A問題 のうち右にある方を先に移動させたいという気持ちから考えていって方針は早い段階で立ったのだが、実装で悩んでしまった。最終的には多少冗長でも1マスずつ見ていくようにループを書くのが…

M-SOLUTIONS プロコンオープン

結果 A→B→D→Cと解いて4完。もっと早く解けるべきだとも思うけれど、これくらいが実力だとも感じる。 直近4回のRatedでは全てレートが上がっていて計+120、Highest更新中。特に訓練しているわけではないので単なる上ブレっぽくはあるが。 A問題 えー公式なん…

a crowd of rebellionの好きな曲

音楽について語れるような知識もないのでYoutubeから好きな曲を貼っていくだけの記事です。動画を貼っておきながらあれなんですけど、なんとなく楽曲のイメージを固定化したくないのでMVは一切見ていません。アーティストの顔写真とかもできれば見たくないな…

SENetの導入

要約 SENetの構造を導入することによってネットワークの性能が向上した。計算量はやや多くなるが、全体として棋力は向上した。 背景 山岡さんのブログで将棋ソフトでもSENetの構造が有用であるとの実験結果が示されていた。 このような簡単な変更かつ僅かな…

C_PUCTの調整

要約 は2.5としたとき一番性能が良かった。 背景 今までMiacisは探索の選択ステップにおいてScience版AlphaZeroと同様の係数を用いていた。 $$ a_t = \mathrm{argmax}_a \left( Q(s_t, a) + C(s) P(s, a) \frac{\sqrt{N(s)}}{1 + N(s, a)} \right) $$ $$ C(s…

AtCoder Beginner Contest 128

結果 E問題までの5完。思ったよりレートが伸びて1級になった。 A問題 足す部分を分けてしまったが別に1行で済むなぁと思いながら直すのも面倒だったので。 #include"bits/stdc++.h" using namespace std; using ll = int64_t; int main() { ll A, P; cin >> …

AtCoder Beginner Contest 127

結果 E問題までの5完で311位。パフォーマンスは1832でレート変動は1752→1760(+8)だった。E問題を解けてそこそこかなと思ったけど、パフォーマンスは思ったより低かった。慣れている人にとってはFが簡単だったらしいという影響もあったのかもしれない。 A問題…

MCTSにおける価値の漸進的更新

結論 MCTSの行動価値を漸進的に更新する実装で、総和を保持して平均化する実装と同程度の性能を達成できた。 背景 以前、MCTSにおいて行動価値を漸進的に更新する方法について記事を書いたが、性能が悪化してしまった。この記事で述べた通り、原因はおそらく…