分子設計・材料設計・プロセス設計において、ベイズ最適化により分子の化学構造や、材料の合成条件・製造条件や、プロセス条件などを最適化します。
ガウス過程回帰により、分子記述子・合成条件・製造条件・プロセス条件などの特徴量 x と分子や材料の物性・活性・特性 y との間で回帰モデル y=f(x) を構築し、モデルに基づいて計算される獲得関数の値が最大となる x の候補を選びます。そして、選ばれた候補で実際に実験やシミュレーションを行い、その結果をふまえてガウス過程回帰モデルを再構築します。以上の、モデルに基づく次の x の候補の選択、実験やシミュレーション、モデルの再構築を繰り返すことで、効率的に最適な解にたどりつけます。
ベイズ最適化は x の数が大きいときに向かない、と言われたりします。私もその通りとは思いますが、その真の意味について少し誤解されている方もいらっしゃるかと思いますので、この辺りについて説明します。
一般的に x が多くなることで、ベイズ最適化をするときに何が問題かというと、最適化する上で考えなければならない候補の総数が、x の数に応じて指数関数的に増えることです。
例えば x が二つでそれぞれの候補が 10 個であるとき、考えなければならない候補の総数は 10×10 = 100 個しかありませんが、x の数が 50 になると、それぞれの候補が 10 のとき、考えなければいけない候補の総数は 1050 になります。1050 というと、およそ地球上の原子の総数と同じなので、地球上のすべての原子の中から一つ最適なものを見つけるのはそりゃ難しいよね、となります。
もちろん、分子設計・材料設計・プロセス設計において、考えうる候補の中の the best の解を探索する必要があることはほとんどなく、the best でなくても y が目標を満たせば OK ということがほとんどですので、1050 個からたった1つを見つけるような難しさはありませんが、x が多くなるほど探索範囲は非常に大きくなります。
直接的逆解析法であれば 1050 個すべてを予測する必要はありませんが
とにかく、x が多くなると探索空間が膨大になる問題は、ベイズ最適化に限らず他のすべての○○最適化にもつきまとう問題です。
x の数を減らせるなら、それに越したことはありません。しかし、探索空間が広くなること以上に優先的に考えなければならないこととして、ベイズ最適化において構築するガウス過程回帰モデルの予測精度があります。重要な x を削除してしまい、モデルの予測精度が低下することがあっては、たとえ探索空間を狭くできたとしても、ベイズ最適化はうまくいきません。そのため x の数を減らすことよりもモデルの予測精度を上げることに重きをおき、y を説明するために少しでも必要な情報があれば x として考慮した方がよいでしょう。
続いて化学構造に対してベイズ最適化をするときのお話です。合成条件や製造条件、プロセス条件であれば、それらが x になり、x の値がそのまま候補に直結しますが、化学構造を最適化するときは、候補である化学構造から分子記述子 x を計算することになりますので、合成条件・製造条件・プロセス条件における x の考え方と少し異なります。
分子設計における x は解析者が自由に計算できますので、100 個でも 1000 個でも計算できます。ただ、x の数は化学構造である候補の総数とは無関係です。x をいくつ計算しても、それとは関係なく化学構造の候補はあります。100万の化学構造の候補があるときに、それらの化学構造に対して記述計算をすることになります。x の数は、ベイズ最適化のしやすさに関係ありません。
合成条件・製造条件・プロセス条件の場合は、基本的に x の間の相関が小さくなるように、最初の候補を設定します。ただ分子記述子の場合は、例えば分子量と水素原子以外の分子量のように、多くの場合で x の間に (高い) 相関がある x が存在します。このような相関関係はガウス過程回帰モデルを構築するときに考慮する必要があります。
以上のように、x が多いときも、堂々とベイズ最適化を使用するとよいと思います。少なくとも適当に (ランダムに) 候補を選ぶ場合よりも効率的になります。ぜひ分子設計・材料設計・プロセス設計のいろいろな問題に対して、ベイズ最適化で効率的な探索をしましょう!
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。