ISBN 9784814400003

Pythonではじめるオープンエンドな進化的アルゴリズム : 発散型の機械学習による多様な解の探索

Pythonではじめるオープンエンドな進化的アルゴリズム : 発散型の機械学習による多様な解の探索
刊行
2023-10

概要

生物進化に着想した発散型アルゴリズムで多様な解を探索する

想定読者

深層学習以外の機械学習アプローチに関心があるPythonエンジニア・研究者。NEAT / Novelty Search / Quality Diversity など進化計算の概念を実装レベルで理解したい人。

こんな人には向いていない

  • 機械学習の基礎(損失関数・勾配降下法)をまだ習得していない初学者。本書は収束型との対比を前提として議論が進む
  • 単一の最適解を求める最適化問題を扱う実務エンジニア。発散型の価値が活きる多様解探索のユースケースが事前に想定できない場合は費用対効果が低い
  • Pythonの環境構築が不慣れな読者。特にApple Siliconを使う場合はEvolution Gymの依存関係で追加のトラブルシューティングが必要になる可能性がある

読了後にできるようになること

  • 収束型と発散型アルゴリズムの概念的・構造的な違いを説明できる
  • NEATおよびCPPNを用いたニューラルネットワーク構造の進化をPythonで実装できる
  • Novelty SearchとQuality Diversity(Map-Elites)の設計思想と適用場面を判断できる
  • 共進化(Coevolution)とPOETアルゴリズムの仕組みを理解し実験環境を構築できる
  • 生成モデルや大規模言語モデルと進化的手法を組み合わせる研究動向の全体像を把握できる

本書のキー概念(章解説)

  • 第 1 章 オープンエンドな探索によるクリエイティブAI — 発散型vs収束型の概念整理として全体の地図を提供する。まずここを読んで自分のユースケースと合致するか判断する
  • 第 2 章 進化的アルゴリズムの基礎(NEAT・CPPN実装) — NEATの実装は「思ったより簡単」という実践者の声もあり、コードを動かしながら読む価値が高い章
  • 第 3 章 Novelty Searchアルゴリズム
  • 第 4 章 Quality Diversity(Map-Elites)
  • 第 5 章 共進化アルゴリズム
  • 第 6 章 POETアルゴリズム
  • 第 7 章 生成モデル・大規模言語モデルとの融合展望 — Sakana AI等の研究事例を踏まえた将来展望章。理論より動向把握が目的の読者はここから読み始めるのも一手

ハイライト

  • 生物の進化に着想を得た新しい「発散型」の機械学習アルゴリズムを解説!深層学習を含む多くの機械学習アルゴリズムは、1つの最適化を求める「収束型」のアルゴリズムであるのに対し、近年注目を集めているのが人工生命の研究分野で開発され、従来の探索方法では得られなかったような、多様な解が求められる「発散型」アルゴリズムです(収束型との対比という本書の核心的な立場が最も端的に示されている箇所)

外部からの言及

  • 機械学習書籍まとめの「Next!」枠に複数年続けて選出されており、遺伝的アルゴリズムが深層学習の影で再評価される流れに乗った一冊として位置づけられている。Sakana AIによる進化的手法の実用化を引き合いに「新しいもの好きであれば読んでおいて良い」という慎重だが前向きな評価が複数の記者から示されている(qiita)
  • NEATをPongゲームで実装した実践記事で「めっちゃ参考になる」と本書が参照されており、実装の足がかりとして機能することが確認されている。著者はNEATを「思ったより簡単に実装できた」と述べており、本書の解説品質を裏付ける(qiita)
  • Apple Silicon(M5)環境でEvolution Gymの依存関係が標準手順では解決せず、conda-forgeへの切り替えやlibffiの明示指定など追加対応が必要という実務上の注意点が報告されている(qiita)

編集メモ

Qiita上で本書に直接言及している記事は確認できた範囲で4件、うち2件は機械学習書籍まとめ記事への掲載。個別記事のlikes数は最大36。まとめ記事(likes 868・440)への収録は関心の高まりを示すが、本書固有の引用・解説記事はまだ少ない。2023年10月刊で一定の評価は得ているが、Qiita上のコミュニティ浸透は現時点では限定的。

読む前に押さえておきたいこと

  • Pythonでのデータ操作・配列演算(NumPy)の基礎
  • 機械学習の基本概念(損失関数、最適化、ニューラルネットワーク)を一通り学んだ経験
  • conda/pip による仮想環境管理の操作経験(依存関係が複雑なためトラブルシューティング能力が必要)

学習のコツ

  • 7章(生成モデル・LLMとの融合)を先に読んで自分のゴールを確認してから1章へ戻ると、各アルゴリズムの位置づけが把握しやすい
  • 2章のNEAT実装はコードを実際に動かすことが理解の近道。Google Colabでも動作するが、Apple Siliconの場合は環境構築の記事(katokin)を事前に参照しておく
  • Novelty Search(3章)とQuality Diversity(4章)は対比関係にある。どちらが手持ちの問題に合うかを考えながら読むと選択基準が身につく
  • 共進化(5章)とPOET(6章)は実験環境が複雑になるため、2・3・4章で基礎実装に慣れてから着手することを推奨
出版社による内容紹介

生物の進化に着想を得た新しい「発散型」の機械学習アルゴリズムを解説! 深層学習を含む多くの機械学習アルゴリズムは、1つの最適化を求める「収束型」のアルゴリズムであるのに対し、近年注目を集めているのが人工生命の研究分野で開発され、従来の探索方法では得られなかったような、多様な解が求められる「発散型」アルゴリズムです。本書はこの発散型アルゴリズムに焦点を当て、進化計算の基礎となる集団的探索の考え方、既存の収束型アルゴリズムとの違い、そして、有用性について説明します。最近注目を浴びるNovelty SearchやQuality Diversity、MC、POETといった新しいアルゴリズムも取り上げます。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。