マテリアルズインフォマティクスってどうすればできるの?
マテリアルズインフォマティクスの手順をわかりやすく説明します
マテリアルズインフォマティクスの手順の概要
マテリアルズインフォマティクスには順問題と逆問題の2種類があります。順問題のマテリアルズインフォマティクスでは、データをもとに統計的な手法を利用して化学構造と物性との相関モデルをつくり、データにない新しい化合物の物性を推定します。逆問題のマテリアルズインフォマティクスでは、相関モデルをつくるところまでは順問題と同じで、相関モデルの逆関数から、所望の物性を持つ新しい化合物の化学構造を推定します。これらのイメージを図1に示します。
マテリアルズインフォマティクスで使用するデータは、社外のデータベース、論文、特許、理論計算や自社の実験データを利用します。
相関モデルは、シンプルな線形モデルから機械学習を利用した複雑なモデルまで様々あります。データの数や課題によって適切なモデルを選びます。
物性は課題によってさまざまな機能性・活性・特性を扱います。収率なども適用することができます。
マテリアルズインフォマティクスのポイントは、分子記述子を利用するところです。統計的な手法を利用して相関モデルを作成するためには、化学構造を数学的に取り扱える数値、ベクトルまたはテンソルに変換する必要があります。この変換する手法を分子記述子と言います。分子記述子は通常ベクトル表現で、様々な種類が知られており、課題によって適切な分子記述子を選びます。
次の項目からは、マテリアルズインフォマティクスの実施方法を順に説明します。多くの場合、順問題のマテリアルズインフォマティクスをすると思いますので、先に順問題の手順を説明します。最後に逆問題の手順も説明します。
順問題のマテリアルズインフォマティクスの手順
順問題のマテリアルズインフォマティクスは、大きく分類して次の5工程で進めます。
- 問題設定の選択
- データセットの作成
- 分子記述子の作成
- 相関モデルの作成
- 相関モデルを使用した、新規化合物の物性予測
問題設定の選択
機械学習には種類がいくつかありますが、基本的にマテリアルズインフォマティクスでは教師あり学習のうちの回帰または分類から選びます。
目的とする物性が連続値の場合は回帰を選びます。機械的物性や電気的物性など、多くの場合は連続値なので回帰を選ぶことが多いと思います。目的変数が収率の場合も連続値なので回帰になります。
目的とする物性が離散値の場合は分類を選びます。例えば、毒性のある/なし、活性のある/なしなどの場合は分類になります。
機械 学習 | 教師あり学習 化合物と物性のデータがある | 回帰 物性値が連続値 |
分類 物性値が離散値(あり/なし、や、高/中/低、など) | ||
教師なし学習 化合物のデータはあるが物性のデータがない | ||
強化学習 データをもとにせず推論結果に対して評価(報酬)を与えてモデルを作成する |
データセットの作成
マテリアルズインフォマティクスのデータ元は以下の4つが代表的です。
- 社外のデータベース
- 論文、特許
- 理論計算
- 自社の実験データ
社外のデータベースや論文、特許のデータをまく利用できれば、データ数が多いため精度が高くなり、自社で実験してデータを作成しなくていいため、開発期間を短縮できます。ただし、これらのデータには実験手法や分析手法が異なるデータが混在していてデータの質が低い場合があります。また、最先端の材料開発では所望の物性値がない場合が多いです。
理論計算は、所望の物性値が理論計算で出せる場合は適切なデータ元になります。理論計算できない物性値を対象とする場合は、理論計算は使うことができません。
このような状況のため、自社の実験データを利用するケースが多いです。自社でデータセットを作成する場合、エクセルにまとめます。データセットには、化合物のSMILES表記と物性値をまとめます。または、SMILES表記の代わりに、物性値に影響しそうな複数の数値と物性値をデータセットとしてまとめます。(例えば、反応温度、反応時間、基質1の当量、基質2の当量、触媒量を説明変数、収率を目的変数としてまとめる、など)
自社の実験データで作成するデータセットの例を示します。
データセットを用いてモデルを作成する前に、欠損値の処理、特徴量削減、組み合わせ変数の作成などのデータの前処理をします。データの前処理はノウハウが必要で手間がかかりますが、モデルの精度に影響する重要な作業です。
分子記述子の作成
※データセット中にSMILES表記がない場合は、この項目は飛ばしても問題ありません。
化学構造そのものはプログラム上で取り扱いにくいため、マテリアルズインフォマティクスでは一般的に分子の化学構造をSMILES表記に変換して取り扱います。
一般的な機械学習では、入力は要素数が固定の数値ベクトルが求められます。そのため、SMILESの文字列を、分子記述子とよばれる分子の特徴を表す固定長ベクトルに変換します。最も基本的な記述子は、モレキュラーフィンガープリントです。モレキュラーフィンガープリントには、事前に定義されたフラグメントを数え上げる事前定義型(MACCS keysなど)と、フラグメントを自動列挙する列挙型(ECFPなど)があります。
一般的な分子記述子は、RDKit(ホームページ)やmordred(ホームページ)などのPythonライブラリを用いてSMILESから計算できます。
分子記述子の選び方
分子記述子は数千種類が知られていますが、万能な分子記述子というものはないため、課題ごとに適切な分子記述子を選びます。
一般的な選び方は、まず、化学的知見から物性に影響しそうな分子記述子を中心にいくつか候補を出します。次にすべての候補で相関モデルを作成し、その中で最も精度が高い相関モデルを作成できた分子記述子に決定します。
相関モデルの作成
相関モデルはPythonを利用して作成することが多いです。自分で実施する場合は、Google Colaboratoryがおすすめです。Google Colaboratoryは、Googleが提供している、ブラウザから直接Pythonを記述、実行できるサービスです。
相関モデル f の作成について、図1の例を用いて概要を説明します。
まず、1番目の化学構造から分子記述子 (x11, x12, … x1n) を作成し、対応する物性値 y1 との間に y1 = f(x11, x12, … x1n) が成り立つとします。この式を、データの数 k 個つくります。この k 個の式の誤差が最も小さくなる関数 f を統計的な手法を利用して作成します。
概要は上記のとおりですが、Pythonではアルゴリズムを指定してデータの学習をさせれば、自動的に相関モデルを作成してくれます。
アルゴリズムの選び方
アルゴリズムは多数知られていますが、万能なアルゴリズムというものはないため、課題ごとに適切なアルゴリズムを選びます。参考に、有名なscikit-learnのアルゴリズム選択基準のサイトを紹介しておきます。
実際は、いくつかのアルゴリズムで相関モデルを作成し、その中で最も精度が高い相関モデルを作成できたアルゴリズムに決定します。
相関モデルを使用した、新規化合物の物性予測
相関モデルを作成できたら、Pythonで新規化合物の情報を読み込めば物性予測ができます。
逆問題のマテリアルズインフォマティクスの進め方
逆問題のマテリアルズインフォマティクスは、「相関モデルの作成」までは順問題のマテリアルズインフォマティクスの進め方と同じです。
相関モデルの作成では、データから入力 x = (x1, x2, … xn) と出力 y 間の関数関係 y = f(x) を求めました。この関数の逆写像 x* = f -1(y*) を求めることで、所望の物性値 y* を有する分子記述子 x* を予測して分子設計に用いることができます。
逆問題には、ガウス過程回帰を用いたベイズ最適化やベイズ推論に基づく逆問題解析がよく用いられます。ここでは、よく用いられるベイズ最適化について解説します。ベイズ最適化では、まず適当な初期データからガウス過程回帰モデルを学習します。このガウス過程回帰モデルの予測の期待値と分散を用いて定義した獲得関数を最大になるように次のサンプリング点を決めます。この獲得関数には、以下のような性質を満たすことが理想とされています。
- 良いかもしれないけど予測の不確かさが大きいところに評価を与える(探索)
- ある程度良いということがわかっているところに評価を与える(活用)
代表的な獲得関数として、Probability of Improvement (PI)やExpected Improvement (EI)、Upper Confidence Bound (UCB)があります。そして、実験してサンプリング点のデータを取得し、ガウス過程回帰モデルを更新します。この手順を繰り返すことで、なるべく少ない試行回数で所望の特性 y* を有する化合物を探索します。詳細は関連書籍をご覧ください。
関連書籍
「マテリアルズインフォマティクス」では、分子記述子とその利用法、逆問題解析の手法などが説明されています。また、マテリアルズインフォマティクスを実践的に体得できるようGitHub等を参照できるようになっています。材料開発の実践に役立つ一冊です。
「化学・化学工学のための実践データサイエンス」では化学・化学工学系のデータ処理で実際に使える統計解析・機械学習手法を解説しています。データセットの作成、データの前処理、特徴量選択(変数選択)、モデルの作成と検証、モデルの逆解析など、この記事で紹介した内容がさらに詳しく説明されています。Pythonによるサンプルコードも付いており、この本があればマテリアルズインフォマティクスを実践できます。
「詳解 マテリアルズインフォマティクス」では、有機化学・無機化学分野でのデータの具体的な扱い方、さらには様々な深層学習手法とその具体的利用の理解を助けるための応用事例が紹介されています。深層学習手法では、シンプルなものからDNNまでまとめられています。応用事例では、有機系の物性予測を中心に、最近の論文の紹介・解説がされています。
「事例でわかる マテリアルズインフォマティクス」は、「詳解 マテリアルズインフォマティクス」の続編です。
まとめ
この記事では、マテリアルズインフォマティクスのやり方をわかりやすく説明しました。
マテリアルズインフォマティクスについては別記事でまとめています。