進化的アルゴリズム
進化的アルゴリズムが、ハイパーパラメータの調整からロボティクスまで、自然に着想を得た戦略を使用してAIおよびMLソリューションを最適化する方法をご紹介します。
進化的アルゴリズム(EA)は、人工知能(AI)探索のロバストなクラスである。
人工知能
自然淘汰と遺伝学の生物学的原理にインスパイアされた、頑健な人工知能(AI)探索技術の一群である。従来の数学的手法とは異なり
微分計算に依存する従来の数学的手法とは異なり、これらのアルゴリズムは複雑な最適化問題を解くために進化の過程をシミュレートする。
最適化問題を解く。このアルゴリズムでは
EAは、競争し、繁殖し、変異する潜在的な解の集団を維持することで、「最良の」答えが未知である広大で険しい探索空間をナビゲートすることができる。
最良の」答えが未知であったり、解析的に導き出すことが不可能であったりするような、広大で険しい探索空間をナビゲートすることができる。このため、EAは特に
機械学習(ML)のタスクにおいて特に有用である。
自動化されたモデル設計から複雑なスケジューリングに至るまで、様々なタスクにおいて特に有用である。
進化の核心メカニズム
進化的アルゴリズムの機能は、適者生存の概念を反映している。
適者生存このプロセスは
は、生物学的な演算子のサイクルを通じて、候補となる解のセットを繰り返し改良する:
-
初期化:システムは問題に対する潜在的な解のランダムな集団を生成する。
-
適性評価:各候補は定義された
に対してテストされます。コンピュータビジョン
コンピュータビジョン(CV)では、この関数はしばしば
モデルの精度または平均平均精度
mAP)を測定します。
-
選考:より高い適合度を持つ候補が次の世代の親として選択される。
世代となる。
-
再生産とバリエーション:新しい解決策は
新しい解を生み出す。
と突然変異(ランダムな変化を導入
変化)を用いて新しい解を生み出す。突然変異は遺伝的多様性を導入するため非常に重要であり、アルゴリズムが大域的最適解を見つけずに局所的最適解にはまり込むのを防ぐ。
局所最適にはまり込まないようにするためである。
AIの実世界での応用
進化的アルゴリズムは、システムのパフォーマンスを向上させるために、影響力の大きいさまざまな領域で使用される汎用性の高いツールです:
-
ハイパーパラメータの調整:ハイパーパラメーターのチューニング
ディープラーニング(DL)における
ディープラーニング(DL)で最も一般的なアプリケーションの1つは、学習
設定の最適化です。手動で
学習率、運動量、ウェイト減衰の値を手動で推測する代わりに、EAはモデルのパフォーマンスを最大化するハイパーパラメータセットを進化させることができる。
モデルの性能を最大化するハイパーパラメータのセットを進化させることができる。その
Ultralytics YOLO11トレーニングパイプラインには、遺伝的アルゴリズムベースのチューナー
アルゴリズムに基づくチューナーがあり、このプロセスを自動化している。
-
ニューラル・アーキテクチャ・サーチ(NAS):EAはニューラルネットワークの設計を自動化する
ニューラルネットワークの設計を自動化する。ネットワーク構造(層
ネットワーク構造(層、接続)を遺伝暗号として扱うことで、アルゴリズムは、計算リソースが限られているエッジAIデバイスに適した、非常に効率的なアーキテクチャを進化させることができる。
を進化させることができる。
を進化させることができる。
-
ロボット工学と制御:ロボットと制御
ロボット工学におけるAIでは、EAは制御方針と動作ゲートを進化させる。
動作を進化させる。これにより、自律型ロボットは、何世代もの移動戦略をシミュレートすることで、動的な環境のナビゲーション方法を学習することができる。
これにより、自律型ロボットは、何世代もの移動戦略をシミュレートすることで、動的な環境のナビゲーション方法を学習することができる。
-
環境の最適化:農業AI
農業AIなどの分野では、EAが資源配分の最適化を支援する。
灌漑スケジュールや作物の配置など、資源配分の最適化を支援し、無駄を最小限に抑えながら収穫量を最大化する。
Python最適化を自動化する
実務家は、進化的アルゴリズムを直接活用することができる。 ultralytics パッケージで
に最適なトレーニング構成を見つける。
オブジェクト検出 モデル。
tune メソッドは、遺伝的アルゴリズムを用いて、数世代にわたってハイパーパラメータを変異させる。
from ultralytics import YOLO
# Load a standard YOLO11 model
model = YOLO("yolo11n.pt")
# Run hyperparameter tuning using a genetic algorithm approach
# The tuner evolves parameters like lr0, momentum, and weight_decay
# 'iterations' defines how many evolutionary generations to run
model.tune(data="coco8.yaml", epochs=10, iterations=30, optimizer="AdamW", plots=False)
関連概念の区別
これらのテクニックを効果的に適用するには、進化的アルゴリズムを他の最適化戦略や学習戦略と区別することが役立ちます。
と学習戦略を区別するのに役立つ:
-
対確率的勾配降下法(SGD):標準的な学習方法
確率的勾配降下SGD(SGD)
は、重みを更新するために
の導関数を計算して重みを更新します。EAは
つまり、勾配が利用できない微分不可能な問題や離散的な問題を最適化することができる。
は利用できない。
-
対群知能:どちらも生物学にヒントを得たものだが、群知能(Ant Colony Intelligence)とは異なる、
群知能(例:アントコロニー
最適化など)は、一つの寿命の中で相互作用する分散型エージェントの集団行動に焦点を当てている。これに対して
対照的に、EAは解の世代交代に依存している。
強い親から生まれた子孫を優先して、弱い候補は捨てられる。
-
対強化学習:
強化学習(RL)は、エージェントが環境との試行錯誤的な相互作用を通じて、報酬信号を最大化するように学習することを含む。
エージェントは、報酬信号を最大化するために、環境との試行錯誤的な相互作用を通じて学習します。EAは
EAもまたポリシーを最適化することができるが、EAは継続的なエージェントと環境の相互作用のサイクルを通じて学習するのではなく、ポリシーパラメータの母集団を進化させることによってそれを行う。
継続的なエージェントと環境の相互作用のサイクルによって学習するのではなく、政策パラメータの母集団を進化させることによって行う。
モデルのパフォーマンスを向上させるためのさらなる洞察については、以下のガイドをご覧ください。
モデルトレーニングのヒントと
をご覧ください。