AI_ML_DL’s diary

人工知能、機械学習、ディープラーニングの日記

Quantum-chemical insights from DTNN -6

Quantum-chemical insights from DTNN -6

*KaggleのテーマPredicting Molecular Propertiesと類似した内容であるが、Kaggleとは離れて、DTNNの本質に迫る。

*プログラムコードを学び、使えるようにする。(2月9日追記)

*主要対象論文:K. T. Schütt et al., Quantum-chemical insights from deep tensor neural networks, nature communications 2017、SchNetの論文、K. T. Schüttさんの学位論文他

 

*DTNNとSchNetは、量子力学のDFT(密度汎関数法)によって計算した分子のエネルギーのデータベースによって訓練し、未知の分子のエネルギーを量子力学のDFT計算と同レベルの正確さで予測するプログラムである。

*このDTNNとSchNetの計算の仕組みとプログラムコードを学んでいるところである。

 

*分子のデータベースからは、MD(分子動力学)に関係する分子の力も、正確に予測できるということだが、論文中の、1分子の力の計算とMDの関係性が理解できず、昨日、MDのことを調べることにした。

*その結果、MDが、初期のニュートン力学をベースにしたものから、近似的な量子力学的計算を取り入れたものがあらわれ、さらには、原子分子の量子力学計算の集大成であるDFTをベースにしたab initio MDが登場したということがわかった。

*しかし、ab initio MDは、計算資源の問題から、扱える原子数が少なく時間スケールも短いために現実的な系に適用するのが困難で、限られた使い方しかできない。

*計算資源の問題の根源は、ab initio MD計算に必要な、DFTによる原子分子の力の計算に要する時間にある。

*ここで、機械学習が登場する。

*ab initio MDに必要な、DFTによる原子分子の力の計算を、DFTに変わって行えるように訓練するニューラルネットの1つが、DTNNである。

*H. Wangらは、DTNNのような機能を組み込んだ、ab initio MDとして、DeePMDを開発した。

 

*今日は、このDeePMDについて、もう少し詳しく見ていきたいと思う。

・DeePMD-kit: A deep learning package for many-body potential energy representation and molecular dynamics, H. Wang, L. Zhang, J. Han and W. E, arXiv 31 Dec 2017

ディープラーニングは、量子力学計算の領域で、正確だけど時間がかかる計算と同等の結果を、短時間で得る方法を提供し始めている。

・ここでは、ディープラーニングベースで表現されたポテンシャルエネルギーと力場(force field)を、分子動力学(molecular dynamics)に適用することができる、DeePMD-kitを紹介する。

・LAMMPSやi-PIのような、高機能な古典的MD計算から、量子力学的MD計算まで、種々のMDプログラムとのインターフェースを備えている。

・LAMMPSとi-PIは、GitHubにあることを確認した。オープンソースのコードが増えて有難いこと、この上ない。(やる気と少しのお金があれば、好きなだけ勉強/研究できるのだ)

・DeePMD-kitの全体の構成は、以下の図のようになっている。

・オレンジ色の機械学習で学んだモデルが緑色のMD計算に用いられる。

f:id:AI_ML_DL:20200210111335p:plain

 

*そもそも、古典的なMDとは、どのような計算なのかを勉強してみよう。

・Introduction to molecular dynamics simulations, K. Vollmayr-Lee, arXiv 20 Jan 2020

・代表的なソフトウエアパッケージが、LAMMPSである。

・とりあえず、図を並べておこう。

f:id:AI_ML_DL:20200210160538p:plain

f:id:AI_ML_DL:20200210161240p:plain


f:id:AI_ML_DL:20200210160638p:plain

f:id:AI_ML_DL:20200210161340p:plain

・これでは何の説明にもなっていないが、学生向けに書かれたもので、次のようなPythonで書かれたコードが載っている。

f:id:AI_ML_DL:20200210164321p:plain


*次は、ab initio MDのシミュレーションソフト、i-PIをながめてみよう。

・i-PIは、ab initioに限らず、半経験的パラメータ等を用いた計算も可能である。

・さらに、DeePMD-kitで使われていることからもわかるように、外部からエネルギーと力を入力してMDシミュレーションすることも可能である。それが、下図右上の、EXTERNAL FORCE CODESとして示されている。

 

f:id:AI_ML_DL:20200210221521p:plain

 

*さて、K. T. SchüttさんのDTNN、SchNet、学位論文等からずいぶん離れてしまったようだ。

*DeePMD-kitでは、DTNNやSchNetと同等かそれ以上の性能を持つエネルギーと力の予測性能を持つニューラルネットが使われているので、どうしたものかと悩むところではある。

*Kaggleコンペのテーマであった、スカラーカップリングコンスタントの予測に対しては、DooPMD-kitで使われているニューラルネットとDTNNやSchNetのどちらが優れているかはわからない。

 

*明日は、DTNNから、さらに離れてしまうことになるが、スカラーカップリングコンスタントの予測に用いられていた、機械学習モデル、XGBoost, LightGBM, CatBoostなどを全く知らないので、勉強してみよう。

・そもそも、Gradient Boostもよくわかっていない。

・なので、タイトルを、Machine Learning without DNNに変えて、1回か2回やってから、Quantum-chemical insightに戻ってこよう。


 つづく 

 

f:id:AI_ML_DL:20200210080208p:plain

style=101 iteration=1

f:id:AI_ML_DL:20200210080301p:plain

style=101 iteration=20

f:id:AI_ML_DL:20200210080348p:plain

style=101 iteration=500

*F. CholletさんのDeep Learning with Pythonのテキストを使って、このスペースで、プログラムコードの勉強をしよう。(写経レベル)

・毎回載せている画像の加工に使っているNeural Style transfer in Kerasを使わせていただこう。

Lat's start by defining the paths to the style-reference image and the target imge. To make sure that the processed images are a similar size (widely different sizes make style transfer more difficult), you'll later resize them all to a shared height of 400 px.

Listing 8.14  Defining initial variables

from keras.preprocessing.image import load_img, img_to_array

target_image_path = 'img/portrait.jpg' # path to the image you want to transform

style_reference_image_path = 'img/transfer_style_reference.jpg' # path to the style image

width, height = load_img(target_image_path).size

img_height = 400

img_width = int(width * img_height / height)

 

以上