多目的最適化

AlphaEvolve は、複数の同時目標に対して最適化できます。AlphaEvolve は多目的最適化をサポートしていますが、個々の目標の数は、人間が結果を分析する際に把握できる数程度に制限してください。

多目的検索戦略を構築するには、次のアプローチを使用します。

  1. 結合目的関数: 多目的最適化のアプローチの 1 つは、結合目的関数を活用することです。

    obj = w1 * in_stock_rate - w2 * inventory_level
    
  2. 1 つの目標を制約として扱う: もう 1 つのアプローチは、1 つの目標を制約として扱うことです。これは、1 つの指標を最適化しながら、他の指標がしきい値を上回ったり下回ったりしないようにする場合に便利です。

    obj = in_stock_rate` # Optimize this
    
    # With: inventory_level <= budget (enforced as penalty where if inventory
    # level exceeds budget then a high negative value is returned)
    

    このアプローチでは、パレートフロントをトレースするために、制約レベルを変えて複数のテストを実施する必要がある場合があります。

  3. 辞書に個々の指標として異なる指標を含めます。このアプローチに関連する主な考慮事項は次のとおりです。

    • 多目的最適化は 3 ~ 5 個の指標に限定します。指標が多すぎると、パレート比較が失敗します。ほとんどすべてのプログラムが、少なくとも 1 つの指標で優位になります。MAP Elites は、重要でない指標やノイズの多い指標を最適化する親の進化にほとんどの時間を費やします。集計、選択、PCA を使用して次元を削減し、3 ~ 5 個の有意義な指標にします。

    • ベンチマークごとの個々のスコアは、過学習を引き起こす可能性があります。5 つのベンチマークの個々のスコアを渡すと、一部で過学習が発生する可能性がありますが、集計された合計のみを渡すと、見えないベンチマークへの汎化が向上します。汎化が重要な場合は、各ベンチマークを個別に最適化するのではなく、スコアを集計してから AlphaEvolve に渡すことを検討してください。

この機能を有効にすると、AlphaEvolve はパレートフロンティアを追跡し、MAP-Elites は各指標に最適なプログラムを保持します。ただし、結合された加重スコアを使用すると、推論とデバッグが簡単になります。