用語集

進化的アルゴリズム

ハイパーパラメータのチューニングからロボット工学まで、進化的アルゴリズムが自然から着想を得た戦略を用いてAIやMLのソリューションを最適化する方法をご覧ください。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

進化的アルゴリズムは、機械学習と人工知能のサブセットであり、自然淘汰と進化のプロセスに着想を得ている。これらのアルゴリズムは、何世代にもわたって候補解の母集団を繰り返し改善することで、複雑な最適化問題を解くために使用される。生物学的進化を模倣し、選択、突然変異、クロスオーバーなどのメカニズムを用いて、問題に対する解を進化させる。

進化的アルゴリズムの中核概念

進化的アルゴリズムの中核には、生物学から借用したいくつかの重要な概念がある:

  • 母集団:手元の問題に対する解の候補の集合で、ビット列や実数で表現されることが多い。この初期母集団は、ランダムに生成することも、ヒューリスティックを用いて播種することもできる。
  • フィットネス関数:この関数は、母集団内の各解答候補を評価し、その解がどの程度問題を解決できるかを示す「フィットネス」スコアを割り当てる。進化的アルゴリズムの目標は、このフィットネス・スコアを最大化または最小化することである。
  • 選択:フィットネスに基づいて、いくつかの候補解が選ばれ、次の世代の「親」となる。適者生存(survival of the fittest)」を模倣して、フィットネススコアが高い解が選択される可能性が高くなる。ルーレット・ホイール選択やトーナメント選択など、さまざまな選択方法がある。
  • クロスオーバー(組み換え):親同士が遺伝情報を交換して新しい子孫を作り、生物学的な生殖をシミュレートする。このプロセスでは、異なる解の特徴を組み合わせることで、より優れた解を生み出します。一般的なクロスオーバー技法は、1点クロスオーバーまたは2点クロスオーバーである。
  • 突然変異:多様性を維持し、解空間の新しい部分を探索するために、ランダムな変化(突然変異)が子孫に導入される。これは早期収束を防ぎ、局所最適からの脱出を助ける。ビットフリップ突然変異やガウス突然変異が典型的な例である。
  • 世代:選択、クロスオーバー、突然変異の反復プロセスが何世代にもわたって繰り返される。各世代において、母集団はより良い解に向かって進化する。アルゴリズムは通常、一定の世代数が経過するか、満足のいく解が見つかった時点で終了する。

これらの構成要素はループの中で連動する。初期集団からスタートし、アルゴリズムは各解の適合度を評価し、最も適合度の高い個体を選択し、繁殖させ(交叉)、ランダムな変異を導入し(突然変異)、新しい世代を形成する。このサイクルを繰り返し、集団の平均フィットネスを徐々に向上させ、理想的には最適解または最適解に近い解を見つける。

AIにおける進化的アルゴリズムの応用

進化的アルゴリズムは汎用性が高く、人工知能や機械学習の幅広い問題に応用されている:

  • ハイパーパラメータのチューニング:機械学習では、モデルの性能はハイパーパラメータに大きく依存する。Evolutionary Algorithms は、ハイパーパラメータ空間を効率的に探索し、Ultralytics YOLOv8 のようなモデルの最適な構成を見つけ、Mean Average Precision (mAP) のような指標を改善することができる。Ray Tuneのようなツールは、複雑なハイパーパラメータ・ランドスケープをナビゲートするために進化的戦略を活用し、このプロセスを自動化するために使用することができます。
  • ニューラル・アーキテクチャ・サーチ(NAS):効果的なニューラル・ネットワーク・アーキテクチャの設計には時間がかかり、専門知識が必要になることがあります。ニューラル・アーキテクチャ・サーチ(NAS)は、進化的アルゴリズムを使用して設計プロセスを自動化し、さまざまなネットワーク構造と接続を探索して、特定のタスクに対して高いパフォーマンスを達成するアーキテクチャを発見します。例えば、YOLO-NASモデルはNAS技術の産物であり、最先端の物体検出能力を提供する。
  • 特徴選択とエンジニアリング:進化的アルゴリズムは、データセットから最も関連性の高い特徴を選択し、モデルの効率を向上させ、オーバーフィッティングを低減するために使用することができます。また、モデルの精度を向上させる、より情報量の多い新しい特徴を作成するための特徴エンジニアリングにも使用できます。
  • ロボット工学と制御:ロボット工学において、進化的アルゴリズムはロボット設計、制御システム、運動計画を最適化することができる。例えば、複雑な環境をナビゲートしたり、特定のタスクを実行するロボットのコントローラを進化させるために使用することができ、ロボット工学とオートメーションの進歩に貢献します。
  • 最適化問題:機械学習だけでなく、進化的アルゴリズムは、スケジューリング、ルーティング、リソース割り当てなど、さまざまな最適化問題を解くのに効果的です。特に、探索空間が大きく複雑で、従来の最適化手法が苦戦を強いられるような場合に有効です。

進化的アルゴリズムと勾配ベースの手法の比較

機械学習では、進化的アルゴリズムと勾配降下のような勾配ベースの手法の両方が使われるが、そのアプローチは大きく異なる。勾配ベースの手法は、損失関数を最小化する方向にモデルのパラメータを反復的に調整するために、勾配を計算することに依存する。ニューラルネットワークの学習など、勾配を計算できる問題では非常に効率的である。

一方、進化的アルゴリズムは微分を必要としない最適化手法です。勾配情報を必要としないため、勾配の計算が困難または不可能な問題や、目的関数が微分不可能または不連続な問題に適している。また、勾配ベースの手法では困難な、より広い探索空間の探索や局所最適からの脱出にも効果的である。しかし、進化的アルゴリズムは、特に高次元問題の場合、多くの世代にわたって大規模な母集団を評価する必要があるため、計算コストが高くなる可能性がある。

結論

進化的アルゴリズムは、AIや機械学習における複雑な最適化問題を解くための強力で柔軟なアプローチを提供します。自然の進化に着想を得た進化型アルゴリズムは、特に従来の最適化手法では不十分なシナリオにおいて、広大な解空間を探索し、効果的な解を見出すための強固なフレームワークを提供します。AIの進歩が進むにつれ、進化的アルゴリズムは、機械学習モデルの最適化から複雑なシステムの設計まで、さまざまな領域で困難な問題に取り組む上で、ますます重要な役割を果たすことが期待されています。関連するAIの概念については、総合的なUltralytics 用語集をご覧ください。

すべて読む