専門家ほど専門用語を使わない~専門用語に頼らず中級者から上級者への道を進む~

分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。

このようなデータ解析や機械学習の分野を学んだり、経験したりすると、いろいろな専門用語に出会います。実際、データ解析・機械学習の議論の中で、専門用語を使うことで議論しやすくなるとことはあります。

しかし一方で、専門用語を使うことで、実際に起きている現象の細かいところが全て削ぎ落とされて、1つの専門用語にまとめられてしまう、という危険もあります。

例えば、「過学習」という専門用語がありますが、基本的に私は、データ解析・機械学習に関する議論の中で「過学習」という言葉を使いません。一般的に使われている「過学習」の意味は、モデル構築に用いたサンプルに過度に適合することで、新しいサンプルに対する予測性能が低下することです。ただ実際、モデルを構築するとき、「過学習」をすべて悪として、少しでも「過学習」が起きているモデルを排除しようとすると、データ解析・機械学習で設計すべき分子・材料・プロセスを適切に予測してくれるモデルも排除されてしまう危険があります。モデル構築用のサンプルに良く適合しているモデルにも、

 

① 新しいサンプルを全く予測できないモデル

② 新しいサンプルをほどほどに予測できるモデル

③ モデル構築用のサンプルと同程度に新しいサンプルを予測できるモデル

 

といった色々なモデルがあります。トレーニングデータに過度に適合していると考え、「過学習」が起きている!として、②のようなモデルを省いてしまうとよくありません。一方で、③のようなモデルになるとよいかもしれませんが、そもそも検証方法に問題があるケースもあります。

これらを、モデルは「過学習」している、と丸め込んでしまうと、次の議論に発展しません。ちなみに、研究室の中での学生との議論の中で、学生が「過学習」が起きているため・・・とか言うときには、具体的にどのような現象が起きていて、それは今回の系で良い方向の内容なのか、悪い方向の内容なのか、といったことを聞いてその先の議論をするようにしています。

他の例で、ベイズ最適化において PI (Probability of Improvement), EI (Expected Improvement), MI (Mutual Information), PTR (Probability of Target Range) などの、どの獲得関数を使うか、といった議論もありますが、基本的に私は、獲得関数を選ぶという考え方はしません。今あるデータセットやそのデータセットで達成したい目的を考え、対象の実験系でベストな獲得関数を設計します。もちろん、結果的に設計したものが、既存の獲得関数の専門用語 (EI など) で表されることもありますが、最初から既存のものから選択するという立場ではありません。既存のものから選択する立場では、今立ち会っている実験系において、より適切な獲得関数を考える、という発想にならず、これまでの最適化に過ぎません。なお、上の説明では、分かりやすさのために「獲得関数」という専門用語を用いましたが、基本的にそれすら用いずに、フラットにベイズ最適化で探索するための関数を考えています。

このように考えることで、その結果として、新たな数理モデルの構築方法を考案できたり、新たな獲得関数を提案できたりするものと思います。

具体的な研究テーマになるほど、最先端の内容になるほど、専門用語を当てはめることで解決するものではなくなってしまいます。専門用語を使いこなせるようになると嬉しいかもしれませんが、それではまだまだ中級者です。中級者の方が上級者になろうとするときは、一度専門用語から離れ、起きている現象をフラットに確認し、そこから議論を積み上げていくとよいと思います。

 

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

タイトルとURLをコピーしました