強化学習
「ScratchでAIを学ぼう」はScratchで動かしながら強化学習を理解できる凄い本を読んだりして、少し強化学習に興味が出てきたので「OpenAI Gym / Baselines 深層学習・強化学習 人工知能プログラミング 実践入門」という本を読んで、環境構築や、サンプルを自分で作って動かしてみた内容のメモ。本当に個人的メモです。
GitHubリポジトリは以下です。
環境はMac前提です。
- iMac Retina 4K 2017
- macOS 10.13.6
OpenAI Gym
OpenAI Gymとは?
「OpenAI」が提供している強化学習用のツールキット。
環境構築
pyenvを使う前提です。pyenvのセットアップ方法や詳細は以下記事参照ください。
pyenv/pyenv-virtualenv/Anacondaを使ってクリーンなPython環境をセットアップ
以下はpyenvがセットアップできている前提です。
$ pyenv install 3.7.3
$ pyenv virtualenv 3.7.3 rl
$ pyenv global 3.7.3/envs/rl
以下は本に書いてありますが、自分の環境だと実行不要(すでに全部インストール済みだった)でした。
$ brew install cmake boost boost-python sdl2 swig wget
pipでOpenAI Gym関連のパッケージをインストール
$ pip install gym
$ pip install gym[atari]
$ pip install gym[box2d]
テスト
$ git clone https://github.com/karaage0703/reinforcement-learning-sample
$ cd reinforcement-learning-sample
$ python gym_level_01.py
$ python gym_level_02.py
$ python gym_level_03.py
$ python check_space.py CartPole-v1
$ python check_space.py Breakout-v0
Stable Baselines
Stable Baselinesとは?
「OpenAI Gym」で使われる強化学習の実装セットです。
環境構築
$ brew install openmpi
$ pip install stable-baselines[mpi]
$ pip install tensorflow==1.15.3
テスト
$ python hello_baselines.py
まとめ
強化学習、とりあえず動かしてみたりしているのですが、イマイチピンときていません。ゲームのAI作りとしてはこれで良さそうですが、実世界への応用は、ギャップがかなり大きそうだなという印象です。その分、何か面白いことができたらインパクトは大きそうですが。
イマイチ面白もの作るところまでのイメージが浮かばないので、強化学習に関してはとりあえずここまでにして、しばらく寝かしておこうと思います。おやすみー。
関連記事