最近強化学習でオセロのAIを作っています。
オセロって序盤は打てる手(っていうか盤面の状態)が限られてるけど、中盤以降は無限の組み合わせがあります。
マスの状態が空、黒、白の3通りあるとして、それが64マス分。3の64乗通りの盤面があるわけです。
私が現在使っている手法のQ学習は状態と行動をキーにしたテーブルに行動価値を代入します。
オセロみたいに状態数が爆発してると学習しきれないのです。
というわけで、テーブルに行動価値を代入するのではなく、行動価値を状態と行動の関数として表します。
関数近似器といえばニューラルネットワーク(ANN)です。
実は以前にもstd::vectorを使ってANNを作ったことがあったのですが、transformだのaccumulateだのたくさん出てきて正直汚い、見にくい、醜い。
そこでタイトルにもある行列ライブラリeigenの出番です。
まだ使い始めたばかりなので詳しいことはわかりませんが、このライブラリを入れるとmatlabのように行列計算ができる、しかも早い。
eigenの基本的な使い方は探せばたぶん出てくるので割愛して、今回私が皆さんに伝えたかったこと、それは
ーーーーーーデバッグが見づらい。
デバッグしてウォッチしてみると非常に見づらいのです。これは困った。VSのビジュアライザにeigenが定義されてる、、、わけもなく、泣く泣く自作することに、、、。
しかしデバッガ視覚化ファイルなんて作ったこともありません。MSDNのわかりづらいリファレンスとわけのわからないエラーとにらめっこすること数十分、、、。
無理っす^p^
あきらめて毎回ウォッチ式をちまちま書くか、、、
そこで閃きました。
誰か作ってんじゃね?
検索すること数分、、、あったー^^^^^
ということで今回私が本当に伝えたかったこと、それは
ーーーーーーーーーこのサイトから視覚化ファイルを持ってこよう
https://bitbucket.org/eigen/eigen/src/d ... ew-default
eigen見づらくて困ってる人が一人でも救われますように、、、