人工知能に関する断創録

このブログでは人工知能のさまざまな分野について調査したことをまとめています(更新停止: 2019年12月31日)

Sarsa(λ)

強化学習の学習法の1つである Sarsa(λ) アルゴリズムを Introduction to Reinforcement learning(リンク切れ)に載っていたプログラムを参考に実装してみた。手元の本にはアルゴリズムが擬似コードで載っているだけなので、細かい実装法で分からないところがあったのだが、これ1つ実装してみただけで見通しがすごくよくなった。強化学習はアルゴリズムがたくさん提案されているが、ほとんど構造は似たようなものなので、これを参考に他のも実装して実験できるようになるだろう。

このプログラムでは迷路の抜け方を学習するんだけど、実際に実行してみて感動した!強化学習は教師なし学習なので迷路の抜け方を具体的に教えない。ただ報酬を定義してやるだけで見事に最適な抜ける方法を導き出した(報酬はエージェントの行動を誘導しているが、具体的な方法を指示しているわけではない)。これって、不可解、驚異的かつ予想外な行動じゃないですか?GAのときもそうだけど、自分はそう思う。

昔、パックマンっていう円に切れ込みを入れたようなキャラが敵を避けながら餌をできるだけ食べまくるゲームがあったけど、あれ強化学習を利用して人間よりうまくすることはできそうな気がする。全然実用じゃないけれど、プログラムの練習にはちょうどいいかもしれない。