既存のデータセットがある場合に実験計画法で今後の実験条件を求める方法

適応的実験計画法の話です。

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

 

分子設計や材料設計やプロセス設計において、まだデータセットがないとき、最初に実験やシミュレーションするための分子・合成条件・製造条件・プロセス条件といった説明変数 x の値を実験計画法により決めます。その条件で実際に実験したりシミュレーションしたりして、目的変数 y の値を獲得します。得られた y と x のデータセットを用いて、数理モデル y = f(x) を構築します。構築されたモデルに、まだ実験やシミュレーションをしていない x の値を入力し、y を予測します。y の予測値やベイズ最適化における獲得関数の値が良好な x の値で、次の実験・シミュレーションをします。

ベイズ最適化(Bayesian Optimization, BO)~実験計画法で使ったり、ハイパーパラメータを最適化したり~
ガウス過程による回帰をうまく使って、実験計画法における新しい実験候補を探索したり、回帰モデルやクラス分類モデルのハイパーパラメータ (学習では求まらないため事前に決めるべきパラメータ) を決定する方法が、ベイズ最適化 (Bayesian O...

 

実験結果・シミュレーション結果が得られたら、それをデータセットに追加して再度モデルを構築します。以上のような、モデル構築・次の条件の提案・実験やシミュレーションを繰り返すことで、y が目標値を持つような x の値を最適化します。

実験計画法で最初の条件を決めることなく、すでにデータセットがあるとき、基本的にはそのデータセットを使ってモデルを構築し、そのモデルで次の x の値を設定し、実験・シミュレーションをするというサイクルに回すのが良いと思います。すでに y の値は得られているわけですから、実験計画法のように x の値だけで次の実験条件などを決めるのではなく、y の値も一緒に活用して決めた方が良い、という考え方です。

ただ一つ問題なのは、既存のデータセットにおいて値が固定された x があることです。既存のデータセットでは値を固定していた一方で、y に影響があるかもしれないということで、新たに値を振りたい x があるときは、既存のデータセットからモデル構築・次の条件の提案・実験やシミュレーションのサイクルを回し始めることは難しいです。分散 0 の x では、その y に対する影響がモデルに考慮されないためです。

そこで実験計画法を用いて次の実験条件・シミュレーション条件を決めることになります。ただ既存のデータセットがあり、そこでも (固定されていない) x の値はばらつきがあるため、それを考慮した上で、例えば D 最適基準の値が大きくなるような方法で新たな実験条件・シミュレーション条件を決めたほうが効果的です。

そこで、既存のサンプルと追加で実験・シミュレーションするサンプルを縦に合わせて、D 最適基準の値を計算します。もちろん追加で実験するサンプルにおいては、すべての x の値を振ります。例えば追加で 10 サンプルの実験をしたいときは、既存のサンプル + 10 のサンプルで D 最適基準を計算し、この値が最も大きい 10 サンプルを選択します。ここで得られた 10 サンプルを実験し、そのデータセットを既存のデータセットに追加してモデルを構築します。その後は、モデル構築・次の条件の提案・実験やシミュレーションのサイクルを回します。

以上のようにして、ぜひ適応的実験計画法でより良い分子・材料・プロセスを研究・開発していただければと思います。

 

以上です。

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

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