獲得関数とは、ベイズ最適化において次にどの点を探索すべきかを決定するための基準となる関数です。未知の目的関数の予測平均と不確実性を考慮し、効率的な探索と活用のバランスをとりながら最適なパラメータを見つけ出すために用いられます。
獲得関数とは
一言でいうと獲得関数とは、次に調べるべき最も有望な実験条件やパラメータの場所をスコア化して選び出すためのガイド役です。
詳しく解説
ベイズ最適化のプロセスでは、まず得られたデータをもとに確率的モデル(サロゲートモデル)を構築し、未知の領域における目的関数の推定値とその不確実性(分散)を得ます。しかし、推定値が高い場所ばかりを狙うと局所最適解にとどまってしまい、不確実性が高い場所ばかりを狙うと効率が悪くなります。ここで獲得関数が登場します。獲得関数は、期待改善量(EI)や上限信頼下限(UCB)などの基準を用いて、未知の領域に対する「探索」の重要度と、すでに分かっている最良値付近をさらに深く調べる「活用」の重要度を数学的にトレードオフとして評価し、次に評価すべき一点を導き出します。
具体例・使われ方
機械学習モデルのハイパーパラメータチューニングにおいて、学習率や正則化係数の最適な組み合わせを効率よく探索する際に利用されます。また、新薬の開発における分子構造の最適化や、ロボットの制御パラメータの調整など、1回の実験や評価に膨大なコストがかかる最適化問題で広く活用されています。
似た用語との違い
サロゲートモデル(代理モデル)が目的関数の形状を予測・近似する役割を持つのに対し、獲得関数はその予測結果をもとに「次にどこを評価すべきか」を決定する判断基準を提供するという役割の違いがあります。
注意点
獲得関数の計算自体は目的関数そのものの評価よりも安価ですが、複雑な定義になると獲得関数の最大化問題自体を解くことに追加の最適化手法が必要になる場合があります。また、選定する獲得関数の種類やパラメータ設定によって探索の効率が大きく左右されるため、問題の性質に応じた適切な選択が求められます。