自己紹介

鈴木雄太氏:総合研究大学院大学(以下、総研大)の鈴木と申します。私の場合、Optunaの使い方はかなり特殊だと思います。私は材料の研究をしていますが、物質の結晶構造の解析において、どのようにOptunaを使っているのかについて、紹介したいと思います。

はじめに、少し自己紹介をします。私は総研大という大学で、博士課程3年目を迎えました。「AI−assistedな物質材料の理解」を主な研究テーマとして掲げています。その実験に機械学習を応用することで、より材料を深く理解できます。その研究が私の関心事です。

学際研究なので、材料に限らず主にコンピューターサイエンスの側からも非常にいろいろな方に助けてもらっています。今日の研究も、私の次に発表する尾崎くんとの共同研究です。

今日話したいのは、材料研究におけるOptunaの応用事例で、ブラックボックス最適化を応用して、結晶構造解析を自動化した話です。

最近はやりの「なろう系」のように「何って……Oputunaを使って最適化しただけだが?」みたいな感じですが、非常にシンプルなアイデアながらうまくいきまして、いろいろ賞をもらったり、Research Highlightに選ばれたり、論文が出たりしました。

いきなりこの話をしても、たぶん何がなんだかわからないかと思うので、もう少しバックグラウンドを丁寧に説明したいと思います。

高エネルギー加速器研究機構でX線を使って物質を研究

私は茨城県つくば市にある高エネルギー加速器研究機構(KEK)で研究しています。航空写真で見てわかるように、かなり大きな施設で、宇宙や素粒子、材料、生物などいろいろな研究をしています。

加速器を使って電子を加速して、私の場合は放射光というX線を取り出して、それを使って材料を調べます。(スライドを示して)例えばこんな感じで、右の写真のように、X線を使っていろいろ材料を分析する装置があります。

X線を使うと何がうれしいのかというと、材料の結晶構造、つまり原子の並びを知ることができます。

ここに図に示しているのは電池ですが、原子の並びがわかると、例えばリチウムイオン電池がなぜ劣化しやすいのか、より性能のよい電池を作るにはどうすればいいのかといった、設計の指針を得られます。この手法は100年以上の歴史を持っていて、現代の物質科学を支えているツールの1つです。

この材料にX線を当てると結晶構造がわかりますが、この材料はいろいろな使われ方をされています。例えばタイムリーなところでは、はやぶさ2がリュウグウの試料を持って帰ってきましたが、高エネ研(高エネルギー加速器研究機構)でも、今週からこの測定を始めています。

(スライドを示して)左側に示しているのは実際のリュウグウの試料の一例ですが、このガラスの先にチョンとついている、ゴミみたいな黒い粒が、リュウグウの砂です。たぶん0.1ミリとか、もっと小さいくらいじゃないかなと思います。こんな小さい試料でも、十分に分析できます。しかも非破壊、つまり材料を壊さないで分析できるのがよいところです。

こういった強みを活かして、右の写真のように、材料を調べる施設で、PhotonFactoryというX線を使って、X線回折(XRD)測定を行っています。

このように、非常に幅広い応用が利く測定手法でもあります。「メチャクチャすごいじゃん」と思われるかもしれませんが、なかなか難しい部分もあります。

というのも、このXRDパターンを見ても正直よくわからないので、物理モデルを用いて、モデルを当てはめてデータ解析を行う必要があります。しかし、この物理モデルの当てはめのほうが、課題というか、時間の問題になることがよくあります。

ブラックボックス最適化を応用したリートベルト解析の自動化

(スライドを示して)実際の測定の様子をご覧ください。左側は愛知県にある高速XRDの装置です。このぐらい、自動で試料を交換して位置合わせをしています。今、左側からX線が出ていますが、測定が始まって、くるくる回って、データが出てくるという感じで、自動で測定が進んでいきます。

こんな感じで自動化されているので、最新のビームラインでは1日に100件から10,000件ぐらいのサンプルが自動で測れます。だいたい30秒に1本くらいのスピードで、右に示すようなXRDパターンがどんどん出てきます。

しかし、このデータ解析は1回あたりだいたい数時間、手動でカチャカチャやっているため、到底この測定タイムスケールには追いつきません。なので、これをどうにかして自動化したいというニーズがありました。

このXRDパターンの解析において、物理モデルの当てはめを用いているのがリートベルト解析という手法です。あらかじめ結晶構造を仮定しておき、結晶構造がわかっていれば、このXRDパターンはシミュレーションによって計算できます。

測ったXRDパターンに対して、結晶構造から計算されるXRDパターンが一致するように、結晶構造のほうをアップデートして、最終的に測定データに合うように精密化された結晶構造と、その当てはまりの誤差を得る手法です。

下のほうにチラッと書いてある「モデルパラメータ」がよく使われていますが、このパラメーターは、たくさん試行錯誤して決める必要があります。

このパラメーターの調整には経験が必要で、マシンラーニングをしている方なら「ん? なんかどっかで聞いたことあるな」という流れがここにもありました。そこで私たちは、リートベルト解析も、このブラックボックス最適化の枠組みで解けるのではないか、と思い至ったわけです。

ブラックボックス最適化については、今までもいろいろなところで何度も説明されているので、ここでは割愛します。私たちが使っているリートベルト解析も、機械学習モデルのハイパーパラメーター最適化と同様に解けるのではないかというのが、今回の研究のコアアイデアです。

つまり、初期結晶構造とパラメーターを与えて、フィッティングして誤差を得ます。この操作において、真ん中の部分をブラックボックスファンクションと見なします。パラメーターを与えると誤差を返すような関数であると考えれば、ここは自動的に探索できるので、このようにして研究を行いました。

アルゴリズムにはTPEを使用

ここは若干専門的ですが軽く説明します。リートベルト解析そのものは、既存のソフトウェアパッケージがあるので、こちらを使っています。GSAS−Ⅱというソフトウェアなのですが、ありがたいことに、私がこの研究を始める数ヶ月前くらいにPython APIが入ってきて、タイムリーに使えるようになったので、こちらを使っています。

ここで探索しているのは、GSASの設定、ハイパーパラメーターです。ここではRwpという当てはまり誤差なのですが、予測エラーにも似たもので、小さいほどよい値です。こちらを最小化するような設定を探すために、このソフトウェアを設計しました。

アルゴリズムには、Tree−structured Parzen Estimator(以下、TPE)を使っています。ソフトウェアを実装して、3つの材料を実際に用いて検証しています。(スライドを示して)この下のテーブルが、最適化しているハイパーパラメーターの一覧です。連続のパラメーターもあれば、カテゴリカルなものもあったり、コンディショナルなものもあったりと、なかなか扱いづらいパラメーター群ではありますが、TPEはここらへんをいい感じに扱ってくれるので、大変強力なアルゴリズムです。

(次回へつづく)