CNN(コンボリューショナルニューラルネットワーク、畳み込みニューラルネットワーク)を用いたモデルで学習をします。CNNは特に画像認識の分野で力を発揮し、近年のディープラーニングのブームを作るきっかけになったものと言ってもいいと思います。アルフ…
マイロ将棋0.1は弱すぎるので、指標となる思考ルーチンをもう一つ用意します。マイロ将棋1.0です。駒の動かし方はマイロ将棋0.1と同じく、取れる駒があれば取る、それ以外はランダムです。それに加えて、自分の王を取られる手を選択しないというルールを取り…
学習回数1000回に達した時点のモデルを用いてマイロ将棋0.1と対局し、強さを比較しました。300手指した時点で決着が着かない場合は再戦するという方法で計測しているので引き分けはカウントしません。結果は、1000局対局してマイロ将棋0.1が108勝、全結合の…
全結合のモデルでも駒の種類毎に入力情報が分かれるので、自分の駒が多ければ有利、相手の駒が多ければ不利ということは学習できるはずです。以下グラフは教師データを使って、全結合のモデルで学習を行った結果です。少しずつですが、学習回数が増える毎に…
作成した教師データを元に学習します。まずはディープラーニングの基本ともいえるニューロンを全結合したモデルを使います。マイロ将棋で使っている教師データは盤面の情報を2296個のデータで持っています。将棋の駒の種類は歩、香、桂、銀、金、角、飛車、…
機械学習では教師データを元に学習を行いますが、正しく学習できているのかとか、どのくらい学習が進んでいるのかを確認するために検証データというものを使います。教師データと同じようなデータを別に用意し、このデータは学習には使いません。そしてある…
マイロ将棋での教師データは、盤面(と持ち駒)の情報とその局面の勝率です。この教師データを使って、ニューラルネットワークのモデルを学習させ、様々な局面の勝率を予測できるようにします。 ディープラーニングの学習を行う部分は、ありがたいことに自分…
学習用の勝率データを作成するために、簡易的な思考ルーチンで指す将棋プログラムを使っています。この思考ルーチンでは、取れる駒があれば取る、無ければ指せる手の中からランダムで手を選択します。自分の手番で相手の王を取れる時は必ず王を取りその手番…
ディープラーニングでできること自体はとてもシンプルです。大まかには、分類問題と回帰問題の学習に分かれます。分類問題は手書き文字認識のような入力された情報がどのパターンに分類されるものかを当てる問題、回帰問題は住宅物件の価格予測のような、結…
こんばんは!マイロです。 3年前から将棋のプログラムを作り始めました。我が家では、マイロ将棋と呼んでいます。Pythonを使って作っています。マイロ将棋を作ろうとしたきっかけは、ディープラーニングを用いたソフトの出現です。2016年にディープマインド…
初めましてマイロです。ブログの練習も兼ねて、主に将棋のプログラムなどのプログラミングの記事を書きます。よろしくお願いします!