機械学習メモ

化学を機械学習で何か

訓練済みモデルと書籍

訓練済みモデル

Xenonpy公式サイトによると、訓練済みモデルライブラリXenonpy.MDLが利用できなくなっているようだ。version 0.7(2024年予定)にて利用可能なように目指すということ。

yoshida-lab/XenonPy: XenonPy is a Python Software for Materials Informatics (github.com)

個別のモデルに関しては、github管理をしている先生に所属機関と目的を伝えれば、何らかの方法で利用可能となっている。

 

書籍

昨年の夏にXenonpyの利用例などが掲載された書籍が発売されている。CrysPyの利用方法も載っている。

マテリアルズインフォマティクス - 共立出版 (kyoritsu-pub.co.jp)

 

MI-book

前述の書籍内のXenonpy利用に際して取り扱ったコードを公開しているようだ。熱伝導率・線膨張係数・密度などに対する予測モデル構築も取り扱っている。転移学習に利用できる訓練済みモデルが提供されないので、一部動かないという内容だが、MD計算結果がついているので、ランダムフォレストでモデリングができる状態にある。これを用いて逆解析をできる事例がついている。

yoshida-lab/MI-Book (github.com)

 

というわけで、Amazonにて購入いたしました。

マテリアルズインフォマティクス | 伊藤 聡, 吉田 亮, 劉 暢, Stephen Wu, 野口 瑶, 山田 寛尚, 赤木 和人, 大林 一平, 山下 智樹 |本 | 通販 | Amazon

論文に記載されている内容を数学的にわかりやすく起こしたものなのかなと想像しています。

Xenonpyのインストール

動機

2023年3月17日より、Xenonpyを使った機械学習の方法を勉強するためにしばらくは、Xenonpyに関する事柄を自分のために記録する。小目標として、「Xenonpy(https://github.com/yoshida-lab/XenonPy)を使いこなす。」
を掲げて、しばらく続けていく。
しかしながら、少しの縛りを設ける必要がある。

機材と環境

Macbookpro(2021,14inch)
Miniconda (arm64 Apple Silicon)インストール済み

Linuxではなくて(あるけど)、MacのM1搭載機をフル活用したいので、機材に選んでいる。

準備

Xenonpyの環境を作成するのがまず最初にやるべきことで、コマンドを羅列していく。

conda create -n xenonpy  python=3.8
conda activate xenonpy
pip install xenonpy


不足しているパッケージ

  • PyTorch
  • Tensorly
  • Matminer
  • Xgboost
  • Ngboost
  • Fastcluster
  • Rdkit
  • OpenNMT-py
  • Optuna
  • Ipympl

Pytorch2.0.0がリリースされて話題になっているが、pytorch_geometricを使いたいので、あえて1.13を入れる。M1 Apple silicon用にバイナリが用意されていないため、pyg-libはソースからコンパイルする必要がある。ここではbrewでcmakeを導入した。

pip3 install torch==1.13 torchvision torchaudio
pip install pytorch-lightning 
pip install  torch_scatter torch_sparse torch_cluster torch_spline_conv torch_geometric
brew install cmake 
pip install git+https://github.com/pyg-team/pyg-lib.git  

ここまでできたら、そのほかの足りないライブラリーを入れる。

pip install tensorly matminer xgboost ngboost fastcluster rdkit-pypi OpenNMT-py optuna ipympl  jupyterlab

Pythonのコンソール画面で試してみて、表面上はインストールできていることを確認した。

Python 3.8.16 | packaged by conda-forge | (default, Feb  1 2023, 16:01:13) 
[Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import xenonpy
>>> xenonpy.__version__
'0.6.7'
>>> from rdkit import Chem
>>> mol=Chem.MolFromSmiles("C")
>>> mol
<rdkit.Chem.rdchem.Mol object at 0x104c65120>