質問: これらの最適化にかかる時間, 最適化の拡張性の違いはなんですか? またそれぞれの強みはなんですか? ※拡張性は例えば値のみしか最適化できないなど
回答: 強化学習は累積報酬を最適化する まず、強化学習は他のふたつとは最適化しようとしているものが異なります。ラフに書くと、状態の評価関数 f に対し、強化学習は行動を何回もした後の**累積報酬** f(x1) + f(x2) + ... + f(xn) を最大化するための手法であるのに対し、他のふたつは 1 回の報酬を最大にするような値 argmaxx f(x) を求めるための手法です。 このため、強化学習では「状態 → 行動」の関数(policy)を求めますが、ベイズ最適化や遺伝的アルゴリズムでは最適な設定値など最大点を求めます。 遺伝的アルゴリズムはヒューリスティクス ベイズ最適化と遺伝的アルゴリズムは、どちらも**ブラックボックス最適化**であるという意味で、同じフレームワークに属する似た手法です。 このふたつを定量的に比較するのは私には難しいですが、現状における定性的な違いとして、理論保証のつけやすさを挙げるのは許されると思います。 つまり、遺伝的アルゴリズムは**ヒューリスティクス**であり、本当に最大値へ収束するのかどうかなかなか理論的な保証を与えるのが難しいのに対し、ベイズ最適化は最適化したい関数に適当な仮定(例:関数が "滑らか" であること)をつけ確率論を用いた解析を行うことで、収束の**理論保証**がしやすい傾向にあり、実際よく理論保証がつけられています。 しかしベイズ最適化も最強ではなく、最適化したい関数が所望の仮定を満たしていない場合は収束の理論保証を得ることができません(遺伝的アルゴリズムではそもそも保証が無い場合が多いので、この点においてはイーブンですね)。 また現状のベイズ最適化では、それなりに大きい時間計算量を必要とする傾向があります。このため、サンプル点をたくさんは取りにくく、最適化できるのであれば計算に時間がかかっても構わないという問題設定において採用されることが多いです。 謝辞:この回答を書くにあたり友人 L の助けを借りました。ありがとう!