テクノロジー

初心者でも始めよう!OpenAI Gymの基本から実装までの手順まとめ

初心者でも始めよう!OpenAI Gymの基本から実装までの手順まとめ

AI(人工知能)は、自動運転やAlpha Goなど使われていますよね。実は、この技術に利用されているのが強化学習です。

強化学習を簡単に始められるツールが、OpenAI Gymです。強化学習は、シミュレーションを手軽に行える環境を構築する工程が、一番手間がかかります。しかしOpenAI Gymを使えば、環境を準備するだけで手軽に強化学習のシミュレーションを行えます。この記事ではOOpenAI Gymのインストール方法から実際の使い方、注意点まで網羅しています。ぜひ、内容を理解してOpenAI Gymよる強化学習を始めましょう。

それでは今回は、OpenAI Gymは何かと使い方についてお伝えします。

OpenAI Gymとは

OpenAI Gymのイメージ
OpenAI Gymは、テスラの共同創設者であるイーロン・マスクが設立した非営利団体のOpenAIが公開した強化学習アルゴリズムを開発・比較するためのツールキット。他には、Reinforcement Learning Toolboxなどがあり、自動運転のシミュレーションができます。Gymを用いると強化学習のシミュレーションを行うことができます。

機械学習は大きく教師あり学習、教師なし学習、強化学習の3つに分類されます。強化学習は、ある「環境」下において、「エージェント」が状況を観察しながら「行動」をすることを繰り返した結果、最大の報酬がもらえる(目的が最大限達成される)ための最適な行動を学習する手法のことです。囲碁や将棋のゲームや自動運転などに応用されて利用されています。

OpenAI Gymでは、強化学習のシミュレーションを行い様々なアルゴリズムを比較検討できます。Open AI Gymを利用すれば容易に様々な強化学習のシミュレーションを始められます。

OpenAI Gym使うメリット・デメリット

メリットデメリットのイメージ
では、OpenAI Gymを使うメリットとデメリットをお伝えします。

メリット1:すぐに強化学習を始められる

OpenAI Gymでは強化学習の環境が準備されているため、環境名を指定さえすれば強化学習を始められるので非常に簡単に強化学習のシミュレーションを行えます。

メリット2:環境のバージョンが厳密に管理されているため、環境が異なる中で比較検討できる

強化学習においては、環境が少しでも変化すると状況が違うため別の結果になってしまうことが多くあります。そのため、環境は厳密に定義したうえで強化学習を行う必要があるのですが、OpenAI Gymは少しでも提供している環境が変わるとバージョンが変更されるため、厳密な実験を行えます。そのため、様々なアルゴリズムを厳密に比較検討できるでしょう。

メリット3:他のライブラリと連携できる

強化学習とディープラーニングを組み合わせた深層強化学習を行う際などは、ディープラーニングを行うためのフレームワークを利用することが多いです。例えば、TensorFlowやKeras、Theanoは、エージェント部分のコードで利用することがあるのですが、OpenAI Gymにおいては、これらのフレームワークを利用できます。そのため、深層強化学習も簡単にできるでしょう。

デメリット1:費用がかかる

OpenAI Gymは環境を0から準備することに比べると、比較的安価に準備ができます。しかし、一部の環境を利用する際は、有料です。具体的には、個人で商用利用以外利用だと$500、商用利用だと$2000で、MuJoCo advanced physics simulationを利用できます。

デメリット2:提供されている環境以外は環境構築が必要

準備されている環境については、すぐに実験ができますが、それ以外の環境については0から構築が必要です。

OpenAI Gymをインストールする方法

インストールする方法
次に、OpenAI Gymをインストールする方法をお伝えします。

OpenAI Gymのalgorithmic、toy_text、classic_controlの一部の環境を利用する場合のインストール方法は、Windowsならコマンドプロンプト、Macならターミナルで、pip install gymを実行すればインストールできます。または、gitをインストールした後、git clone https://github.com/openai/gym.git
cd gymを実行して、パッケージをダウンロードした後、pip install -eを実行すればインストールできるでしょう。

OpenAI Gymのすべての環境をローカルにインストールする場合は、Ubuntu 16.04 and 18.04の場合は、

apt-get install -y libglu1-mesa-dev libgl1-mesa-dev libosmesa6-dev xvfb ffmpeg curl patchelf libglfw3 libglfw3-dev cmake zlib1g zlib1g-dev swig

を実行します。それ以外の場合は、Windowsならコマンドプロンプト、Macならターミナルで、

pip install -e ‘.[all]’、または、 pip install ‘gym[all]’

を実行すればインストールできます。pipのバージョンが1.5.0以上でないとインストールできないため、1.5.0以下の場合pip install –ignore-installed pipでバージョンをアップデートしましょう。

OpenAI Gymで強化学習環境を実装する方法

実装のイメージ
次に、OpenAI Gymで強化学習環境を実装する方法をお伝えします。

まずは、必要なライブラリをインポートして、環境を定義しましょう。

import gym
env = gym.make(“環境名”)

で定義できます。どのような環境が利用できるかは、公式サイトで確認をするか、次のコードで確認できます。

from gym import envs
envs_id = [s.id for s in envs.registry.all()]

環境を定義した後は、reset()メソッドを用いることで、初期状態の観測データを取得できます。

obs = env.reset()

と実行しましょう。print関数でobsを表示すると、シミュレーションの初期状態の観測データを取得できます。

これらの定義した環境に対して、エージェントにアルゴリズムを加えることで最大の報酬を得られるようにシミュレーションしていくという流れで強化学習を行います。

OpenAI Gymで実装をする際の注意点

注意点のイメージ
OpenAI Gymを実装する際に注意するべき点をお伝えします。

環境の設定を間違えない

強化学習は、ある「環境」下において、「エージェント」が状況を観察しながら「行動」をすることを繰り返した結果、最大の報酬がもらえる(目的が最大限達成される)ための最適な行動を学習する手法です。

そのため、「環境」が少しでも違うと「最適な行動」、「最大の報酬」が変わってしまいます。エージェントの行動のアルゴリズムを様々試す場合は、「環境」が同じであることを確認しましょう。

利用のためにMuJoCo ライセンスが必要なコンテンツがある

MuJoCoとは、ワシントン大学のEmo氏により開発された物理エンジンのこと。Multi-Joint dynamics with Contactの略で、多関節の動力学シミュレーションに適しており、OpenAI Gymでも利用できます。ロボティクスのシミュレーションなどを行うなどの利用にあたっては、ライセンスの必要があるため、MuJoCoの公式サイトからライセンスを申請しましょう。

OpenAI Gymの実装をしてみたら、やるべきこと

次のイメージ
OpenAI Gymの実装をしてみたらやるべきことをお伝えします。

OpenAI Gymを用いると環境を容易に準備できるため、アルゴリズムの検討に非常に多くの時間を利用できます。そのため、1つのアルゴリズムを実装するのではなく、様々なアルゴリズムを試すとよいでしょう。様々なアルゴリズムを試すことで比較実験ができるため、最適な強化学習がどれかを検討できます。

大きく分けて、価値ベースと方策ベースの手法があり、その中のアルゴリズムにおいてもQ学習やSARSA、確率勾配降下法など様々なアルゴリズムがあります。状況に応じて、アルゴリズムを複数選択して比較検討しましょう。

まとめ
さて、今回はOpenAI Gymとは何かと具体的な使い方についてお伝えしました。ここで今回お伝えしたかった内容は以下となります。

  • OpenAI Gymは、非営利団体のOpenAIが公開した強化学習アルゴリズムを開発・比較するためのツールキットで、容易に強化学習のシミュレーションできる
  • OpenAI Gymを使うメリットとしては環境が整備されていて、それらが厳密にバージョン管理されている、デメリットには一部が有料である、準備されている環境以外では強化学習ができない点がある
  • pip install Gymを実行すれば最小限の環境についてはOpenAI Gymをインストールできる
  • 環境は、import gym env = gym.make(“環境名”)で定義できる
  • OpenAI Gymにおいては、比較実験する場合は環境を同じにする必要があること、一部ライセンス申請が必要な環境がある
  • 実装後は、様々なアルゴリズムを比較検討する必要がある

OpenAI Gymを使うと、強化学習の実装を容易に行えます。これをきっかけにして、ぜひ強化学習を始めましょう。

【お知らせ】

当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。

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

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

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