強化学習の環境を作る!開発ツールキット「OpenAI Gym」の使い方 | AIZINE(エーアイジン)
教育

強化学習の環境を作る!開発ツールキット「OpenAI Gym」の使い方

強化学習の環境を作る!開発ツールキット「OpenAI Gym」の使い方

最近では機械学習を活用して大きな成果を上げるケースもちらほら出てきましたよね。中でも囲碁の世界チャンピオンが惨敗するというニュースは大きな衝撃を世間に与えましたが、これには強化学習という技術が大きく関わっているのです。

今回はこのような驚きを与えてくれた強化学習の開発に役立つ「OpenAI Gym」の使い方を説明していきましょう。

なお、強化学習とは機械学習のアプローチの1つです。簡単に説明すると環境を用意してその中で行動を起こさせ、報酬を与えることで効率的に学習を行わせるもの。イメージとしては私たちがテレビゲームで高得点をどうやってとれるのかを考えながら、プレイするように学んでいくのが特徴です。

そこでこの開発ツールキット「OpenAI Gym」についてやこれで何ができるのかや、また、実際にどのようにOpenAI Gymをインストールし、使っていくのかを分かりやすく説明していきます。

最後にはOpenAI Gymについてさらに学べる書籍や、OpenAI Gymを使いこなすために得ておくとよい知識についてお伝えしていきましょう。ぜひ、このOpenAI Gymで強化学習を体験し、よろしければより深く学んでみてはどうでしょうか。

開発ツールキット「OpenAI Gym」とは

開発ツールキット「OpenAI Gym」とは

それでは、この開発ツールキット「OpenAI Gym」とはどのようなものであるのかを簡単に説明していきます。

非営利団体の「OpenAI」が提供している

OpenAI Gymは非営利団体の「OpenAI」が提供しています。
ちなみにこのOpenAIはあのスペースX社のイーロンマスク氏も創設者に名を連ねており、AI(人工知能)を世の中において有益に広めていくことを目的にしている団体。

Python環境下で強化学習の開発を行えるツールである

そして、このOpenAI Gymがどのようなものであるかというと、Python環境下で強化学習の開発を行えるツール。別の言い方ではプログラミング言語「Python」のライブラリの1つでもあります。
詳しくは次の章で説明しますが、おおよそ簡単な強化学習を実装できたり、シミュレーションできるものと思ってください。
なお、強化学習とは冒頭でも説明したように機械学習のアプローチの1つであり、環境を用意してその中で行動を起こさせ、報酬を与えることで効率的に学習を行わせる方法です。

こちらの方法はGoogle社の「AlphaGo」で実際に利用され、3000万手を学習させることで囲碁のチャンピオンを圧倒的な力でねじ伏せました。

以上が開発ツールキット「OpenAI Gym」についてです。これを踏まえて以下ではOpenAI Gymで何ができるのかを説明します。

OpenAI Gym

OpenAI Gymで何ができるの?

OpenAI Gymで何ができるの?

開発ツールキットのOpenAI Gymでは以下のようなことができます。

強化学習のシミュレーションができる

まず、強化学習のシミュレーションが可能です。
こちらについてはいくつかの学習用のゲーム環境が用意されており、これを利用してシミュレーションが行えるようになっています。

より具体的にはユーザーが各環境を設定して、そこから学習を進めていく流れです。

シミュレーションにおける環境などを細かく管理できる

次に、OpenAI Gymではシミュレーションにおける環境などを細かく管理できるのが特徴です。
具体的には学習結果を描画することができるため、視覚的にどうなったのかを確認できます。これによってどの学習の方が効率的であるのかを簡単に把握できます。

この他、シミュレーションでは環境設定によって結果が変わってしまうので、設定した環境を細かく保存して同じような結果になるようにしています。また、学習の過程も保存されるようになっているので、進捗を正確に確認することも可能です。

以上がOpenAI Gymでできること。それでは、以下の章から実際にOpenAI Gymをインストールする方法や、具体的な使い方について説明してきましょう。

OpenAI Gymをインストールしよう

OpenAI Gymをインストールしよう

OpenAI Gymのインストールはそれほど難しくはなく、以下の手順に沿ってやっていけばできます。

1. Pythonの環境構築を行う

まず、Pythonの環境構築を行う必要があります。

これはOpenAI GymがPythonで利用可能なライブラリであるため。ですので、すでにPythonが何らかの形で端末にある場合には次に進めばよいですが、そうでなければPythonをダウンロードしてインストールしてください。
ちなみにPythonは公式だけでなく、パッケージで導入する方法もあります。

例えば、anacondaを利用してPythonの環境構築を行うなど方法はさまざま。したがって、みなさんにとってやりやすい方法で行ってください。

2. コマンドプロンプトなどでpipコマンドを利用してインストールする

次に、コマンドプロンプトなどでpipコマンドを利用して、OpenAI Gymをインストールしましょう。
なお、pipとはPythonのパッケージ管理ツール「Pip Installs Packages」のことです。

Pythonではこちらを利用することで簡単にパッケージの導入や削除、バージョンの確認が行えます。OpenAI Gymの場合も以下のようにコマンド入力すればインストールが簡単に可能です。

pip install gym
上のコマンドは本体だけをインストールする場合に入力するコマンドであり、他の機能についても利用したい場合には以下のように入力するとよいでしょう。
pip install 'gym[all]'
こちらの場合ではすべてのものをインストールするコマンドであるので、本格的にOpenAI Gymの利用を検討しているのならこちらがおすすめ。

以上がOpenAI Gymのインストール方法です。

Python環境があればあとはpipコマンドを入力すれば簡単にOpenAI Gymはインストールできます。ぜひ、みなさんも上の手順で実際にやってみてください。

OpenAI Gymの基本的な使い方

OpenAI Gymの基本的な使い方

それでは、インストールしたOpenAI Gymを使ってみましょう。ちなみに上でも説明しましたが、OpenAI Gymには学習用のゲーム環境が用意されています。一例としては以下のようなもの。

  • CartPole
  • Acrobot
  • MountainCar
ですから、OpenAI Gymの基本的な使い方としては以上の環境をPython上で設定していく流れとなっています。

そのため、今回はCartPole「倒立振り子」の場合でどうやって利用していくのかを簡単に説明していきましょう。

まずはPythonを起動して以下のコマンドを入力します。
import gym

以上のコマンド入力はPython上でOpenAI Gymが起動することを意味しています。

次に、CartPoleの設定を行うために以下のコマンドを入力してみましょう。
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の公式サイトなどで学び始めてみましょう。

以下ではOpenAI Gymについてさらに学べる書籍2つ紹介しています。書籍で学びたい人はぜひ参考にしましょう。

OpenAI Gymについてさらに学べる書籍2選

OpenAI Gymについてさらに学べる書籍2選

それでは、OpenAI Gymについてさらに学べる書籍を以下の2つ紹介していきます。

OpenAI Gym/Baselines 深層学習・強化学習 人工知能プログラミング 実践入門

「OpenAI Gym/Baselines 深層学習・強化学習 人工知能プログラミング 実践入門」はOpenAI Gymを利用して、実際のゲームの攻略を行うAI(人工知能)作成を目指す書籍です。

具体的には強化学習アルゴリズム集のStable Baselinesを活用しながら、メガドライブ版の「ソニック・ザ・ヘッジホッグ」で攻略を行っていきます。

これによって強化学習の知識とOpenAI Gymについて習熟できるでしょう。

最後には他のゲームや分野でも応用できるように解説を行っています。楽しみながらOpenAI Gymについて学びたいのならおすすめの一冊です。


OpenAI Gym/Baselines 深層学習・強化学習 人工知能プログラミング 実践入門

TensorFlowによる深層強化学習入門 —OpenAI Gym+PyBullet によるシミュレーション—

次に、「TensorFlowによる深層強化学習入門 —OpenAI Gym+PyBullet によるシミュレーション—」は題名にもあるようにTensorFlowやPyBulletなどを用いながらOpenAI Gymでシミュレーションを行う内容。

上の章のOpenAI Gymの基本的な使い方ではOpenAI Gym単体で動かしましたが、Python上で動かせるということは他のライブラリを使うことも可能であります。

ですから、この一冊を参考にすればどうやって他のライブラリを利用して、OpenAI Gymを使えばよいのかがわかるでしょう。
内容としても深層学習や強化学習についても説明しているので、基本的なことから応用的な内容を把握できるのでおすすめです。


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(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。

御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。

お多福ラボコーポレートサイトへのバナー

トップへ戻る
タイトルとURLをコピーしました