Aestetica

コンピュータ将棋Selene(セレネ)を作っています。名前は西海枝昌彦(さいかいし まさひこ)と読みます。

方策に悩み続ける

昔々、「てんか」という遊びがありましてー。
小学生のときの休み時間に友達とやっておりましてー。
娘が知っているかと思ったらやってなくてー。
テクノロジーがロストしている事実を知りましてー。
悲しくなりましてー。


方策勾配法は強化学習の一種で、強化学習は勝ったらプラスの報酬、負けたらマイナスの報酬をあげるもんですが、方策勾配法の場合は任意の報酬をあげて良いというところが工夫になっています。

この「任意の報酬」は、例えば将棋の場合「玉に近づいたらプラス」「玉まわりの利きが増えたらプラス」などと適当にあげるようにして、収束するスピードをUPさせる手助けとするのが目的です。

・・なんだけど、それはもう、将棋に限らずいろいろ、ほんとにいろいろ試しまくってみたけど難しい。
方策に何を設定すればいいのかが未だに不明瞭。
最終的に方策を設定せずに、ひたすらランダムにやっていくのが超強力。パソコンもめちゃくちゃに速いですからねー。
頑張ってみても、微妙に効果があるっぽい程度の方策しか作れません。

このへんのコツが分かれば、強化学習対象のルールから設定すべき方策が推測できたり、最終的には自動的に方策を作ることができるんでしょうけど、まだまだ応用しきれていない状況。

このアルゴリズム系の話は、サンプル程度のものはすぐにできても、効果的に応用していくことが本当に難しい。
アルゴリズムの理解うんぬんよりも、ノウハウを得ることのほうが非常に重要かもしれない。
とか言い出すと、ノウハウを自動的に得るようなプログラムを作りたい感じになってくるところがどうかしてるわ(笑)

どうかなる前に、効果的な方策を設定できるコツを見つけたいところです。