このページは書籍「Pythonではじめるオープンエンドな進化的アルゴリズム - 発散型の機械学習による多様な解の探索」のサポートページです。
昨今では社会の様々な所でAIを実装し利用するようになってきました。従来の強化学習のアルゴリズムでは、問題を解決するための「目的」を設定し、目的関数を実装してきました。本書では「目的」ではなく、別の指標に着目して探索する手法について取り上げます。つまり「目的」を設定しない探索を目指します。このような探索を「オープンエンドな探索」と呼ぶ事にします。生命の進化の仕組みに着想を得て、強化学習や遺伝的アルゴリズムを組み合わせたアルゴリズムについて考えます。本書で紹介する「オープンエンドな探索」のアプローチでは、「新しさ」や「品質多様性」に着目して探索したり、環境とエージェントを共に進化させます。それにより複雑な問題を解決したり、従来のアルゴリズムでは発見できなかった解を見つける事を目指します。そんな広がりのある探索である「オープンエンドな探索」に興味を持ったら、ぜひ本書を手に取ってみてください。
注意
Evolution Gymのインストールの際、プラットフォームによってはエラーが出ることがあります。その際は、こちらのリポジトリに追加の修正を加えたコードを準備しましたので、こちらをお使いください。
サンプルコード
本書で紹介したサンプルプログラムはこちらにあります。
https://github.com/oreilly-japan/OpenEndedCodebook
オンライン付録、サポートページに関するファイルも含まれています。ディレクトリの構成は以下のようになっています。
ディレクトリ名 | 用途 |
---|---|
README.md | README |
appendix | サポートページ及びオンライン付録のコンテンツ |
envs/circuit | サンプルプログラムで使うモジュール: 論理回路の実験用 |
envs/evogym | サンプルプログラムで使うモジュール: ソフトロボットの実験用 |
envs/maze | サンプルプログラムで使うモジュール: 迷路の実験用 |
experiments/Chapter2 | 2章サンプルプログラム |
experiments/Chapter3 | 3章サンプルプログラム |
experiments/Chapter4 | 4章サンプルプログラム |
experiments/Chapter5 | 5章サンプルプログラム |
experiments/Chapter6 | 6章サンプルプログラム |
hugo | サポートページ用の設定 |
libs | サンプルプログラムで使うモジュール: 共通ライブラリ |
requirements.txt |
サンプルプログラムの環境構築
サンプルプログラムの実行環境は以下の手順で作成します。
Evolution Gymのインストール
まず Evolution Gym
のインストールを行います。
リポジトリのソースコードを取得する
Github上にホスティングされているソースコードを取得します。ここでは例としてGitを使います。
git clone --recursive https://github.com/EvolutionGym/evogym.git
作業ディレクトリをリポジトリルートに移動する
ソースコードを取得できたら、作業ディレクトリをリポジトリルートに移動します。
cd evogym
venvを用いて仮想環境をを作成する
venv=を用いてPython 3.8の仮想環境を作成します。ここでは便宜上 =env-evogym
という名前で仮想環境を作成する事にします。python3.8 -m venv env-evogym .
仮想環境をアクティベートする
先程作成した仮想環境をアクティベートします。
source env-evogym/bin/activate
依存パッケージをインストールする
依存パッケージをインストールします。
pip install -r requirements.txt
Evolution Gym
をインストールするEvolution Gym
本体をインストールします。ここではpip
を用いることにします。インストール時にはシミュレータもビルドされるため、そこそこ時間がかかります。pip install .
動作確認する
インストールが完了したら、動作確認用のスクリプトを実行し、うまくいったかを確認します。
python examples/gym_test.py
以下のような画面が表示されたら、インストールは成功です。
インストールができたら、作業ディレクトリを移動しておきます。
cd ../
Evolution Gym
のインストールが上手くいかない場合は付録6 Evolution Gym のインストールに失敗したら?も参照ください。
サンプルプログラムの環境構築
次にサンプルプログラムの実行環境を構築します。
サンプルプログラムのソースコードを取得する
Github上にあるサンプルプログラムのソースコードを取得します。
git clone https://github.com/oreilly-japan/OpenEndedCodebook.git
作業ディレクトリをリポジトリルートに移動する
ソースコードを取得できたら、作業ディレクトリをリポジトリルートに移動します。
cd OpenEndedCodebook
依存パッケージをインストールします。
pip install -r requirement.txt
本書で使用する依存パッケージの中に、以前のバージョンのライブラリを期待しているものがあります。ただしパッケージの状態により、依存パッケージの依存パッケージがインストールできない状態になっています。そのため
--no-deps
を指定してインストールします。pip install --no-deps -r requirements-extra.txt
これで環境構築は終わりです。
オンライン付録
本書では執筆段階で想定以上に文章の量が多くなってしまい、執筆した文章の全てを紙面に収める事ができませんでした。そこで、それらをオンライン付録として、サポートページに掲載する事にしました。本書を読み進め理解を深める時の補助的な資料としてご活用ください。
正誤表
本書の正誤情報は以下のページで公開しています。
https://www.oreilly.co.jp/books/9784814400003/
本ページに掲載されていない誤植など間違いを見つけた方は、japan@oreilly.co.jpまでお知らせください。