jiku log

データサイエンスの核心を掴む : 学びと発見の記録

「ベイズ最適化」を読む ~第6章 多目的ベイズ最適化 ②パレート最適解~

はじめに

データを使って仮説の生成と検証を行なうための方法であるベイズ最適化を学ぶために,今村秀明・松井孝太 著「ベイズ最適化 ー適応的実験計画の基礎と実践ー」を読むことにした。

本記事は,「第6章 多目的ベイズ最適化」のうち,パレート最適解に関する読書メモである。

  • 本書の紹介ページ

www.kindaikagaku.co.jp

6.1 多目的最適化とは

関連記事(「ベイズ最適化」を読む ~第6章 多目的ベイズ最適化 ①多目的最適化とは~ - jiku log)において,弱優越パレート最適解について説明があったが,直感的に理解するのが大変だったので,具体例で確認してみた。

弱優越の図示

あらためて,弱優越の定義を確認する。

定義(解の優越)

2点 \mathbfit{x}, \mathbfit{x}' \in \mathcal{X}に対して,すべての m=1, \cdots, M f^{(m)}(\mathbfit{x}) \leq f^{(m)}(\mathbfit{x}') が成り立つとき, \mathbfit{f}_{\mathbfit{x}} \mathbfit{f}_{\mathbfit{x}'}弱優越する(weakly dominate)といい,記号 f^{(m)}(\mathbfit{x})  \preceq  f^{(m)}(\mathbfit{x}')で表す。


弱優越の具体例を考える。 M=2のとき,2つの点 x, x'が与えられると, (f^{(1)}(x), f^{(2)}(x))^T (f^{(1)}(x'), f^{(2)}(x'))^Tの2つのベクトル値が得られる。

今回,目的関数を最小化したいので,「小さい方が優越している」とみなせる。「 \mathbfit{f}_{x}が, \mathbfit{f}_{x'}を弱優越している」という状態は,定義から


 \begin{align}
  \begin{cases}
    f^{(1)}(x) \leq f^{(1)}(x')   \\
    f^{(2)}(x) \leq f^{(2)}(x')   \\
  \end{cases}
\end{align}

という状態のことである。この状態を, f^{(1)}-f^{(2)}平面に図示すると以下のようになる。さらに「 \mathbfit{f}_{x}が, \mathbfit{f}_{x'}を弱優越している領域」も以下のように図示できる。

図1 : 弱優越されている状態

またこのことから,「 \mathbfit{f}_{x^*}が, \mathbfit{f}_{x}に弱優越されていない状態」というのは,以下のようになる。

図2 : 弱優越されていない状態

パレート最適解の定義は,以下の通りであった。

定義(パレート最適解)

実行可能解 \mathbfit{x}^* \in \mathcal{X}における関数値ベクトル \mathbfit{f}_{\mathbfit{x}^*}が任意の \mathbfit{x} \in \mathcal{X}に対して \mathbfit{f}_{\mathbfit{x}}に弱優越されないとき, \mathbfit{x}^*パレート最適解 (Pareto optimal solution)と呼ぶ。

したがって, x^*に対して,どんな x \in \mathcal{X}を持ってきても図2のような状態になるとき, x^*はパレート最適解になる。
逆に x^*に対して,どれか1つ x \in \mathcal{X}を持ってくると図1のような状態になるとき, x^*はパレート最適解にはならない。

数値例

具体的な目的関数を持ってきて確認してみる。


 \begin{align}
&f^{(1)}(x) = x^2 \\
&f^{(2)}(x) = (x-2)^2  \\
&-5 \leq x \leq 5
\end{align}

とする。

 xを変化させて (f^{(1)}(x), f^{(2)}(x))を計算し, f^{(1)}-f^{(2)}平面に図示すると以下のようになる。


上図の描画用コードは以下の通り。


パレート最適解の定義にしたがってパレートフロントを計算すると以下のようになる。なおパレート最適解は, 0 \leq x \leq 2である。
この図から,パレート最適解は,解の集合のうち「左下」の部分になることが分かる。

上図の描画用コードは以下の通り。

まとめと感想

今回は,「第6章 多目的ベイズ最適化」のうち,パレート最適解について確認した。

定義を読んだだけでは,パットは分からなかったが,図示してみるとよく理解できた。ただ考えてみると当たり前で,上記の平面上では,目的関数はできるだけ左下の領域に持っていくように最適化が進んでいくので,実行可能解の集合のうち,左下の部分がパレート最適解になるわけである。

本記事を最後まで読んでくださり,どうもありがとうございました。