TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

2016-05-01から1ヶ月間の記事一覧

Chainerで位置ごとに異なるバイアスを定義する

前回の日記で、AlphaGoのSL policy networkをChainerで定義した際に、layer13の位置ごとに異なるバイアスを、(19*19)次元のベクトルとして、Convolution2Dを1次元にreshapeした後、足し合わせていたが、ミニバッチにした場合うまくいかないことが分かった。V…

ChainerでAlphaGoのSL policy networkを定義

AlphaGoのSL policy networkをとりあえず定義だけ作ってみました。AlphaGoの論文から、SL policy networkは以下のようになると理解しています。 layer1は、5*5のフィルターk枚、ReLU関数 layer2~12は、3*3のフィルターk枚、ReLU関数 layer13は1*1のフィルタ…

【囲碁プログラム】 rollout/tree policyをAdaGradで学習

※学習のやり直しを行った記事はこちらプロの棋譜からrollout/tree policyを学習してもGnuGoに対して勝率が30%程度であまり高くなっていない。学習に確率的勾配降下法(SGD)を固定の学習係数(0.001)とL1正則化係数(0.0000001)を使っていたので、 学習方法を変…

WindowsでChainerをGPUを使って動かす

※最新の情報はこちらの日記を合わせて参照ください。WindowsでChainerをGPUを使って動かすことができたので、手順をメモっておきます。使用したソフトのバージョンは以下の通りです。 Windows 10 Home 64bit Python 3.5.1(Anaconda 4.0.0 64bit) CUDA 7.5 cu…

【囲碁プログラム】 tree policyの学習

AlphaGoの論文にあるtree policyをプロの棋譜から学習を行った。rollout plicyから追加される特徴は以下の3つ。 Self-atari … 次に取られる手 Last move distance … 直前の2手からのマンハッタン距離 Non-response patter … 12point diamondパターン Last mo…

【囲碁プログラム】 プレイアウトにパターン適用

昨日はhttp://www.computer-shogi.org/wcsc26/を中継で観ていました。 コンピュータ将棋はまだまだ進化しているようで熱くなりますね。 チェスのStockfishの技術が将棋にも応用されているみたいです。さて、AlphaGoとイセドルの対局を観てから作り始めた囲碁…

【囲碁プログラム】 rollout policyの学習

インターネット上から入手した5万局くらいのプロの棋譜から、プレイアウトの特徴量を学習させてみた。 勝ったほうの手のみを学習することにしたので、勝敗データがない棋譜は除外した。特徴量は、AlphaGoの論文にあったrollout policyの特徴量とした。 ただ…