Slide 1

Slide 1 text

© 2024 Wantedly, Inc. 進化計算ライブラリ DEAP の紹介 みんなのPython勉強会 #107 Aug. 22 2024 - chimuichimu

Slide 2

Slide 2 text

自己紹介 © 2024 Wantedly, Inc. 名前: Ichimura Chiaki 仕事: データサイエンティスト@ウォンテッドリー 興味: 推薦システム、サウナ、犬 @chimuichimu1

Slide 3

Slide 3 text

目次 © 2024 Wantedly, Inc. ● 進化計算アルゴリズムとは ● DEAP とは ● DEAP による遺伝的アルゴリズムの実装

Slide 4

Slide 4 text

進化計算アルゴリズムとは © 2024 Wantedly, Inc. ● 生物の進化の仕組みを模倣して問題解決をする計算手法 ● アルゴリズムの例 ○ 遺伝的アルゴリズム、進化戦略、遺伝的プログラミング、など ● 応用領域 ○ 組合せ最適化、スケジューリング、制御、ゲームAI、など

Slide 5

Slide 5 text

現世代 例:遺伝的アルゴリズムのイメージ © 2024 Wantedly, Inc. 1 2 N - 1 N ・・・ 適合度の計算 遺伝的操作 選択 交叉 突然変異 次世代 1 2 ・・・ N - 1 N 最大世代数まで繰り返し

Slide 6

Slide 6 text

DEAP (Distributed Evolutionary Algorithms in Python) とは © 2024 Wantedly, Inc. ● 進化計算アルゴリズムのフレームワークを提供するPythonライブラリ ● 特徴 ○ 複数の進化計算アルゴリズムの提供 ○ アルゴリズムのカスタマイズ性 ○ 分散環境での並列処理のサポート ● GitHub Star 数 ○ 5.7 k https://github.com/DEAP/deap

Slide 7

Slide 7 text

DEAP による遺伝的アルゴリズムの実装イメージ © 2024 Wantedly, Inc. 評価関数の定義 タスクと個体の定義 遺伝的操作の定義 アルゴリズムの実行 https://deap.readthedocs.io/en/master/examples/ga_onemax_short.html

Slide 8

Slide 8 text

DEAP による遺伝的アルゴリズムの実装イメージ © 2024 Wantedly, Inc. https://deap.readthedocs.io/en/master/examples/ga_onemax_short.html 例:OneMax 問題 タスク: [0, 1, 1, 1, 0]のようなバイナリの数列の和を 最大化する問題 コードの実行結果: 0-5世代 96-100世代 理論値(=100) に近い値を達成

Slide 9

Slide 9 text

まとめ © 2024 Wantedly, Inc. ● 進化計算アルゴリズムは最適化などの問題に用いられる ● 進化計算のフレームワークを提供する DEAP を紹介 ● DEAP を使うことで遺伝的アルゴリズムなどを容易に実装でき、自分のニーズに 合わせた進化的アルゴリズムが構築可能