分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。
y の目標値がまだ遠い時には、ベイズ最適化によって次の x の候補の設計と実験等を繰り返し行うことによって、y の目標値を達成する分子・材料・プロセスを実現する x を探索します。
y が複数ある多目的最適化の時には、獲得関数を工夫することで対応可能です。
y が複数ある中で、y ごとに目標値への到達度や到達のしやすさが異なることもあります。ある y について目標値に到達するのは簡単で、すでに目標値に到達していたり、x を少し調整するだけで簡単に目標値を達成できたりする状況です。この時に獲得関数として、例えば y ごとに目標範囲に入る確率を掛け算した値 (の対数値) を用いると、その獲得関数の値が大きい x の候補というのは、目標値を簡単に達成可能な y の確率を重視する候補 (この確率が 1 の候補) ばかりが選ばれてしまい、他の y の確率を上げられる x が設計されないこともあります。
この際、もちろん y ごとに重みを与えて (簡単な y には小さい重み、困難な y には大きな重み)、獲得関数を計算することもできますが、適切な重みを決める必要があり、重みの決定はケースバイケースで試行錯誤や経験が重要になってきます。
そこで、目標値を簡単に達成可能な y については獲得関数の計算から外すことを考えます。簡単な y については、x の多くの候補で目標値を達成できると考えられますので、まずたくさんの x の候補から簡単な y を予測し、予測値が目標を達成している x の候補のみ選択します。もちろん、ここで y の予測値の分散も考慮することも考えられますが、y はこれだけではなく、むしろ目標達成が困難な y が後に控えていますので、ここでは x の候補の多様性を考えて、y の予測値を制約条件として用いて、予測値が目標値に入っている x の候補を全て選択します。
ここで選択された x の候補に対して、それ以外の y で (予測値の分散も考慮した) 獲得関数を計算し、獲得関数の値が大きい x の候補を最終候補とします。このようにすることで簡単な y に対してはそれを満たすと考えられる x の候補群を確保でき、さらに他の y を達成する確率の高い x の候補を選択できます。
ベイズ最適化で多目的最適化を行う場合はぜひご検討ください。
以上です。
質問やコメントなどありましたら、X, facebook, メールなどでご連絡いただけるとうれしいです。