文系出身者が説明する数式なしのベイズ最適化〜概要編
本記事について
本記事は ラクスパートナーズアドベントカレンダー 2023 3日目 の投稿になります。
本記事はタイトルの通り、「ベイズ最適化とは何か」を説明することがテーマとなっています。
「ベイズ最適化」は機械学習モデルの1つで、この記事に辿り着いた方は、「ベイズ最適化って何だろう?」という方が多いかなと思います。
筆者の体験として、初めて「ベイズ最適化」を実装する上で、「どんなことができるモデル」なんだろうかということを理解するのに苦労した経験から、本記事を執筆するに至りました。
そんな方々のために、本記事では、「数式」を用いずに、ベイズ最適化を説明し、「何となくわかった!」と思ってもらえる内容となっております。
("理論編"、"実装編"については後日公開。)
本記事の対象者
- ベイズ最適化の実装をする前に概要を知っておきたい人
- ベイズ最適化という言葉はよく聞くから、概要だけ知っておきたい人
ベイズ最適化とは?
ベイズ最適化を一言で表すなら、
「情報を少しずつ集めて、そこから最適な選択をする手法」
と言えるでしょう。
ベイズ最適化は、以下のような技術が組み合わさって構成されています。
- ガウス過程回帰
- カーネル関数
- 獲得関数
ただ、これらを説明することは、本記事では行いません。もっと直感的に理解できることを目指したいと思います。(詳しくは"理論編"で)
そこで今回は、イメージがしやすい例題を1つ用いて、ベイズ最適化がどんな活躍をするのかを説明したいと思います。
一番いい薬を作りたい会社のお話💊
あるところに、ある病によく効く薬を製薬している会社Rがありました。
会社Rでは、日夜、開発研究を行い、より良い薬を追い求めていました。
ただ、その薬を研究するのには、膨大な時間がかかります。理由は以下の2点です。
- 材料がA~Eまであり、それぞれ1~5の濃度レベルがある。
- 1つの組み合わせで薬を製薬するのに、1週間が必要
※あくまでわかりやすい例としておりますので、現実的かどうかはご容赦ください。
まず1について考えて見ましょう。5種類の材料にそれぞれ5通りのパターンがあることがわかります。それを組み合わせるわけですから、計3,125通りのパターンがあるわけです。
その上で2の状況ですから、全ての組み合わせを試すのに、3,125週間、約60年かかってしまいます。もちろん研究開発のプロですから、ある程度どういう割合で混ぜればいいかは検討がありますが、それは感覚的でもあります。
そこで役立つのがベイズ最適化という機械学習モデルです。ベイズ最適化は「情報を少しずつ集めて、そこから最適な選択をする手法」でした。それができれば、より効き目の良い薬になる組み合わせを探せるというわけです。
会社Rでは、これまでの研究で、125通りのパターンについて、実際に開発をしました。これが、ベイズ最適化に用いる「情報」になります。
この「情報」には、効き目にばらつきがあり、良いものもあれば、全くだめなものもありますが、その全てが次の最適な選択肢を導くための糧になります。
10通りの [材料A~Eの組み合わせ - 薬の効き目] という研究データをベイズ最適化の学習のために使います。すると、ベイズ最適化は、その情報からどんな組み合わせが良くて、どんな組み合わせが良くないのかを学ぶわけです。
次にまだ試していない、残り3,115通りの組み合わせを用意して、ベイズ最適化に調べてもらいます。すると、ベイズ最適化は学んだ情報から、3,000通りの中で、効き目が良いだろうという組み合わせを提案してくれます。
提案された組み合わせを実際に開発してみれば、効き目がわかるというわけですね。
ただ、この世に絶対がないのと同様に、ベイズ最適化が提案した組み合わせでも、効き目が特に良くないということもあります。
でも、ベイズ最適化は優秀で、一度開発すれば、研究データは11個になり、学習するデータも増えます。そしたら、次こそはとまた効き目が良くなりそうな組み合わせを提案してくれます。
つまり、研究が進めば進むほど、ベイズ最適化も賢く、優秀になっていき、短期間でより良い薬が製薬されるというわけです。
まとめ
簡単な例題ではありましたが、実際に研究•開発が伴う分野では、ベイズ最適化が用いられています。また、機械学習エンジニアの方なら"Optuna"というライブラリで活用されてると、聞いたことがあるかもしれませんね。
昨今、生産年齢人口が減少している日本で、
マンパワーを駆使して、研究•開発を効率化することは困難でしょう。そのため、より効率化が求められる局面です。
ただ、研究者の方で、機械学習にも精通しているという人は多くないので、そういったところに機械学習エンジニアの需要はあるんじゃないかと感じています。
最後に、これを読んで、「ほんとにそんなことできるの?」だったり、「どうやってそんなことができるんだ?」という疑問もった方は、ぜひ"理論編"、"実装編"を楽しみに待っていてください。
いいねをしてもらえれば、なるべく早く投稿できるように頑張ります!
最後まで読んでいただき、ありがとうございました。
Discussion