最近では機械学習を活用して大きな成果を上げるケースもちらほら出てきましたよね。中でも囲碁の世界チャンピオンが惨敗するというニュースは大きな衝撃を世間に与えましたが、これには強化学習という技術が大きく関わっているのです。
今回はこのような驚きを与えてくれた強化学習の開発に役立つ「OpenAI Gym」の使い方を説明していきましょう。
なお、強化学習とは機械学習のアプローチの1つです。簡単に説明すると環境を用意してその中で行動を起こさせ、報酬を与えることで効率的に学習を行わせるもの。イメージとしては私たちがテレビゲームで高得点をどうやってとれるのかを考えながら、プレイするように学んでいくのが特徴です。
そこでこの開発ツールキット「OpenAI Gym」についてやこれで何ができるのかや、また、実際にどのようにOpenAI Gymをインストールし、使っていくのかを分かりやすく説明していきます。
最後にはOpenAI Gymについてさらに学べる書籍や、OpenAI Gymを使いこなすために得ておくとよい知識についてお伝えしていきましょう。ぜひ、このOpenAI Gymで強化学習を体験し、よろしければより深く学んでみてはどうでしょうか。
開発ツールキット「OpenAI Gym」とは
それでは、この開発ツールキット「OpenAI Gym」とはどのようなものであるのかを簡単に説明していきます。
非営利団体の「OpenAI」が提供している
Python環境下で強化学習の開発を行えるツールである
こちらの方法はGoogle社の「AlphaGo」で実際に利用され、3000万手を学習させることで囲碁のチャンピオンを圧倒的な力でねじ伏せました。
以上が開発ツールキット「OpenAI Gym」についてです。これを踏まえて以下ではOpenAI Gymで何ができるのかを説明します。
OpenAI Gymで何ができるの?
開発ツールキットのOpenAI Gymでは以下のようなことができます。
強化学習のシミュレーションができる
より具体的にはユーザーが各環境を設定して、そこから学習を進めていく流れです。
シミュレーションにおける環境などを細かく管理できる
この他、シミュレーションでは環境設定によって結果が変わってしまうので、設定した環境を細かく保存して同じような結果になるようにしています。また、学習の過程も保存されるようになっているので、進捗を正確に確認することも可能です。
以上がOpenAI Gymでできること。それでは、以下の章から実際にOpenAI Gymをインストールする方法や、具体的な使い方について説明してきましょう。
OpenAI Gymをインストールしよう
OpenAI Gymのインストールはそれほど難しくはなく、以下の手順に沿ってやっていけばできます。
1. Pythonの環境構築を行う
まず、Pythonの環境構築を行う必要があります。
例えば、anacondaを利用してPythonの環境構築を行うなど方法はさまざま。したがって、みなさんにとってやりやすい方法で行ってください。
2. コマンドプロンプトなどでpipコマンドを利用してインストールする
Pythonではこちらを利用することで簡単にパッケージの導入や削除、バージョンの確認が行えます。OpenAI Gymの場合も以下のようにコマンド入力すればインストールが簡単に可能です。
pip install gym
pip install 'gym[all]'
以上がOpenAI Gymのインストール方法です。
Python環境があればあとはpipコマンドを入力すれば簡単にOpenAI Gymはインストールできます。ぜひ、みなさんも上の手順で実際にやってみてください。
OpenAI Gymの基本的な使い方
それでは、インストールしたOpenAI Gymを使ってみましょう。ちなみに上でも説明しましたが、OpenAI Gymには学習用のゲーム環境が用意されています。一例としては以下のようなもの。
- CartPole
- Acrobot
- MountainCar
そのため、今回はCartPole「倒立振り子」の場合でどうやって利用していくのかを簡単に説明していきましょう。
import gym
以上のコマンド入力はPython上でOpenAI Gymが起動することを意味しています。
env = gym.make('CartPole-v0') env.reset()
するとOpenAI Gym上でCartPoleが選択され、環境が初期化された状態が入力されます。
for _ in range(1000): env.render() env.step(env.action_space.sample())
こちらを入力して以上のコマンドを実行すると、倒立振り子がランダムの動きをすることがみて取れるはずです。ここまでがOpenAI Gymの基本的な使い方になります。
より深くOpenAI Gymについて学べば振り子が落ちないように動く学習ができたり、他の環境でも学習を行うことが可能です。
以下ではOpenAI Gymについてさらに学べる書籍2つ紹介しています。書籍で学びたい人はぜひ参考にしましょう。
OpenAI Gymについてさらに学べる書籍2選
それでは、OpenAI Gymについてさらに学べる書籍を以下の2つ紹介していきます。
OpenAI Gym/Baselines 深層学習・強化学習 人工知能プログラミング 実践入門
具体的には強化学習アルゴリズム集のStable Baselinesを活用しながら、メガドライブ版の「ソニック・ザ・ヘッジホッグ」で攻略を行っていきます。
最後には他のゲームや分野でも応用できるように解説を行っています。楽しみながらOpenAI Gymについて学びたいのならおすすめの一冊です。
OpenAI Gym/Baselines 深層学習・強化学習 人工知能プログラミング 実践入門
TensorFlowによる深層強化学習入門 —OpenAI Gym+PyBullet によるシミュレーション—
上の章のOpenAI Gymの基本的な使い方ではOpenAI Gym単体で動かしましたが、Python上で動かせるということは他のライブラリを使うことも可能であります。
TensorFlowによる深層強化学習入門 —OpenAI Gym+PyBullet によるシミュレーション—
以上がOpenAI Gymについてさらに学べる書籍になります。これらを参考にしてOpenAI Gymについてより深く学んでください。
今回はOpenAI Gymについて説明しました。
- OpenAI Gymは非営利団体の「OpenAI」が提供している強化学習の開発を行えるツールである
- 環境などを細かく管理しながら強化学習のシミュレーションができる
- インストールはPythonの環境構築を行ってコマンドプロンプトなどでpipコマンドを利用する
- 使い方はPythonを起動して環境を設定して動かせばよい
これを踏まえてみなさんには以下のことも同時に行っていただきたいです。
- プログラミング言語Pythonや機械学習についても学ぶ
やはりOpenAI Gymはプログラミング言語Python上で利用できるものであるので、より複雑な学習を行うためには文法やライブラリについての理解が必要です。また、強化学習は機械学習の一部であるのでそれについての知識もあったほうがよい。
ですので、体験としてOpenAI Gymに触れた後には、以上の知識を得ながらより複雑な強化学習のシミュレーションにチャレンジしてみてはどうでしょうか。そうすればOpenAI Gymを駆使することで、世の中をあっと言わせるようなAI(人工知能)を作り出せるかもしれません。
今回を機会にしてぜひ挑戦してみてください。
【お知らせ】
当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。
御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。