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

ネットワーク構造予備調査

前回の記事の通り、データセットの充実により教師あり学習でも十分な性能を出せるようになった。このため、CNNがスタンダードとなっているネットワーク構造についても再考ができるかもしれない。 巨大データセットを用いて巨大なモデルを学習させるというの…

『強い将棋ソフトの創りかた』データで学習

以下の本を読みました。 強い将棋ソフトの創りかた作者:山岡忠夫,加納邦彦マイナビ出版Amazon コンピュータ将棋でも深層学習+モンテカルロ木探索という構成の強力さが明らかになっている最中だと感じていますが、その最先端へ一気にキャッチアップするための…

画像to画像のネットワークに二桁の足し算を学習させる

手頃な大きさのニューラルネットワークが、画像を入力とし画像を出力する形で二桁の足し算を解くことができるのかどうかを検証した。 実験方法 データ形式 入力画像に「A+B=」という式を画像化したもの、教師画像として「A+B=C」の正しい式を画像化したもの…

『Which are you?』 その2 Transformerの採用

前回 前回は『Which are you?』というトイタスクを考え、LSTMを使って方策勾配法を用いることで10回中7回でそれなりな正答率になった。 今回は時系列モデルをLSTMからTransformerへと変更した。 実装 Transformerで時系列を扱う場合、過去の入力情報が必要に…

Not All Memories are Created Equal: Learning to Forget by Expiringを読んだメモ

概要 Transformerに与える系列に対して、記憶が有効である期限を事前に計算し、不要な記憶は捨てていくような機構を導入する。 提案手法 前提として、毎回のタイムステップで、表現ベクトルがやってくる。これをTransformerで処理して、過去の情報を考慮しつ…

ICML2021のPoster採択論文一覧を眺める

なんかoralは上手く反応しないのでPosterだけ。AbstだけGoogle翻訳にかけて、明らかに誤訳そうなところだけは少し手直しして貼り付けておく。結局これが手間と後で見返したとき便利さのバランスとして適当そう。 MuZero系 多くの重要な現実世界の問題には、…

深層強化学習の実装練習

深層強化学習プログラムの実装練習として『Which are you?』というトイタスクを考えて、エージェントを実装した。 1.『Which are you?』の説明 概要 以下のような5×5マスの2次元グリッドの世界を考える。 ##### #...# #A.B# #...# ##### A, Bはこの2次元グリ…

合法なラベル数の計算

前回、検証データにおいて1回でも出現する出現するラベル数を記録したところ、1411種類だとわかった。 ネットワークの出力の都合上、2187クラスとしてクラス分類を行っているが、その中には将棋の指し手としてあり得ないものもある。 今の指し手ラベル構築方…

Policy正解ラベルの偏り調査

深層学習系の将棋ソフトでは主にPolicyを教師あり学習などで訓練する。しかし、将棋を普通にプレイしている上で出やすい手と出にくい手があると考えられ、正解ラベルにはクラスごとの偏りが大きくあると思われる。今回はその偏りについて調査した。 ラベルの…

Transformerで将棋の学習

最近Transformer(ViT)モデルで教師あり学習をやっていたところ、損失値についてはCNNと近い程度の低さが出せるようになってきたので記事としてまとめておく。 (※ 教師あり学習での損失値を比較しているだけなので、CNNより強いという主張をしているわけでは…

重み共有40ブロックモデルの学習

ここのところeasy-to-hard論文の再現に執着している。 重み共有をしたResNetで、「学習時のループ回数よりも検証時のループ回数を大きくしたときに、学習データにはないような難しい問題に対する正答率が上がる」ということを主張している論文である。重み共…

PonderNet: Learning to Ponderを読んだ際のメモ

出典 Abst 標準的なニューラルネットワークにおいて、計算量は入力のサイズに伴って大きくなるが、学習する問題の複雑さに対応して大きくなるわけではない。この限界を打ち破るために、PonderNetを提案する。このアルゴリズムは問題の複雑さに応じて計算量を…

Measuring Coding Challenge Competence With APPSを読んだメモ

(GitHubリポジトリ) 概要 自然言語の問題文を入力としてコードを出力する、競技プログラミングに似た形式のタスクについて、APPという新しいデータセットを構築した。 データセットについてGPTモデルを評価したところ、簡単な問題についてAC率が0%~4%程度で…

Miacis for Android開発日記

深層強化学習を用いた将棋ソフト『Miacis』を開発しており、PyTorchのライブラリを眺めていたらAndroidで動かせるなーということに気づいたので作ってみました。 アプリのリンク ソースコードのリンク Androidアプリというか、一般にGUI付きのアプリを開発す…

教師あり学習 + 強化学習

要約 教師あり学習(300万ステップ)の後に強化学習(10万ステップ)を行うことでR+50.5、さらにもう一度強化学習(10万ステップ)を行うことでR+61.9。floodgateでレート3800ほどになった。 学習の全体 ランダムパラメータから始めて、以下の3つをこの順に行った…

ランダムパラメータからの強化学習

TensorRTなどの高速化も導入したので、ランダムパラメータからの強化学習をやり直した。 実験設定 いつも通り、細かい差異はあれど基本的にはAlphaZeroと同様の設定。 使用パソコン CPU:Intel Core i9-9900K @ 3.6GHz(8core 16thread) メモリ:32GB GPU:RTX 2…

Post Training Quantization(PTQ)の導入

要約 PTQ(要するにINT8演算)の導入でR+30程度 実装 ニューラルネットワークは基本的に浮動小数点演算(FP32)を用いている。今までは半精度浮動小数点演算(FP16)により高速化を行っていたが、Post Training Quantization(PTQ)という、FP32の範囲を絞ってINT8の…

dlshogi(GCT)との比較〜その2〜

要約 現状のMiacisとdlshogi(GCT:電竜戦ver)とのレート差約300の内訳は 評価関数の差で約200 探索速度の差で約100 と予想。 損失計測 前回とほぼ同様の設定で、floodgateの2015年の棋譜だけでなく2016年から2020年までの棋譜それぞれについて損失を計測した…

TensorRTの導入

要約 TensorRT(TRTorch)を導入したことでNPS約1.3倍、R+70ほど。 実装等 前回、同じデータについてMiacisとdlshogiの評価関数を比較した結果、そこまで精度に差がないのではないかという結果が得られた。この結果が正しいとすると、棋力の差は探索速度や効率…

dlshogi(GCT)との損失比較

同じデータに対して評価関数の性能比較を行った。 使用データはfloodgate2015年の棋譜(リンク内のwdoor2015.7z) であり、以下の条件でフィルターをかける。 手数が60手以上 対局両者のレートの大きい方が3000以上 終了状態が%TORYO, %SENNICHITE, %KACHIの…

Sharpness-Aware Minimizationの検証

Sharpness-Aware Minimizationという手法が提案されています。 詳しい人が説明してくれています(僕もこれで知りました)。 上記事の パラメータ周辺での最大の損失を求めて、それが下がる方向でパラメータを更新する というのが基本的なコンセプトでしょう…

256chでの教師あり学習

普段使っているネットワークがそこまで大きくはないのでもっと大きいネットワークを試したいと思って実験したが、ブログを見るとほとんど同じような実験を以前にもしていた。自分で書いた記事を自分で忘れている。 上の記事と同様に、普段128chである残差ブ…