ベイズ最適化は、予測値と実測値を合わせようとはしていない

分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。

特に y の目標値が既存のデータセットにおける y の値から遠いときは、ベイズ最適化を用いて y の値を向上させることを試みます。

[無料公開] 「Pythonで学ぶ実験計画法入門 ベイズ最適化によるデータ解析」 の “まえがき”、目次の詳細、第1・2章
2021 年 6 月 3 日に、金子弘昌著の「Pythonで学ぶ実験計画法入門 ベイズ最適化によるデータ解析」が出版されました。 講談社: Amazon: Amazon(Kindle): === 出版して約2年経過した 2023 年 4 月...

 

具体的には、ガウス過程回帰モデルの構築、獲得関数の値が大きい実験条件のサンプルの選択、そのサンプルを用いた実験を繰り返します。

ベイズ最適化の途中で、縦軸をガウス過程回帰モデルによる y の予測値、横軸を y の実測値とするプロットをして、予測値と実測値と合ったかどうか検証をする人がいますが、ベイズ最適化においては意味がありませんのでご注意ください。ベイズ最適化によって提案された実験条件のサンプルの予測値と実測値の間の誤差は、ベイズ最適化の検証方法としては適切ではありません。なぜなら、ベイズ最適化では y の予測値が実測値と合うようなサンプルを提案しているわけではないためです。ベイズ最適化の目的は、y の予測値と実測値を合わせることではありません。モデル構築、実験条件の提案、実験を繰り返すなかで、少ない回数で y の目標値を達成することが目的です。

ベイズ最適化では、次の実験条件として、獲得関数の値が大きくなる実験条件が選択されます。特に y の目標が高いときには、x の外挿領域ほど獲得関数の値が大きくなるため、ベイズ最適化では基本的に x の外挿を探索することになります。外挿領域は y の予測値の信頼性は低いため、基本的に予測値と実測値が合いません (ある可能性も 0 ではありませんが)。ベイズ最適化は、実測値と予測値が合わないような外挿領域を積極的に、そして効率的に探索することがメリットであり、予測時と実測値を合わせようとはしていません。そのため、新たな実験条件の探索結果として、y の実測値 vs. 予測値プロットを見て、合っている、もしくは合っていないからといって、ベイズ最適化の評価には何ら繋がらないわけです。

逆にいえば、y の実測値 vs. 予測値プロットで評価したい場合には、外挿を探索するベイズ最適化ではなく、他の、モデルの適用範囲と組み合わせた逆解析で探索するようにしましょう。

では、どのようにベイズ最適化の評価をすればよいのでしょうか。1つは、既存のデータセットを用いてトレーニングデータとテストデータに分割し、トレーニングデータでガウス過程回帰モデルを構築し、テストデータを予測したり、ダブルクロスバリデーションで予測したりした結果を用いた評価です。これにより、ベイズ最適化で用いられるのガウス過程回帰モデルの予測性能を評価できます。

もう1つは、ベイズ最適化により目標達成までにかかった実験回数を低減できたかです。もちろん、実験でこれを評価するためには、ベイズ最適化を使わずに実験を繰り返す場合と、ベイズ最適化に基づいて実験を繰り返す場合との比較をしなければならず、実際の実験系では効果的でありません。そのため、こちらの評価をする場合は、何らかのシミュレーションを組み合わせるとよいでしょう。

 

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

タイトルとURLをコピーしました