分析ワークフロー
このページでは、推奨する分析ワークフローを順を追って説明します。
各ステップでは、使用するウィジェットと、そのウィジェットが用いる手法の理論ページへのリンクを併せて示します。
初めて最適化結果を分析するときは、ステップ 1、2、6 だけでも十分です。
ステップ 3、4、5 は結果をより深く読み解くための手順なので、必要に応じて進めてください。
以下のような流れで分析を進めます。
flowchart TD
s1["1. Dashboard にデータを読み込む"] --> s2["2. 全体像を掴む"]
s2 --> s3["3. 分布と相関を把握する"]
s3 --> s4["4. 効いているパラメータを特定する"]
s4 --> s5["5. 結果の形を見る"]
s5 --> s6["6. 良いトライアルを選ぶ"]
s6 --> s7["7. 選んだ設計案を検証する"]
s7 --> s8["8. さらに探索する(任意)"]
s8 -. "新しい候補を次の最適化へ" .-> s1
s2 -. "まずは結果が欲しい場合" .-> s6
1. Dashboard にデータを読み込む
まず、分析したい最適化結果を開きます。
ダッシュボードは Optuna のストレージファイル(Journal、SQLite、PostgreSQL、MySQL)を直接読み込めるため、変換は不要です。
ファイルは読み取り専用で開くので、別の場所で実行中の最適化のデータベースであっても、そのまま開いて構いません。
2. 全体像を掴む
次に、詳細な分析に入る前に、そもそも最適化がうまくいったのかを確認します。
最適化が十分に進んでいないまま個々のパラメータを分析しても、そこから読み取れる傾向は偶然の産物かもしれません。
そのため、細部に入る前にこの確認を済ませておきます。
単目的最適化の場合
- Trial Table と Optimization History で結果を眺め、トライアルの数と目的関数の改善傾向を確認します。
- 目的関数がトライアル数の増加とともに改善しているかを見ます。改善していなければ、最適化はうまくいっていません。
多目的最適化の場合
- Convergence Indicators チャートで収束状況を確認します。
- このチャートでは、Hypervolume、IGD+、ε-indicator、R2 の 4 指標を共通スケールで追跡することで、複数の Study も比較できます。指標の選び方と定義は同ページを参照してください。
- 結果の線が平坦にならず増加(または減少)し続けているなら、最適化にはまだ改善の余地があります。
3. 分布と相関を把握する
最適化がうまくいっていることを確認できたら、パラメータと目的関数がどう分布し、互いにどう関係しているかを把握します。
いきなり多変量の手法にかけるよりも、まず 1 変数ずつ分布を見ておくことで、外れ値や多峰性といった後の分析に効いてくる性質に気づけます。
- 1 変数ずつ:ヒストグラム(歪み、多峰性、外れ値)、箱ひげ図(並べて比較)
- 全ペアを一望:相関行列のヒートマップで概観し、気になる相関は Scatter Matrix で実際の形状を確認します
相関行列は全ペアの関係を 1 枚で見渡せます。
ですが、示しているのは相関の強さだけなので、実際にどのような形で関係しているかは Scatter Matrix で確かめてください。
4. 効いているパラメータを特定する
分布を把握したら、次は Importance Chart で、各目的関数に対するパラメータの影響度をランク付けします。
次の 2 段階で進めるのがおすすめです。
- まず Spearman か
Ridge の結果を確認
- どちらも高速で、符号付き(影響の方向がわかる)です。ただし線形を前提とするため、交互作用や非線形性は考慮しません。
- 交互作用や非線形性を確認
- Sobol(交互作用)、SHAP(説明可能性)、Permutation(安定性)などによって、より精度の高い影響度を確認できますが、計算コストが高くなります。
段階を分けるのは、精度の高い手法ほど計算コストが高いためです。
先に高速な手法で当たりをつけておくことで、時間のかかる手法を確認したいパラメータに絞って使えます。
手法の比較と使い分けは、選択ガイドを参照してください。
5. 結果の形を見る
どのパラメータが効くかわかったら、次は、それが目的関数へどう影響するかを見ます。
重要度はどのパラメータを見るべきかを教えてくれますが、値をどちらに動かせばよいかまでは教えてくれません。
そのため、影響の形そのものを次のウィジェットで確認します。
- 1 パラメータ:1D PDP または Slice Chart
- 2 パラメータ:サロゲートモデル上の 2D PDP。モデルを介さず実測値だけを見たいときは Observed Contour(外挿なし)を使います
- 候補設計の周辺の局所なコンター:Response Surface 3D
2D PDP や Response Surface 3D はサロゲートモデルを介して描くことで、トライアルのない領域も滑らかに埋められます。
ですが、その部分はモデルによる推定であって実測値ではないので、実測値だけを見たい場合は Observed Contour を使ってください。
サロゲートモデルの選択(Ridge、Random Forest、GP 系)には、速度と表現力のトレードオフがあります。
詳細は、モデル比較を参照してください。
6. 良いトライアルを選ぶ
ここまでで結果の傾向がつかめたら、トライアルを、実際に採用する設計案まで絞り込みます。
- トレードオフの全体像を確認する
- Pareto Scatter 2D(3 目的なら Pareto Scatter 3D)
- MCDM 手法で、単一の総合スコアによりランク付けする
- 類似するトライアルをまとめる
- 絞り込んだ候補同士は、Radar Comparison(形状の比較)と Comparison Table(値の比較)で見比べられます。
パレートフロント上の候補は互いにトレードオフの関係にあるため、目的関数値だけを見ても優劣は決まりません。
MCDM 手法は、目的ごとの重みという形で価値判断を明示することで、この候補集合を単一の順位に落とし込みます。
裏を返すと、同じ候補集合でも重みが変われば順位も変わるということです。
そのため複数の手法や重みを試し、同じトライアルが上位に残るかを確認しておくと、選定の根拠を説明しやすくなります。
7. 選んだ設計案を検証する
候補が決まったら、その設計案が実際に使えるかを検証します。
計算上は最適値でも、実際の設計では製作誤差や環境変動によって性能が変わることがあります。
- 入力ノイズに対する安定性は、Robustness ウィジェットで確認します(サロゲート上のモンテカルロによるノイズ伝播)。
- 設計空間に複数の領域がありそうなら、クラスタリング(k-means、階層クラスタリング、PCA Biplot、SOM Map)で、候補が孤立した外れ値でないことを確認します。
孤立した外れ値は、少しの入力の変化で性能が大きく変わることがあるため、同じ性能でもまとまりの中にある候補のほうが扱いやすい場合もあります。
詳しくはクラスタリング概要を参照してください。
8. さらに探索する(任意)
最後に、ここまでで十分なトライアルが見つからなかった場合の手段を紹介します。
Surrogate Optimizer を使うことで、学習済みモデル上で有望な新候補を探索できます。
サロゲートモデル上での探索なので、実際の評価を追加することなく、すでに得られているトライアルよりさらに改善が見込める領域を探せます。
ここで見つかった候補は、次の最適化の出発点として使えます。