概要
スペクトルデータの代表的な解析処理がカーブフィッティングによるピーク検知、「ピークフィッティング」ですが、なかなか泥臭く属人性の高い解析作業と言われてきました。計測インフォマティクスが解析作業に革命を起こす!?本稿では、顕微分光計測や時分割計測、オペランド計測などで得られる大量のスペクトルデータを、機械学習で高速自動ピークフィッティングする手法開発について、データサイエンティストではない分析実験屋さんの視点から紹介します。
はじめに
皆さーん!スペクトルとっていますかー?
材料分析や化学分析に従事している方々は、日々スペクトルと向き合っておられると思います。理系の学生さんはスペクトルと格闘している方々が多いかもしれません。文系でも経済学の分野ではスペクトルを扱うことがありますよね。
そんなとても身近なスペクトルデータですが、そこから情報を汲み取るには、ひと手間「解析」という処理が必須です。スペクトルデータ解析がどのようなものかは、MI-6のデータサイエンティストによる過去記事に説明があります[1]。
さて、私は主にX線光電子分光(XPS)を使って研究をしています。XPSでは、複雑なスペクトル形状でもしばしば根性でカーブフィッティングを行ってピーク検知をしています。その際、基本的にはスペクトルをガウシアンやフォークト関数[2]といった単峰関数の足し合わせとして、非線形最小二乗法による回帰分析を用います。
XPS経験者ならよくわかると思いますが、このようなピークフィッティング解析処理は、装置に付属しているソフトや、市販のグラフ処理ソフトの標準ツール、研究室秘伝の解析ソフトを使うのが一般的です。でもこの状況、拡張性に乏しいですよね…。そして経験者の皆さん、胸に手を当てて考えて下さい。自分の考える解釈と整合性をとるために、あらゆるパラメータを固定しすぎて、なんちゃってピークフィッティング解析に陥っていませんか?
図1. XPSにおけるピークフィッティング解析処理の重要性
計測インフォマティクスはそんな属人性の大きな解析の標準化にも貢献します。例えば、ベイズ推定と交換モンテカルロ法を組み合わせることで、ピーク成分数の推定も含めて自動的にピークフィッティングしてくれる機械学習解析手法が提案されています[3,4]。
私は高輝度放射光を使った顕微XPSでデータを取得していて[5]、一度の測定で数万本以上にもなる大量のスペクトルデータをピークフィッティングする必要がありました。前述の方法は精度には優れますが、計算には少々時間がかかります。大量のスペクトルを解析する用途では、より適したアルゴリズムがあるはずです。ノーフリーランチセオリーというやつです。
図2. スペクトルビッグデータが吐き出される放射光顕微XPS装置の概要図
そこで、餅は餅屋!と、理論計算を専門としてインフォマティクス手法を既に取り入れていた研究者の友人に相談しました。
- スペクトルを全自動でピークフィッティングする(単峰性関数の足し合わせに分解する)
- ピーク位置、半値幅、強度の情報が欲しい
- 計算コストはできるだけ軽く
- 局所解に落ちにくい(ノイズを拾ってしまう過学習をおこしにくい)
- まずは簡単のために、各成分はガウシアン、バックグラウンドは考慮しない、ピーク成分数は決め打ちでよい(将来的には拡張したい)
これらを解決すべき課題として、機械学習によるXPSスペクトルの高速自動ピークフィッティング技術の開発に取り組んでいます。以下にその成果を紹介します。
スペクトル特化型EMアルゴリズム
さて、スペクトルをじっと見つめてみましょう。XPSスペクトルの生データは横軸がエネルギー、縦軸がカウント数なのでヒストグラムと見てよいわけです。各成分をガウシアンとすると、「混合ガウスモデル(GMM)」に見えてきませんか…?あの、クラスタリング手法としてよく知られている統計モデルです。
図3. 混合ガウスモデルとEMアルゴリズム
GMMにおける平均値(ピーク位置)、分散(半値幅)といったパラメータの推定には、Expectation-Maximization (EM)アルゴリズムを用いた最尤推定を行うのが常套手段です。EMアルゴリズムは反復法で計算コストが軽く、また比較的良好な大域的収束性を示す(局所解に落ちにくい)ことが知られています。
ただ、EMアルゴリズムは基本的に1次元のデータを扱うことが前提であり、カウント数が大きなスペクトルデータにそのまま適用すると、データ量が膨大になってしまいます。そこで我々は計算時のデータ量をおさえるために、エネルギーステップに強度(カウント数)の重みがあるデータとみなす「スペクトル特化型EMアルゴリズム」を考案し、適用することにしました。
図4. スペクトル特化型EMアルゴリズム
この手法を実際にXPSスペクトルのピークフィッティングに適用したところ、従来の非線形最小二乗法による回帰分析結果とコンシステントな結果が得られました。さらに、ノートPC[6]でもスペクトル1本あたり1秒~数秒以内で処理できるので、放射光顕微XPSでも測定しながらのリアルタイム解析が可能になりました。放射光の限られたビームタイムで取得すべきデータを選別するために、リアルタイム解析はとても重要なのです。
この高速自動ピークフィッティング手法の詳細にご興味がある方は論文をご参照いただくとして[7-9]、Pythonの解析パッケージは“EMPeaks”と名付けてPyPIで公開しているため、どなたでも利用することができます[10,11]。マニュアルはこれから整備予定です。
当初に挙げた課題を解決した上で、さらに手法改良も進めています。EMアルゴリズムの代わりにExpectation-Constrained-Maximization(ECM)アルゴリズムを使用することで、ガウシアンの他にもローレンチアンやフォークト関数などもピーク成分を表す関数として使えるようになり、バックグラウンドの除去処理も可能になることが分かりました[12,13]。また、最大事後確率推定を取り入れることで計算コストの軽さを保ったままピーク成分数を推定できるようになっています[14]。
高速自動ピークフィッティングパッケージ ”EMPeaks”の適用事例
実際に私が顕微XPSのデータ解析をしていて、特に高速自動ピークフィッティング技術”EMPeaks”のありがたみを実感した例を紹介します。
図5. 高速自動ピークフィッティングで全点解析することの重要性
厚みが数原子層(~数Å)程度の2次元ナノシートを積層して構築した微細トランジスタ構造の層間電荷移動を、スペクトルのピーク位置から判定しようとしていました。当初は、適当な箇所のスペクトルをピックアップして比較していましたが、実際にマッピングで取得した7396本のスペクトルを全てピークフィッティング解析したところ、かなり場所によってムラがあることが判明しました[14,15]。通常よくある、適当な箇所を選んだり、広い領域で平均をとる、といったデータの扱いが適切ではなく、スペクトルビッグデータ解析が必須な事例です。他にも、スペクトルマッピングデータの全点解析によって、エッジ領域などの局所的なキャリアドープや化学状態を明らかにすることができました[13,16,17]。
元々はXPSのスペクトルデータ解析がモチベーションでしたが、我々のEMPeaksは、ラマン分光やX線吸収分光、X線回折などの様々なスペクトルやヒストグラムのピーク検知に応用することができます。
今後の展望
ピークフィッティング解析処理ができる、拡張性の高いオープンアクセスソフトウェア(OSS)というのは意外と存在しなかったので、学会などで話すと興味を示していただける方が多く、需要が高いことは実感しています。
研究者の観点からすると、新しいアルゴリズムの開発や、出口としてデータ解析で新たなサイエンスが拓けたという観点では、論文執筆や特許申請ができるのでパッケージ開発のモチベーションは上がりますが、その先のデバグや細かい機能追加に関してはうまみが無いので、研究者自身が時間を割いて手を動かすことは難しいという事情があります。
打開策の一つとして、将来的にはコンソーシアムを構築することを検討しています。バグや追加機能の要望を共有し、OSSである利点を生かして、GitHubなどでパッケージ改良も共同で行えると、持続可能な開発が可能になると期待しています。こちらをお読みの皆様も、もしご興味がありましたら、是非仲間になって下さい!
さいごに
本稿では、「顕微XPSで得られる大量のスペクトルデータを高速自動ピークフィッティングしたい」という目標で開発した機械学習解析手法について紹介しました。
インフォマティクスの活用には「課題の明確化」がとても重要です。自分が抱えている課題を明確化・具体化し、インフォマティクスの技法で解けそうな課題に落とし込むところまでは実験屋の仕事です。実装に関してはデータサイエンティストに相談するのが早いでしょう。
インフォマティクスは便利ツールの一種として浸透しつつあり、基礎科学におけるデータ解析も例外ではありません。生成AIの進化も目覚ましく、今後の研究の進め方がどのように変化していくか、楽しみにしながら日々データ解析に勤しんでいます。
参考文献
[1] 「材料科学におけるスペクトルデータ解析」
[2] フォークト関数 (Voigt function)は、ガウシアンとローレンチアンを畳み込みした関数。
[3] K. Nagata et al, Neural Networks, 2012, 28, 82-89. DOI: 10.1016/j.neunet.2011.12.001
[4] 永田賢二, 杉田精司, 佐々木岳彦, 岡田真人, 日本物理学会誌, 2014, Vol. 69, No. 12, 876-880. DOI: 10.11316/butsuri.69.12_876
[5] 永村直佳, 堀場弘治, 尾嶋正治, 表面科学, 2016, Vol. 37, No. 1, 25-30. DOI: 10.1380/jsssj.37.25
[6] 想定しているノートPCのスペックとしては、実際に筆者が解析に使用したPCでCPU: Intel(R) Core(TM) i7, 2.1 GHz, メモリ: 16 GB程度。
[7] T. Matsumura, et al, Science and Technology of Advanced Materials(STAM), 2019, 20, 733-745. DOI: 10.1080/14686996.2019.1620123
[8] 永村直佳, 松村太郎次郎, 永田賢二, 赤穂昭太郎, 安藤康伸, 2021, 表面と真空, Vol. 64, No. 8, 382-389. DOI: 10.1380/vss.64.382
[9] 永村直佳, 安藤康伸, 表面と真空, 2024, Vol. 67, No. 10, 500-505. DOI: 10.1380/vss.67.500 (※) 2025年10月よりオープンアクセス
[10] EMPeaks (PyPI: The Python Package Index)
[11] チュートリアルサイトは移設中。現状の関連資料はこちら。https://researchmap.jp/naganao/資料公開
[12] T. Matsumura, et al, STAM Methods, 2021, 1, 45-55. DOI: 10.1080/27660400.2021.1899449
[13] T. Matsumura, et al, STAM Methods, 2023, 3, 2159753 (1-11). DOI: 10.1080/27660400.2022.2159753
[14] T. Matsumura, et al, STAM Methods, 2024, 4, 2373046 (1-15). DOI: 10.1080/27660400.2024.2373046
[15] K. Nakamura et al, ACS Appl. Mat. Int., 2020, 12, 51598-51606. DOI: 10.1021/acsami.0c13233 arXiv(オープンアクセス)へのリンク: https://arxiv.org/abs/2012.01146
[16] H. Kawamoto, et al, Nanoscale 2020, 12, 23274-23281. DOI: 10.1039/d0nr06022d arXiv(オープンアクセス)へのリンク: https://arxiv.org/abs/2012.01137
[17] M. Okada, et al, APL Materials, 2021, 9, 121115 (1-10). DOI: 10.1063/5.0070333