SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

データ科学で求める物質の分子式を生成、マテリアルズ・インフォマティクスとは【PyData.tokyo】

「PyData.tokyo One-day Conference 2018」レポート

マテリアルズ・インフォマティクスではRDKitをこう使う

 今度は機械学習のための準備だ。マテリアルズ・インフォマティクスをPythonで実行する場合、RDKitライブラリが用いられることが多い。物質を探したり、物性を予測するためのツールキットだ。多くがC++で実装されており、Pythonのライブラリが提供されている。Anacondaを導入していれば、コマンドからインストールできる。

 例えば物質の溶解度(溶けやすさ)を予測するモデルを構築する場合。物質(X)から溶解度(Y)を予測するモデルとなる。大まかには、データの取得、データの読み込み、記述子の計算、予測モデルの構築、モデルの評価といった流れで進める。データはRDKitのGitHubから入手できる。

 物質データの読み込みはRDKitへのインポートという形で行う。実際にはファイルなどを指定するものの、SMILES記法からの読み込みも可能だ。描画ツールも提供されている。読み込んだらMolクラスのオブジェクトを生成する。このオブジェクトに対して、関数を用いて元素を抽出したり、結合の種類(単結合や二重結合)を調べたりすることができる。

分子の読み込み ベンゼンのSMILESからMolクラスのオブジェクトを生成(講演資料より抜粋)
分子の読み込み ベンゼンのSMILESからMolクラスのオブジェクトを生成(講演資料より抜粋)

 それから記述子を計算する。マテリアルズ・インフォマティクスの肝となる部分だ。学習データから目的変数を計算する。その後の予測モデルの構築とモデルの評価は通常の機械学習と同じ。

深層学習や強化学習で求める物質の化学式データを人工的に生成

 近年の話題として、福島氏が着目したテーマは「分子生成」と「逆合成の経路探索」の2つ。

 分子生成とは求める物性値が高い分子の候補を深層学習で人工的に生成すること。AIが小説を書き上げるように、AIが求める物質の化学式を生成する。最近、後述するGAN(敵対的生成ネットワーク)を用いた分子生成の論文が出ているが、この場合、人工的に分子の候補を生成するのを「ジェネレーター」、データの真偽を識別するのを「ディスクリミネーター」と呼ぶ。「電気伝導率が高い分子がほしい」なら、電気伝導率が高そうな分子のデータを生成するジェネレーターを鍛え上げていくことになる。鍛えることで、より電気伝導率が高い分子の候補を生成できるようにする。

 処理としてはGAN(敵対的生成ネットワーク)を用いて、本物(実在する物質と物性の)データから特徴を学習して人工的なデータ(物質の化学式)を生成する。実際には、シーケンスGAN(seqGAN)と強化学習を組み合わせたORGANが用いる手法などが提案されている。

 関連してMolGANというのもある。これも同じく求める分子のデータを生成するものだが、物質をSMILES記法ではなくグラフ構造で扱うのが特徴だ。分子の構造をイメージすると、グラフ構造としてとらえるのは相性がよさそうだ。

 もう一つが逆合成の経路探索。分子を生成する経路を効率良く探索するための技術だ。ここで使われるのがモンテカルロ探索木。囲碁やチェスで数段階先の経路を考えた上で、次の手を探すために使われる探索手法だ。これを分子を生成する経路の探索に応用する。

 マテリアルズ・インフォマティクスではコンピュータが「あなたが求める物性を持つ物質は、こんな分子では?」と分子を提案してくれることになる。本当にそのとおりの物性を持つかは実験で確かめる必要があるものの、試行錯誤が続く素材開発が効率的に進みそうだ。

講演資料

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
イベントレポート連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11341 2019/02/06 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー