2019-05-01から1ヶ月間の記事一覧
dlshogiでは入力特徴に手番を加えていない。 将棋では先手と後手で同一局面の価値は変わらないためだ。 ある局面が与えられば、先手か後手かによらず最善手は同じはずである。一方、AlphaZeroでは、手番が入力特徴に加えられている。 局面を180度回転せずに…
しばらく更新できていなかったAndroidアプリのボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップしました。play.google.com今回は、要望が多かったインポート機能を実装しました。 インテント経由でGoogleドライブなどからwavファイルをインポー…
前回将棋AIのモデルでSENetを組み込むと精度が上がることが確かめられた。 今回は、SENetなしで層を増やした場合と比較を行ってみた。 また、SENetのreduction rateを16から8、4にした場合とも比較を行った。測定方法は前回と同じ。 比較条件 SENetなしでブ…
先日Chainerで実装したSENetを将棋AIのモデルで試してみた。dlshogiで使用している10ブロック、192フィルタのWideResNetにSENetを組み込んで、SENet有無による精度を比較した。 SENetの実装 DeepLearningShogi/policy_value_network.py at 7820661597f380b17…
教師データ引き分けを加えた場合と、加えない場合の精度の比較を行った。 引き分けの学習には、ChainerのカスタムFunctionを使用した。測定方法は前回の正則化の効果の測定と同じ。 測定方法 10ブロック、192フィルタのモデル PolicyとValueのマルチタスク学…
先日、将棋AIのモデルにおけるエントロピー正則化とL2正則化の効果を測定したが、正しく測定できていなかったので再測定した。前回の測定結果のtest accuacyが低いので、原因を調べていたら、ChainerのV5から追加されたstatic_graphを使っていたことが原因だ…
ILSVRC 2017で優勝したSqueeze-and-Excitation Networks (SENet)を、こちらのPyTorchの実装を参考にChainerで実装した。GitHub - TadaoYamaoka/senet.chainer 実装したのは、SE-ResNet20/Cifar10のみ。 結果 通常のResNet >python cifar.py --batch_size 64 …
将棋AI用モデルの学習で正則化の有無による精度への影響を測定した。 測定方法 10ブロック、192フィルタのモデル PolicyとValueのマルチタスク学習 Aperyで生成した1.4億局面をシャッフルして2500万局面分を学習 Momentum SGD(lr=0.01) 初期モデルから学習 …
昨日書いた2値分類で中間の値も学習するコードは、損失の計算で計算グラフを構築して、backward()時の微分はChainerに任せていた。しかし、交差エントロピーの微分は、以下のように引き算で表すことができるため、計算グラフを構築しなくてもよい。 交差エン…
実験している将棋AIの学習では、今まで価値ネットワークの出力の活性化関数をシグモイドとして、勝ちと負けの2値で分類していた。 しかし、先日の世界コンピュータ将棋選手権に参加して、引き分けや千日手が結果を左右するゲームが多かったため、引き分けも…
方策勾配で強化学習を行う際に、方策が決定論的になっていないか監視するために、ログにエントロピーを出力するようにしたい。エントロピーは、 で計算できるが、確率がほぼ0の場合、が-infになるため、この式のままでは計算できない。の最小値をクリップし…
3年半ぶりにiPhoneアプリのAudio Spectrum Monitorをバージョンアップしました。Audio Spectrum MonitorTadao Yamaokaミュージック¥120身に付けた機械学習の知識を使って、解析精度アップを行う予定ですが、その前に要望のあったインポート/エクスポート機能…
※ほぼ自分用の実験ノートです。世界コンピュータ将棋選手権の少し前から、自己対局におけるノードの再利用とバッチサイズの変更(1024→2048)を行った。 250万局面の生成と学習を8サイクル行ったところ、技巧2に対して勝率が上がったため、大会には最新のモデ…
2次予選1局のKristallweizenとの対局について、敗因を分析してみた。評価値は以下のようになっており、Kristallweizen側の評価値も124手で先手が優勢となっていた。 125手目の2七桂打が悪手で、一手で後手優勢に傾いた。125手目の局面を、Aperyで分析すると…
今年の世界コンピュータ将棋選手権はMulti Ponderを採用しているチームが多く関心も高かったようです。dlshogiでも、Multi Ponderの考え方を取り入れていました。 Multi Ponderは、どの手にどれだけのリソースを配分すると誤差を最小化できるかという問題と…
dlshogiは、前回に続いて1次予選を通過し、2次予選まで進むことができました。 2次予選は、2勝できればよいと考えていましたが、結果は4勝5敗と善戦できました。 ただし、1勝は相手チームのサーバダウンによるものなので、実質は3勝と思っています。 順位は2…
dlshogiの第29回世界コンピュータ将棋選手権バージョンのビルド済みファイルを公開しました。wcsc28版は、詰み探索用にAperyの評価関数が必要でしたが、df-pnによる詰み探索を実装したため、評価関数は不要になりました。 CUDA、cuDNNはライセンス上の問題が…
dlshogiは、世界コンピュータ将棋選手権 1次予選、8位でぎりぎり通過できました。3敗したうち、2つはやねうら王ライブラリのソフトでかなり棋力差がある感じでしたが、8戦目のあやめとの対局は去年の2次予選では勝っていたソフトなので、60手であっさり負け…