概要
もう実験で疲弊しない。ベイズ最適化とPythonを駆使して、効率よく研究・開発を進めよう! データ解析の初歩から、モデルの設計、実践的な応用まで導 く。実験時間が限られる今、絶対に役立つスキルが身につく!(引用:講談社サイエンティフィク)
目次
第1章 データ解析・機械学習を活用した分子設計・材料設計・プロセス設計・プロセス管理
1-1 ケモ・マテリアルズ・プロセスインフォマティクス 1-2 分子設計 1-3 材料設計 1-4 なぜベイズ最適化が必要か 1-5 プロセス設計 1-6 プロセス管理 1-7 データ解析・人工知能(モデル)の本質
第2章 実験計画法
2-1 なぜ実験計画法か 2-2 実験計画法とは 2-3 適応的実験計画法 2-4 必要となる手法・技術
第3章 データ解析や回帰分析の手法
3-1 データセットの表現 3-2 ヒストグラム・散布図の確認 3-3 統計量の確認 3-4 特徴量の標準化 3-5 最小二乗法による線形重回帰分析 3-6 回帰モデルの推定性能の評価 3-7 非線形重回帰分析 3-8 決定木 3-9 ランダムフォレスト 3-10 サポートベクター回帰 3-11 ガウス過程回帰
第4章 モデルの適用範囲
4-1 モデルの適用範囲とは 4-2 データ密度 4-3 アンサンブル学習
第5章 実験計画法・適応的実験計画法の実践
5-1 実験候補の生成 5-2 実験候補の選択 5-3 次の実験候補の選択 5-4 ベイズ最適化 5-5 化学構造を扱うときはどうするか
第6章 応用事例
6-1 複雑な非線形関数を用いた実験計画法・適応的実験計画法の実践 6-2 分子設計 6-3 材料設計 6-4 プロセス設計
第7章 さらなる深みを目指すために
7-1 Gaussian Mixture Regression(GMR) 7-2 GMR-Based Optimization(GMRBO)(GMRに基づく適応的実験計画法) 7-3 複雑な非線形関数を用いたGMRBOの検証
第8章 数学の基礎・Anaconda・Spyder
8-1 行列やベクトルの表現・転置行列・逆行列・固有値分解 8-2 最尤推定法・正規分布 8-3 確率・同時確率・条件付き確率・確率の乗法定理 8-4 AnacondaとRDKitのインストール・Spyderの使い方
対象
データ解析・実験計画法に興味がある研究者・技術者。一般的な実験の結果を例にしているので分野は問いません。本書は、Pythonの使い方を習得するための教科書ではないので、Pythonの予備知識がなくても読み進めることができます。本の中で取り扱っているコードと数式の理解には、基礎的なプログラミングと高校数学の知識が必要です。
解説
本書は、実験計画法についての入門書です。実験計画法とは、効率の良い実験方法を計画し結果を適切に解析することを目的とする統計学の応用分野です。例えば教授から最も収率が高くなる実験条件の探索を頼まれたとします。反応温度は室温、60度、90度で、反応時間は30分、60分、90分、溶媒はトルエン、THF、DMSO、基質の官能基が、メチル、エチル、ベンジル、触媒の金属が、鉄、銅、パラジウムだとすると全ての組み合わせを試すとすると、3×3×3×3×3=243通りあり、この実験だけで一年が終わってしまいます。(もちろん化学的な知識と過去の結果を参照すれば、収率が明らかに低い組み合わせは実験対象から除外できますが、ここでは統計学的な観点のみで考えるため、化学の経験で効率よく実験を行うことは考えません。)しかし実験計画法のテクニックを使用すれば、すべての組み合わせの実験を行わなくても、必要最低限の実験と統計学的な解析で任意の条件での収率を予測することができます。本書では、具体的な実験計画法の使い方とその計画に則って実施された実験の解析方法を中心に解説しています。
多くのPythonの解析書では、初めにあるタスクを行うためのコードが例示されていて、その次にサンプルのコードで使われている関数(printなど)を解説していくスタイルが多いですが、本書にはコードに使われている関数の解説はほとんどありません。もちろん解析をPythonで行う上で、基礎的な文法、関数の理解は必要ですが、ある程度確立された手法の解析を走らせるだけなら、コードを理解するよりも解析手法を理解するほうが重要であり、本書では例示されているコードを走らせるとどのような原理で解析が行われるかが主に解説されています。そのためPythonの技術書というよりかは、実験計画法の解説書として位置付けられる内容となっています。
では各章の内容に移りますが、第一章ではデータ解析・機械学習の概念、応用先について基礎的な内容を紹介しています。データ解析を勉強していない人にも、それなり勉強した人にも頭の中を整理するのに役に立つ内容になっています。本の後半からベイズ最適化を取り扱っていきますが、1-4のなぜベイズ最適化が必要かについてでは、図付きで大変わかりやすく解説されております。第二章では、実験計画法について紹介しています。短い章ですが、実験計画法でよく使われるD最適基準は、なかなかWebで探してもしっくりと来る解説にたどり着けない中、本書では初心者でもわかりやすい説明がなされています。
第三章から解析手法の解説に入っていきます。序盤は基礎的な統計量についてで、中盤では線形回帰モデル、終盤では線形以外の回帰モデルについて紹介しています。ある程度、回帰モデルに慣れている場合には、中盤までは初歩的だと感じるかもしれませんが自分の場合は、回帰モデルから先の内容についてはモデルの名前を耳にしたことがあるに過ぎず、手法の詳細については把握していなかったので大変参考になり、機会があればこれらの解析手法についても試したいと思いました。第四章では、モデルの適応範囲の判定方法について解説されています。分子量が100から200の化合物で物性評価を行い予測モデルを作った場合を考えます。例えば、分子量が210の化合物に対しては、その予測モデルを使っても正しい予測値が得られるかもしれません。しかし分子量が1万の化合物を調べるには予測モデルを作った時の実測データから離れすぎていて、正しい予測値が得られるかどうかは分かりません。この例では分子量という一つの条件でしたが、複数の条件がある場合には、調べたい条件がモデルの範囲から十分近いか離れているかを感覚で調べることは難しく、そんなときに本章で解説された手法で特定の調べたい条件がデータ集団のどこに位置しているのかを調べることができます。
第五章でついにベイズ最適化について解説されています。ここまでの4章は、ベイズ最適化に必要な各要素を説明しており、それらを組み合わせてモデル構築、実験条件の選択、目標達成の判定のサイクルを回すことについて解説しています。ベイズ最適化の本質は、次の実験条件をどう選択するかであり、それに必要な獲得関数について本章では詳しく解説されています。この章を読む前は、ベイズ最適化についていまいち理解できず、漠然と実験数を最小限で最適化できるすごい方法だと思っていました。しかしこの章を読むとここまでの内容の組み合わせで構成されていることがわかり、少なくともどんな原理であるかを理解することができます。第六章では、ここまでで習得した解析方法を使用して実際に解析を行った結果が例示されています。実際に実験を行った結果ではなく、手法ごとに目標値に収束するまでの試行回数を比較していることが興味深い点です。第七章では発展的内容として混合ガウスモデルとそれを利用した実験計画法について解説しています。本筋の内容は第七章で完結し、第八章は、解析原理の理解に必要な数学の基礎とAnacondaのインストール方法に触れています。
本書で使われているPythonのコードは、解析の題材となったデータと共にすべて公開されているので、Pythonの環境さえ整えれば、コードを走らせるだけで同じ解析を行うことができます。サンプルのデータ以外にも解析できるようにコードが書かれているので、自分の実験データに対しても本書で取り扱われている解析をすぐに行うことができます。パソコンの解説書は、立ち読みして解説の仕方が自分に合っているか確認してから購入したほうが良いですが、本書はベイズ最適化に加えて実験計画法に関連する様々な解析の手法を自体を勉強するには最適な本であり、興味がある人にとっては内容が自然と頭に入ってくると思います。自分の経験と化学的な知識だけなく、データサイエンスの力を借りて実験の次の一手を考えてみてはいかがでしょうか。