データ化学工学研究室物語
第I部 研究室配属前夜のデータ化学工学
研究室配属前の学部三年生が、AI・機械学習を化学・化学工学の研究に使う考え方を学ぶ。
第6章 似ている材料、似ていない材料
新人トレーニングの五週目に与えられた課題は、128個の数字で表された高分子に、地図を作ることだった。
polymer_descriptors_extended.csv と polymer_metadata.csv を確認してください。
特徴量の標準化をする前と後で、高分子同士の距離がどう変わるか比較してください。
主成分分析によりデータを2次元に可視化し、階層的クラスタリングでもグループ分けしてください。
近くにある材料や同じクラスターの材料について、化学構造の共通点を確認してください。
第5章の報告会が終わった日の夕方、先輩から slack に届いた課題を、遥は研究室の席でもう一度読んだ。
標準化。
距離。
主成分分析。
階層的クラスタリング。
聞いたことのある言葉もあったが、それらを一つの課題としてどうつなげるのかは、まだ分からなかった。
遥は、先週共有された polymer_descriptors_extended.csv を開いた。
縦には、polymer_001 から始まる120個のサンプル。
横には、128個の記述子。
repeat_unit_mass。
aromatic_atom_fraction。
heteroatom_fraction。
ring_count。
tpsa。
それ以外にも、原子数、結合、官能基、分子の形、極性に関係する列が続いていた。
隣の polymer_metadata.csv には、サンプルID、繰り返し単位のSMILES、作製条件、測定条件、二酸化炭素の透過係数、二酸化炭素・窒素の選択性が並んでいた。
前の章では、一つの化学構造を数字にした。
今度は、その数字を使って、高分子同士の近さを考える。
遥はノートに書いた。
似ている高分子とは、128個の記述子の値が近い高分子。
書いてから、すぐに疑問が浮かんだ。
128個のうち、いくつが近ければ、似ていると言えるのだろう。
一つの記述子では近くても、別の記述子では遠いときはどうするのだろう。
研究室のサンプルプログラムには、ユークリッド距離を計算する部分があった。
多次元の空間で、二つのサンプルがどれくらい離れているかを、一つの数字で表す。
距離が小さいほど似ていて、距離が大きいほど似ていない。
説明だけを読むと、単純に思えた。
遥は、polymer_003 を基準にして、他のすべての高分子との距離を計算した。
最も近いと表示されたのは、polymer_081 だった。
遥は二つのSMILESを構造式に変換し、並べて表示した。
polymer_003 には、複数の芳香環とスルホニル基、エーテル結合がある。
polymer_081 は、脂肪族の鎖とエステル基を中心とする構造だった。
繰り返し単位の質量と極性に関係する値は近い。
しかし、芳香環の割合や環の数は大きく違っていた。
これが、最も似ている高分子なのだろうか。
遥は距離の計算に使われた各列の値を確認した。
repeat_unit_mass は、およそ100から600。
tpsa は、0から150前後。
ring_count は、0から7。
aromatic_atom_fraction と heteroatom_fraction は、0から1。
同じ一列でも、数字の大きさがまったく違う。
repeat_unit_mass が10違うことと、aromatic_atom_fraction が0.1違うことを、そのまま足し合わせてよいのだろうか。
遥は、aromatic_atom_fraction の値だけを、割合から百分率に変えてみた。
0.35 を35にする。
化学構造の情報は変わっていない。表現する数字の単位を変えただけだった。
もう一度距離を計算すると、polymer_003 に最も近いサンプルが変わった。
同じ化学構造の集まりなのに、割合を百分率にしただけで、「最も似ている材料」が変わる。
遥は対話型AIに尋ねた。
同じ特徴量を0から1の割合で表す場合と、0から100の百分率で表す場合とで、ユークリッド距離による近傍サンプルが変わります。なぜですか。化学データを比較するときの対処法を説明してください。
回答には、数値の範囲が大きい特徴量ほど距離に強く影響すること、特徴量の標準化がよく使われることが示された。
遥は研究室の入門資料でも、同じ説明を確認した。
特徴量の標準化、あるいはオートスケーリング。
特徴量ごとに平均値を0、標準偏差を1にそろえる。
これにより、元の単位や数字の範囲が異なる特徴量を、同じような尺度で扱えるようにする。
遥はサンプルプログラムの一行を見た。
autoscaled_x = (x – x.mean()) / x.std()
内容は、言葉で読んだ説明と同じだった。
実行すると、警告が表示された。
標準化後のデータの一部に、値が入っていない。
原因を調べると、128個の記述子のうち7個は、すべてのサンプルで同じ値だった。標準偏差が0であるため、標準偏差で割ることができない。
例えば、今回の120個の高分子には一度も現れない特定の部分構造を数えた記述子は、すべて0になっていた。
遥は、値が一定の7個の記述子を、この解析用のデータから除いた。
ただし、元のファイルから削除したわけではない。
deleted_constant_descriptors.csv に列名を保存し、作業記録にも理由を書いた。
残った121個の記述子を標準化し、距離をもう一度計算した。
今度、polymer_003 の近くに選ばれたのは、芳香環、スルホニル基、エーテル結合を含む別の高分子だった。置換基には違いがあるが、polymer_081 より構造上の共通点が多く見えた。
遥は少し安心した。
しかし、標準化すれば正しい類似度になる、と結論づける前に手を止めた。
標準化は、数字の尺度をそろえただけである。
121個の記述子を、化学的に同じ重要度にしたわけではない。
芳香環の数を表す記述子が何種類もあり、分子の大きさを表す記述子も何種類もあるなら、似た情報が何度も距離に加わる可能性もある。
遥はノートに書いた。
標準化前:数字の範囲が大きい特徴量の影響が大きい。
標準化後:各特徴量の数値的な尺度をそろえる。
ただし、化学的な重要性や情報の重複まで自動的に解決するわけではない。
翌日の午後、遥は標準化前後の距離の表を、紺色のパーカーの先輩に見せた。
「標準化後の方が、構造を見たときの感覚に近い近傍になりました」
先輩は二つの表を見比べた。
「では、標準化後の距離が、化学的な類似度の正解ですか」
「正解とは言えないと思います。どの記述子を使ったかで変わりますし、距離の計算方法を変えても結果は変わるはずです」
「そうですね。『似ている』は、データの中に最初から一つだけ存在する答えではありません。何を数字にして、どう尺度をそろえ、どんな近さを使うかで定義されます」
似ているという言葉は、日常では直感的だった。
けれど、機械に似ている材料を探してもらうには、人が先に「似ている」の規則を決めなければならない。
先輩は次に、主成分分析のサンプルプログラムを開いた。
「121個の記述子を、そのまま人が見ることはできません。そこで、データの違いをなるべく保ちながら、少ない数の軸にまとめます」
主成分分析。
Principal Component Analysis。
略してPCA。
第5章で、化学構造を数字へ翻訳した。
PCAでは、121個の数字を、さらに少数の新しい数字へまとめるらしい。
遥は標準化後の記述子だけを使い、PCAを実行した。
画面に、第1主成分を横軸、第2主成分を縦軸とした散布図が現れた。
一つの点が、一つの高分子。
近い点もあれば、遠く離れた点もある。
128列の表だった高分子群が、一枚の地図のようになった。
第1主成分の寄与率は約31 %。
第2主成分は約19 %。
二つを合わせても、元のデータの情報の約50 %だった。
遥は、思っていたより少ないと感じた。
図には全体の半分ほどの情報しかない。
残りの情報は、第3主成分以降にある。
それでも、何も見えなかった121次元の空間より、全体の様子は分かりやすい。
遥は、PCAの軸が何を表しているかを確認するため、ローディングの表を開いた。
第1主成分には、芳香族原子の割合、環の数、剛直性に関係する記述子が大きく寄与していた。
第2主成分には、ヘテロ原子の割合、極性、極性表面積に関係する記述子が目立っていた。
右側には芳香環の多い高分子が多く、上側には極性に関係する値の大きい高分子が多いように見えた。
ただし、一つの軸が「芳香族性」だけ、一つの軸が「極性」だけを表すわけではない。多数の記述子を組み合わせた軸である。
遥は、図の右上に離れていた点へ、サンプル名を表示した。
polymer_047。
第4章で、透過係数と選択性の両方が周囲より高く、削除してよいか迷ったサンプルだった。
PCAの図でも、他の多くの高分子から離れている。
遥は metadata のSMILESを構造式に変換した。
繰り返し単位には、他のサンプルには少ない嵩高い置換基と、複数の芳香環が含まれていた。記述子空間で離れていることには、構造上の理由がありそうだった。
高い性能と、珍しい構造。
二つが関係している可能性はある。
けれど、一つのサンプルだけでは、原因とは言えない。
遥はスライドのメモに書いた。
polymer_047 は、構造記述子の空間でも他のサンプルから離れている。
特異な性能との関係は仮説であり、類似構造の追加データや実験による確認が必要。
図を眺めていると、今度は互いにほとんど重なって見える二つの点があった。
polymer_032 と polymer_068。
遥は、標準化した121個の記述子による距離を確認した。
二つは近い方ではあったが、互いに最も近いサンプルではなかった。距離の順位は17番目だった。
PCAの二次元では近く見えても、第3主成分以降では離れている部分がある。
地図の上で隣に見えることと、元の121次元空間で最も似ていることは、同じではない。
遥はノートに書いた。
PCAは、元のデータを圧縮した地図。
地図には、残した情報と失った情報がある。
近く見える点は、元の特徴量でも確認する。
次に、階層的クラスタリングを実行した。
サンプルプログラムでは、標準化後の記述子を用い、ウォード法で似たサンプルから順に結合していた。
画面に、枝が次々に分かれた樹形図が表示された。
一番下では、120個の高分子が別々に並んでいる。
枝を上へたどると、近い高分子同士が小さな集団になり、さらに大きな集団へまとまっていく。
プログラムには、クラスター数を決める設定があった。
number_of_clusters = 4
遥はまず4にした。
四つのクラスターに色を付けて、PCAの散布図へ重ねた。
一つ目には、芳香環が多く、比較的剛直な繰り返し単位をもつ高分子が多かった。
二つ目には、エーテル結合や脂肪族鎖を含む、柔軟な構造が多かった。
三つ目には、フッ素を含む高分子が比較的多かった。
四つ目は少数で、polymer_047 も含まれていた。
ただし、どのクラスターにも例外はあった。
「芳香族高分子のクラスター」と断定するより、「芳香族性に関係する記述子が比較的大きいサンプルが多いクラスター」と表現する方が正確だった。
遥はクラスター数を3に変えた。
二つの集団が一つにまとまった。
5に変えると、先ほど一つだった集団がさらに分かれた。
同じデータでも、何個のグループに分けるかによって、結果は変わる。
対話型AIに、最適なクラスター数を一つに決められるか尋ねると、樹形図、シルエット係数、研究目的などを考慮する方法が示された。
遥は、指標の名前を研究室資料でも確認した。
数字で候補を比較することはできる。
しかし、化学的に意味のある分け方か、何のために分けるのかは、人が考える必要がある。
今回、遥は3、4、5の結果を比較し、構造上の傾向を説明しやすい4クラスターを報告用に選んだ。
「真のクラスター数が4」とは書かなかった。
課題は、ここまでだった。
けれど遥は、PCAの散布図に、第4章で扱った二酸化炭素透過係数の大きさを色で重ねてみた。
今回は、第4章と同じ測定温度にそろえた物性値だけを用いた。
PCAやクラスタリングを計算するときには、透過係数も選択性も入れていない。
柔軟な構造が多いクラスターでは、透過係数の高い点が比較的多い。
芳香環が多いクラスターでは、選択性の高い点がいくつか見えた。
しかし、同じクラスターの中でも値は大きくばらついていた。
構造の地図と物性の色の間に、何らかの関係はありそうだった。
それだけで、未知の高分子の値を予測できるわけではない。
遥は、追加したスライドの題名を「物性との関係」と書きかけて、「物性との関係を考えるための観察」に直した。
新人トレーニング五回目の進捗報告会で、遥は最初に標準化前後の距離の違いを示した。
割合を百分率に変えただけで近傍サンプルが変わった例。
値が一定の7個の記述子を除いたこと。
標準化後に、構造上の共通点が多いサンプルが近くなったこと。
先生が尋ねた。
「なぜ標準化したのですか」
「特徴量ごとに数字の範囲が違い、標準化前の距離では、repeat_unit_mass や tpsa のように値の大きい特徴量が強く影響したからです」
「標準化すれば、すべての特徴量を公平に扱えますか」
遥は、ノートの注意書きを見た。
「数値の尺度はそろえられます。ただし、化学的な重要度をそろえたわけではありません。似た情報の記述子が複数あれば、その情報が何度も距離に影響する可能性もあります」
先生はうなずいた。
「では、『polymer_003 と polymer_026 は似ている』と、一般的に言えますか」
「今回選んだ121個の記述子を標準化し、ユークリッド距離で比較した範囲では似ている、と言えます。合成しやすさや膜の高次構造、性能まで似ているとは限りません」
似ている、の前に条件を付ける。
第2章で、測定条件を付けずに物性値を比較できなかったことと同じだった。
遥はPCAの散布図を示した。
「第1主成分と第2主成分で、元の記述子の情報の約50 %を表しています」
先生が図の近い二点を指した。
「では、この二つは似ていますか」
「二次元の図では近いです。ただし、残りの主成分の情報があるため、元の121個の特徴量で距離も確認する必要があります」
「この図の横軸は、何ですか」
「一つの化学的性質そのものではありません。複数の記述子を組み合わせた軸です。ローディングを見ると、第1主成分には芳香族性や環の数に関係する記述子が大きく寄与していました」
続いて、四つのクラスターを示した。
先生は尋ねた。
「なぜ4個ですか」
「3、4、5で比較しました。4個のときに、構造記述子の傾向を比較的説明しやすかったためです。ただし、4が唯一の正解とは考えていません」
「クラスターを作るときに、透過係数や選択性は使いましたか」
「使っていません。化学構造から計算した記述子だけです。物性値は、クラスターを作った後に色を付けて確認しました」
「それは大切な区別です」
先生はホワイトボードに書いた。
教師なし学習。
「PCAやクラスタリングでは、正解としての目的変数を与えず、データの中の分布やまとまりを見ます。だから、ここで見つけた集団は、物性の高低を正解として分けた集団ではありません」
「構造の違いだけで作った地図に、後から物性を重ねて、仮説を考えたということですね」
遥が答えると、先生はうなずいた。
先生は、離れた位置にある polymer_047 を指した。
「このサンプルについて、何が分かりましたか」
「物性の散布図でも、構造記述子の空間でも、他のサンプルから離れています。珍しい構造が特異な性能に関係している可能性はあります。ただし、一つのサンプルだけなので、原因とは言えません」
「次に何をしますか」
「近い構造をもつ候補を探して性能を確認するか、類似構造のデータを追加したいです。可能なら、実験で同じ傾向が再現されるか確かめます」
先生は、最後のスライドへ進めるよう促した。
遥は、今回学んだことを三行にまとめていた。
似ている材料とは、選んだ特徴量、前処理、距離の規則の中で近い材料。
PCAの地図は、元の多次元空間を圧縮したもの。
クラスターは答えではなく、構造の共通点や物性との関係を考えるための仮説。
先生は、その三行を見た。
「よいと思います。最後に、何のために似ている材料を探すのですか」
遥は少し考えた。
「未知の材料の性質を考えるときに、既知の似た材料を手がかりにするためです。それから、データの偏りや、他と違う材料を見つけるためです」
「そうですね。同じ『似ている』でも、目的によって必要な特徴量は変わります。構造を似せたいのか、物性を似せたいのか、合成方法を似せたいのか。最初に目的へ戻ってください」
報告会が終わったあと、遥はPCAの図をもう一度見た。
画面の中には、120個の点があった。
以前なら、近い点を見つければ、それだけで似た材料だと思ったかもしれない。
今は、その近さが、どの数字とどの規則で作られたものかを考えるようになっていた。
地図は便利だった。
しかし、地図そのものが材料ではない。
作業を終えると、先輩から次の課題が slack に届いた。
polymer_membrane_modeling.csv を共有します。
高分子の構造記述子と作製条件から、二酸化炭素の透過係数を予測する回帰モデルを作ってください。
データをトレーニングデータとテストデータに分け、実測値と推定値を比較してください。
まずは、研究室のサンプルプログラムをそのまま実行し、その後に結果の意味を考えてみてください。
遥はファイルを開いた。
これまでは、正解となる物性値を使わずに、材料の地図を作った。
次は、既知の材料から関係を学び、まだ見せていない材料の値を予測する。
地図の上で似た場所を探すだけではない。
数字から、未知の数字を推定する。
遥はノートの新しいページに書いた。
入力:高分子の構造記述子と作製条件。
出力:二酸化炭素の透過係数。
確認すること:モデルを作るために使ったデータと、モデルを試すデータを分ける理由。
その下に、次の章の題名になる言葉を書いた。
初めての予測モデル。
===
続きはこちら
