Evolutionary Algorithms
進化計算が自然淘汰を利用してAI問題を解決する方法を解説します。Ultralytics YOLO26のハイパーパラメータを最適化し、モデルのパフォーマンスを強化する方法を学びましょう。
進化的アルゴリズム (EA) は、自然淘汰や遺伝の生物学的原則を模倣して複雑な計算問題を解決する、強力な最適化アルゴリズムのファミリーです。確率的勾配降下法 (SGD) のような、微分ベースの計算に依存する従来の数学的手法とは異なり、EAは広大で複雑、あるいは十分に理解されていない探索空間をナビゲートするように設計されています。EAは、時間の経過とともに競合、繁殖、突然変異を行う潜在的な解の集団を維持することで動作します。「最適」な解を解析的に決定することが困難な人工知能 (AI) のタスクにおいて、このアプローチは特に効果的であり、システムが反復的に進化して最適な成果に到達することを可能にします。
生物学的なインスピレーションと中核となるメカニズム#
進化的アルゴリズムの機能は、適者生存の概念に基づいています。このプロセスは、自然の遺伝的進化を模倣するように設計された演算子のサイクルを経て進行し、候補となる解を徐々に洗練させていきます。
-
初期化: システムはランダムな候補の初期集団を生成します。機械学習 (ML) の文脈では、これらの候補はモデルパラメータの異なるセットを表している場合があります。
-
適応度評価: 各候補は、適応度関数と呼ばれる特定の目的に対してテストされます。コンピュータビジョン (CV) モデルの場合、この関数は通常、精度や平均適合率 (mAP)などの指標を評価します。
-
選択: 適応度スコアが高い候補が親として確率的に選択され、成功した特性が次世代に確実に引き継がれるようにします。
-
繁殖と変動: 新しい解は、交叉(2つの親から形質を再結合する)と突然変異(ランダムな変化を導入する)を通じて作成されます。この遺伝的多様性の導入は、アルゴリズムが局所最適にとどまるのを防ぎ、大域的最大値に向けて探索空間を探索するのに役立つため、極めて重要です。
AIにおける現実世界の応用#
進化的アルゴリズムは汎用性が高く、ディープラーニング (DL) およびエンジニアリング内のさまざまなドメインに正常に応用されています。
ハイパーパラメータの自動調整#
EAの最も実用的な応用の1つがハイパーパラメータチューニングです。現代のニューラルネットワークでは、学習率、重み減衰、モメンタムなど、パフォーマンスに大きな影響を与える数十のパラメータを設定する必要があります。EAは、設定を進化させることで、この面倒な試行錯誤のプロセスを自動化できます。たとえば、Ultralytics ライブラリの tune() メソッドは、遺伝的アルゴリズムを使用して、カスタムデータセットにおける YOLO26 モデルに最適なトレーニング用ハイパーパラメータを発見します。
ニューラルアーキテクチャ探索(NAS)#
EAは、神経アーキテクチャ探索 (NAS) の基礎となります。人間のエンジニアがニューラルネットワーク (NN) の構造を手動で設計する代わりに、進化的アルゴリズムがアーキテクチャを「成長させる」ことができます。レイヤー、ニューロン、接続のさまざまな組み合わせをテストし、速度と精度のバランスをとる効率的な構造を進化させます。この技術により、EfficientNet などの高効率なバックボーンが作成され、特定のハードウェア制約に合わせて最適化されています。
進化計算と群知能の比較#
どちらも自然からインスピレーションを得た最適化戦略ですが、EAと群知能 (SI) を区別すると理解しやすくなります。
- 進化計算: 世代交代に依存します。個体(解)は生存し、適応度に基づいて繁殖し、やがて死亡して子孫と置き換わります。主な推進力は、突然変異や交叉といった遺伝的オペレーターです。
- 群知能: 鳥の群れや魚の群れなど、グループ内の社会的相互作用を模倣します。粒子群最適化 (PSO) などのアルゴリズムでは、世代交代を行うことなく、探索空間内を移動し、自身の経験や近傍の成功に基づいて位置を調整するエージェントの集団が関与します。
Ultralyticsによる最適化の実装#
実践者は遺伝的アルゴリズムを直接活用して、物体検出モデルを最適化できます。Ultralytics の tune メソッドは、進化プロセスを実行して複数の世代にわたってハイパーパラメータを突然変異させ、検証データで最高のパフォーマンスを発揮する設定を自動的に特定します。
from ultralytics import YOLO
# Load the standard YOLO26 model
model = YOLO("yolo26n.pt")
# Run hyperparameter tuning using a genetic algorithm approach
# The tuner evolves parameters (lr, momentum, etc.) over 30 generations
model.tune(data="coco8.yaml", epochs=10, iterations=30, plots=False)この自動化された洗練により、開発者は手動での推測から脱却することができます。規模を拡大しているチームにとって、これらの実験の管理とモデルパフォーマンスの進化の追跡は、トレーニング指標を視覚化しモデルデプロイを容易にする Ultralytics Platform を使用して効率化できます。






