データ化学工学研究室物語 第I部 第10章 欲しい性質から考える

データ化学工学研究室物語

第I部 研究室配属前夜のデータ化学工学

研究室配属前の学部三年生が、AI・機械学習を化学・化学工学の研究に使う考え方を学ぶ。

第10章 欲しい性質から考える

 

新人トレーニングの九週目に与えられた課題は、物性を予測する向きを、反対側から眺めることだった。

virtual_polymer_candidates.csv を共有します。
各候補について、二酸化炭素透過係数と二酸化炭素・窒素選択性を予測してください。
各予測モデルの AD 内か AD 外かも判定してください。
目標を満たす候補の中で、予測値は特に良いが AD 外の候補と、予測値は少し低いが AD 内の候補を比較してください。
次に検討する候補を、理由とともに提案してください。

第9章の報告会が終わった日の夕方、先輩から slack に届いた課題を、遥は研究室の席でもう一度読んだ。

この候補の性質は何か。
欲しい性質をもつ候補はどれか。

第7章から第9章までは、与えられた高分子膜の構造記述子と製膜温度をモデルへ入力し、その候補がもつと考えられる物性を予測してきた。

今回は、先に欲しい物性を決め、多数の候補の中から、その目標を満たしそうなものを探す。

予測に使うモデルは同じでも、問いの向きが違っていた。

遥は virtual_polymer_candidates.csv を開いた。

candidate_0001。
candidate_0002。
candidate_0003。

縦には、5,000 個の仮想的な高分子候補が並んでいた。

横には、繰り返し単位の SMILES、121 個の構造記述子、製膜温度がある。二酸化炭素透過係数と選択性の実測値はない。まだ実験されていない候補だからだった。

同じ slack のスレッドに、今回の練習で用いる目標値も示されていた。

二酸化炭素透過係数:1,000 Barrer 以上。
二酸化炭素・窒素選択性:25 以上。

ただし、この値は、あらゆる用途で高性能な膜を決める普遍的な基準ではない。今回の仮想的な設計課題で、候補を比較するために置かれた目標だった。

実際の用途では、分離する混合気体、温度、圧力、必要な処理量、膜の耐久性、製造コストなどによって、望ましい性能は変わる。

遥は、目標値をコードの最初に書いた。

target_co2_permeability = 1000
target_co2_n2_selectivity = 25

数値を後から変えて、都合よく候補を増やさないようにするためだった。

もちろん、目標値を変えた場合の候補数を調べることには意味がある。ただし、その場合は、最初に決めた目標と、追加で行った感度分析を区別して報告する必要がある。

遥は、まず二酸化炭素透過係数のモデルを準備した。

第8章で行った構造グループ分割とダブルクロスバリデーションの手順を使い、近傍数を選び、最終的には利用できる実測データすべてでモデルを構築する。

選択性についても、同じ考え方で別の回帰モデルを構築した。

ただし、選択性が欠損していたサンプルは、そのモデルの構築には使えない。二つのモデルでは、トレーニングサンプルの集合が少し異なっていた。

そのため、二酸化炭素透過係数モデルでは AD 内でも、選択性モデルでは AD 外になる候補があり得る。

モデルが直接予測する値は、これまでと同じように対数へ変換された物性だった。遥は、候補を比較する表では、予測値を元の単位へ戻した。

estimated_log_p = permeability_model.predict(autoscaled_candidates)
estimated_co2_permeability = 10 ** estimated_log_p

選択性についても同様に、対数値の推定後に元の値へ戻す。

5,000 個の候補すべてについて、二つの推定値が計算された。

遥は、最初に予測値の大きい順に表を並べた。

一番上に現れたのは candidate_0317 だった。

二酸化炭素透過係数の予測値:4,800 Barrer。
二酸化炭素・窒素選択性の予測値:38.7。

二つとも目標を大きく上回っている。

第4章で見た透過性と選択性のトレードオフを考えると、魅力的な組み合わせだった。

遥は一瞬、次に検討する候補はこれで決まりだと思った。

しかし、表の右側には、AD の判定があった。

透過係数モデル:AD 外。
選択性モデル:AD 外。

第9章で計算した5近傍平均距離は、どちらのモデルでもしきい値を大きく超えていた。

モデルは数字を返した。けれど、同じ程度の誤差で予測できると期待する根拠は弱い。

遥は、目標を満たす候補だけを抽出するコードを書いた。

meets_target = (
(candidate_results[“estimated_co2_permeability”] >= target_co2_permeability)
& (candidate_results[“estimated_co2_n2_selectivity”] >= target_co2_n2_selectivity)
)

数値上、二つの目標をともに満たした候補は114個あった。

そのうち、二つのモデルでともに AD 内だった候補は18個。

片方だけが AD 外だった候補は29個。

両方とも AD 外だった候補は67個だった。

予測値が特に良い候補の多くは、現在のトレーニングデータから離れた場所にあった。

それは、新しい材料を探したいという目的には魅力的に見える。

一方で、遠い候補ほど予測の根拠は弱くなる。

遥は、二酸化炭素透過係数の予測値を横軸、選択性の予測値を縦軸とした散布図を作った。

目標を満たす右上の領域を薄い枠で囲み、二つのモデルで AD 内の候補、片方だけ AD 外の候補、両方 AD 外の候補を分けて表示する。

右上の目立つ場所には、AD 外の点が多かった。

ただし、AD 内の18個にも、目標をわずかに超える候補だけでなく、ある程度余裕をもって目標を満たす候補があった。

その一つが candidate_0731 だった。

二酸化炭素透過係数の予測値:1,520 Barrer。
二酸化炭素・窒素選択性の予測値:27.8。
透過係数モデル:AD 内。
選択性モデル:AD 内。

candidate_0317 ほど高い予測値ではない。

けれど、今回設定した二つの目標は満たしている。

さらに candidate_1842 は、その中間のような候補だった。

二酸化炭素透過係数の予測値:2,300 Barrer。
二酸化炭素・窒素選択性の予測値:31.2。
透過係数モデル:AD 内。
選択性モデル:AD 外。

どれが最も良い候補なのだろう。

透過係数と選択性という二つの値があるため、単純に一列を大きい順へ並べるだけでは決まらない。

遥は対話型 AI に尋ねた。

二つの目的変数を同時に大きくしたいとき、複数の候補を一つの順位に並べる方法と、その注意点を説明してください。

回答には、標準化した二つの予測値を重み付きで足し合わせる方法、目標値からの距離を使う方法、Pareto 最適解を求める方法などが示された。

遥は、まず重み付き和を試した。

weight_permeability = 0.5
weight_selectivity = 0.5

二つの予測値は数字の範囲が異なるため、そのまま足すと透過係数の影響が大きくなる。そこで、それぞれを同じ尺度に変換してから足し合わせた。

重みを0.5ずつにすると、ある候補が最上位になった。

透過係数を重視して0.8と0.2にすると、別の候補が最上位になった。

選択性を重視して0.2と0.8にすると、また別の候補が選ばれた。

モデルの予測値は変わっていない。

変わったのは、人が何を重視したかだった。

遥はノートに書いた。

順位は、モデルだけが決めるものではない。
目的変数の尺度、重み、目標値を人が決める。

それに、今回の目標は「できるだけ大きくする」ではなく、「透過係数1,000 Barrer以上、選択性25以上を満たす」だった。

目標を十分に超えた候補が、必ずしも用途としてさらに優れているとは限らない。

より高い透過係数を得る代わりに、機械的強度、長期安定性、加工性、費用など、まだモデルに入っていない性能を失う可能性もある。

予測していない性質について、モデルは何も保証しない。

次に遥は、Pareto 最適という考え方を調べた。

ある候補より、透過係数も選択性も同じか高く、少なくとも一方が明らかに高い別の候補があるなら、最初の候補は二つの目的において劣っている。

反対に、透過係数を上げようとすれば選択性が下がり、選択性を上げようとすれば透過係数が下がるため、どちらが一方的に優れているとも言えない候補が残る。

それらが、今回の予測値に基づく Pareto 候補だった。

遥は注意書きを加えた。

これは、実測値による Pareto 最適ではない。二つのモデルが出した予測値による候補の整理であり、実験すれば位置は変わる可能性がある。

さらに、Pareto 候補になったからといって、一つの候補が自動的に選ばれるわけではない。

何を重視し、どの程度の失敗を許容し、実験から何を学びたいかは、別に決める必要がある。

遥は、候補の表に新しい列を追加した。

目標を満たすか。
二つのモデルで AD 内か。
既知材料までの距離。
製膜温度がトレーニングデータの範囲内か。
SMILES を化学構造として読み込めるか。
合成可能性と膜形成性を確認したか。

最後の列は、ほとんどが「未確認」になった。

SMILES を構造として読み込めて、記述子を計算できることは、その高分子を実際に合成できることを意味しない。

適切なモノマーが準備できるか。重合できるか。十分な分子量になるか。膜として成形できるか。測定中に安定か。

それらは、仮想候補の表だけからは分からなかった。

遥は、候補生成の方法も確認した。

virtual_polymer_candidates.csv の候補は、研究室が事前に用意した部分構造と接続規則を組み合わせ、製膜温度の候補を加えて作られていた。

つまり、5,000 個の中から最良の候補を選んでも、最初の生成規則に含まれていない構造は見つからない。

候補空間も、人が決めていた。

遥は対話型 AI に、次の質問をした。

目標物性を満たす材料を、あらかじめ生成した候補に回帰モデルを適用して選ぶ方法は、モデルの逆解析と呼べますか。順解析との違いも説明してください。

回答には、「逆設計」という言葉が広い意味で使われる場合もある一方、計算の流れとしては、候補の説明変数 x を先に用意し、モデルへ入力して目的変数 y を予測する順解析を繰り返している、と書かれていた。

遥は研究室の入門資料でも確認した。

順解析:候補の x から、その候補の y を予測する。
候補スクリーニング:多数の x を順解析し、望ましい y の候補を選ぶ。
モデルの逆解析:目標とする y から、それを実現する x を探索・設計する。

今回行ったのは、5,000 個の候補に対する順解析とスクリーニングだった。

実験より計算がはるかに速いなら、多数の候補を一度に評価できる。それだけでも十分に有用である。

しかし、候補数が何百万、何億と増えたり、連続的な作製条件を自由に考えたりすると、すべてを先に列挙することは難しくなる。

さらに、事前に作った候補の外側に、本当に欲しい材料がある可能性もある。

目標から候補を考えるためには、何を目標とし、どの説明変数を変えられ、どんな制約を守るかを定めなければならない。

予測モデルを逆向きに使う前に、研究者が設計問題そのものを作る必要があった。

翌日の午後、遥は紺色のパーカーの先輩に、三つの候補の比較表を見せた。

「予測値が一番良いのは candidate_0317 です。でも、二つのモデルで AD 外でした」

先輩は表を見た。

「では、選びませんか」

「捨てるつもりはありません。ただ、予測値が4,800と38.7になることを、AD 内の候補と同じ程度には信頼できません」

「candidate_0731 はどうですか」

「予測値は1,520と27.8で、どちらも目標を満たし、二つのモデルで AD 内です。最初にモデルを使って目標達成を確認する実験なら、こちらを優先したいです」

「AD 内だから、実験は成功しますか」

遥は首を横に振った。

「保証はできません。AD は予測を支える既知データが比較的あることを示すだけです。合成できるか、膜にできるかも、まだ確認が必要です」

「では、candidate_0317 を選ぶ理由はありますか」

遥は少し考えた。

「既知材料から離れた構造で、予測値が特に高いので、新しい領域を探索したいなら価値があります。実験結果が予測と違っても、データを追加すれば、モデルが知らない領域を広げる情報になります」

「二つの候補のどちらが良いのでしょう」

「一回の実験で目標を満たす確率を重視するなら candidate_0731。大きな性能向上や新しい構造を探索することを重視するなら candidate_0317 も候補です。目的によって変わります」

以前なら、「目的によります」とだけ答えていたかもしれない。

今回は、どの目的なら、どちらを選ぶかまで説明できた。

先輩は、候補比較表の「合成可能性」の欄を指した。

「ここが未確認ですね。どうしますか」

「繰り返し単位の構造だけで判断せず、想定するモノマー、重合法、既知の類似高分子を調べます。実験を担当する人にも相談します。構造式として成立することと、実験できることは分けます」

先輩はうなずいた。

「では、モデルが candidate_0731 を提案した、と発表しますか」

遥は言葉を選んだ。

「モデルは、各候補の予測値を計算しました。候補の生成規則、目標値、AD のしきい値、選択条件を決めて、最終的に candidate_0731 を優先したのは私たちです」

「その表現がよいと思います」

モデルが選んだ。

AIが発見した。

そう言えば短くて目立つ。

けれど、その言葉の中には、人が決めた候補空間、目標、制約、信頼性の基準が隠れてしまう。

遥は発表スライドの題名を修正した。

修正前:AI が発見した高性能高分子膜。

修正後:予測値、適用範囲、設計条件に基づく次候補の選択。

長くなった。

でも、何をしたのかは、前より正確だった。

新人トレーニング九回目の進捗報告会で、遥は最初に、今回の目標を示した。

二酸化炭素透過係数:1,000 Barrer 以上。
二酸化炭素・窒素選択性:25 以上。

先生が尋ねた。

「なぜ、その値を目標にしたのですか」

「今回の仮想課題で、研究室から指定された比較用の目標です。すべての用途で優れた膜を意味する値ではありません。実際の設計では、プロセスの要求や測定条件から決める必要があります」

「候補を予測した後で、達成できそうな値へ目標を変えましたか」

「変えていません。最初に設定した値で候補を抽出しました。目標を変えた結果も追加で比較しましたが、感度分析として分けました」

遥は、5,000 個の予測結果を示した。

数値上、目標を満たした候補:114 個。
二つのモデルで AD 内:18 個。
片方だけ AD 外:29 個。
両方とも AD 外:67 個。

先生は candidate_0317 と candidate_0731 の行を見た。

「予測値が最も良い candidate_0317 を選ばなかったのは、なぜですか」

「選ばなかったというより、最初に検討する候補としての優先順位を下げました。二つのモデルで AD 外であり、既知データから離れていたからです」

「AD 外なら、価値が低い候補ですか」

「いいえ。新しい領域を探索する候補として価値があります。ただし、モデルが示した高い予測値をそのまま根拠にはできません。探索枠として、実験や追加計算で確認する候補です」

「candidate_0731 は、安全な候補ですか」

「予測上のリスクは比較的小さいと考えますが、化学的・実験的に安全という意味ではありません。AD 内でも予測は外れますし、合成可能性や膜形成性は別に確認します」

先生は、二つの目的変数の散布図を指した。

「二つのモデルが、それぞれ良い値を返しました。二つの性能が同時に実現することは保証されますか」

遥は、別々に構築した二つのモデルを思い出した。

「保証されません。それぞれの目的変数について予測性能を評価しただけです。同じ候補で二つの予測がともに当たるかは、実験で確認する必要があります」

「では、Pareto 候補とは何ですか」

「今回の予測値の上で、別の候補に二つの性能を同時に上回られていない候補です。実測値での最適性を保証するものではありません。また、Pareto 候補の中から一つを選ぶには、目的や制約が必要です」

先生はホワイトボードに書いた。

目標。
制約。
予測値。
信頼性。
実験から得たい情報。

「候補選択では、これらを分けて考えてください」

先生は続けた。

「今回、瀬戸さんは5,000個の候補へモデルを適用しました。これは、目標値から直接、構造を求めたのですか」

「いいえ。候補の構造と製膜温度を先に準備し、それぞれについて物性を順方向に予測して、目標を満たすものを選びました」

「では、何が制限になりますか」

「最初に作った候補空間です。生成規則に含まれない構造や条件は、どれだけモデルを使っても選ばれません」

「目標から説明変数を考える方法はありますか」

「モデルの逆解析があります。目標とする目的変数から、それを実現する説明変数を探索します。ただ、説明変数の範囲、組成や温度の制約、化学構造としての成立条件などを決める必要があります」

先生はうなずいた。

「候補を多数生成して順解析する方法も有用です。ただ、何を候補として許したかを忘れないでください。将来は、目標値から説明変数を直接考える方法も扱います」

直接。

遥は、その言葉をノートの端に書いた。

今はまだ、5,000 個の候補から選ぶだけで精一杯だった。

しかし、最初から候補を作り切らず、欲しい性質から構造や条件を導くことができれば、探索の形は変わる。

先生は、もう一つ尋ねた。

「candidate_0731 を実験して、目標を満たさなかったら、どうしますか」

「実測値をデータセットに追加し、モデルと AD を更新します。その後、次の候補を選びます」

「その繰り返しには名前がありますか」

遥は、研究室の入門資料で読んだ言葉を思い出した。

「適応的実験計画法です。モデルで候補を選び、実験し、結果を追加して、モデルを更新するサイクルです」

「ベイズ最適化とは同じですか」

「今回の予測値と距離による AD だけで候補を選ぶ操作を、そのままベイズ最適化とは呼べないと思います。ベイズ最適化では、予測値に加えて予測の不確かさなどを獲得関数で考え、次に評価する候補を選びます」

「よい区別です。AD 外と予測の不確かさも、同じ言葉ではありません。関係することはありますが、何を計算した指標かを明確にしてください」

遥は、候補比較表に「AD」と「予測不確かさ」を同じ欄へ入れかけていたことを思い出した。

分からないものを、すべて「不確か」と一つにまとめてはいけない。

AD は、説明変数空間におけるトレーニングデータとの関係から設定した。

予測分布の幅を計算したわけではない。

言葉の区別は、計算したものの区別だった。

遥は最後のスライドを示した。

予測は、候補の説明変数から物性を考える。
設計は、欲しい物性から候補を考える。
候補を選ぶには、目標、制約、予測値、AD、実験可能性を分けて確認する。
予測値が最大の候補と、次に実験すべき候補は同じとは限らない。
AD 内は成功を保証せず、AD 外は価値がないことを意味しない。
最終的な選択と、その理由に責任を持つのは研究者である。

先生は尋ねた。

「今回、自分で追加して試したことは何ですか」

「重みを変えた順位付けと Pareto 候補の整理を行いました。それから、最初に設定した目標値を変えたとき、候補数と AD 内の割合がどう変わるかを確認しました」

「何が分かりましたか」

「重みや目標を変えると、選ばれる候補は変わりました。モデルが同じでも、設計問題の決め方で答えが変わります。そのため、結果だけでなく、目標と選択規則も残す必要があります」

「次に検討する候補は、どれですか」

遥は、候補比較表の candidate_0731 を指した。

「今回の目的を、一回目の実験で目標達成の可能性を確認することと置き、candidate_0731 を優先します。二つの予測値が目標を満たし、二つのモデルで AD 内だからです。ただし、合成可能性と膜形成性を確認してから実験候補にします」

「candidate_0317 は、どうしますか」

「高い予測値をもつ探索候補として残します。候補の構造を調べ、実験コストと許容できる失敗の大きさを考え、探索用の実験枠があれば検討します」

先生は短くうなずいた。

「答えが一つでないときほど、選んだ理由を説明してください」

報告会のあと、遥は結果を保存した。

virtual_polymer_candidate_predictions.csv。
candidate_target_and_ad_summary.csv。
pareto_candidate_predictions.csv。
candidate_selection_rationale.txt。

最後のファイルには、選んだ候補だけでなく、選ばなかった有力候補と、その理由も残した。

結果が外れたときに、「なぜその候補を選んだのか」を後から都合よく書き換えないためだった。

画面には、5,000 行の候補が残っていた。

最初は、その中の最大値を探せばよいと思っていた。

今は、一つの候補を選ぶまでに、人が決めなければならないことの多さが見えていた。

どの性質を欲しいとするか。

どこまでを目標とするか。

何を変えてよいか。

どの制約を守るか。

どの予測を、どの程度信じるか。

失敗から何を学びたいか。

AI は、5,000 個の候補を、人より速く計算した。

けれど、何を良い候補と呼ぶかは、計算を始める前にも、終えた後にも、人が考え続けなければならない。

遥は、第1章で書いた言葉を思い出した。

目的を決めるのは研究者。

九週間のトレーニングを経て、その言葉は前より具体的になっていた。

目的とは、単なる目的変数の名前ではない。

目標、制約、信頼性、実験の意味まで含めて、研究の問いを作ることだった。

作業を終えると、先輩から slack に新しいメッセージが届いた。

次回は、新人トレーニングの最終発表です。
第1章で選んだ研究テーマについて、何を入力とし、何を予測し、どのように評価し、どこまで結果を信じ、次の候補をどう選ぶかを説明してください。
AI に尋ねたこと、資料で確認したこと、自分で試したこと、自分で判断したことを区別してください。
最後に、四月から研究室でどのように研究したいかを、自分の言葉でまとめてください。

遥は、これまで保存したフォルダを開いた。

データ辞書。
ヒストグラムと散布図。
構造記述子。
PCA とクラスタリング。
予測モデル。
クロスバリデーション。
AD。
候補選択。

一つ一つは、先輩から与えられた小さな課題だった。

しかし、並べてみると、一つの研究の流れになっていた。

最初の発表では、AI が整えた言葉を、自分の理解だと思いかけた。

今度は、どこまで自分の言葉で話せるだろう。

遥は新しいスライドを開いた。

白い画面に、題名を入力する。

データ化学工学による高分子分離膜の設計。

第2章と同じ題名だった。

けれど、その下に続く内容は、もう同じではなかった。

遥はノートの新しいページに、次の言葉を書いた。

自分の言葉で話す。

===

続きはこちら

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