紹介する論文
Knowledge-guided generative surrogate modeling for high-dimensional design optimization under scarce data
完結に:
データが極端に少ない設計最適化問題において、専門家のドメイン知識をサロゲートモデルに体系的に組み込むフレームワーク「RBF-Gen」を提案した論文。放射基底関数(radial basis function: RBF)の零空間を生成ネットワークで探索することで、「データを必ず補間しつつ、物理的に妥当な関数を生成する」という両立を実現している。
査読付きの雑誌:
arXiv:
著者らからのコードの提供がないので、私の方で実装したものをGitHub上にアップしました。
PyTorchを使用して実装しています。
特に解説はしない予定です。(コーディングエージェントさんがしてくれるはず...)
既存のサロゲートモデルに対する課題感
実務的問題
研究室での物質設計や半導体製造などの現場では、メカニズムが非常に複雑なため、忠実なシミュレーションが使えない・計算コストが膨大というケースが多い。
そのため、少数の実験データからサロゲートモデルを構築して最適化を行うことが一般的なアプローチになっている。
データ不足問題
しかし実験は時間もコストもかかるため、取得できるデータ点数 $N$ が設計変数の次元数 $d$ に対して極端に少ない($N \ll d$)状況が頻繁に発生する。
この「データ不足 × 高次元」の組み合わせがサロゲートモデリングを著しく困難にしている。
既存手法の限界
- RBF・クリギング(ガウス過程):少数データの低次元問題には有効だが、エンジニアリング知識を組み込む仕組みがなく、$N \ll d$ では予測精度が急落する
- PINN・GAN等のニューラルネットワーク系:物理知識や分布の事前情報を埋め込めるが、安定した学習には通常数千サンプルが必要で、数十点しかない実務問題には不向き
宝の持ち腐れになっているドメイン知識
現場の専門家(Subject Matter Experts: SMEs)は、設計変数と出力の間にある「単調性」「正値性」「凸性」「出力の大まかな範囲」といった定性的な知識を持っていることが多い。
しかし既存のサロゲートモデリングフレームワークには、そのような知識を体系的に組み込む手段がない。
解決策:RBF-Gen
基本アイデア:過完備RBFによる解空間の拡張
通常のRBFはトレーニング点を基底関数の中心として使うため、解が一意に固定されてしまう。RBF-Genでは 中心数 $K$ をデータ点数 $N$ より多く($K > N$)設定し、補間条件を満たす解が無限に存在する過決定でない(underdetermined)系を意図的に作る。
$$\hat{f}(\mathbf{x}) = \sum_{j=1}^K w_j \phi(|\mathbf{x} - c_j|)$$
核心:零空間(null space)を「ドメイン知識の注入口」として活用
$K > N$ のとき、解は次のように表せる:
$$w = w_0 + N\alpha$$
$w_0$ は特解、$N$ は零空間基底(列がすべて零空間ベクトルである行列)、$\alpha$ は自由パラメータ。
ここで$N$は以下の式を満たす。
$$\Phi N = 0$$
この時、$\alpha$ をどの値にしても $\Phi w = y$ は成立する。
つまり既存のデータ点は正確に通りつつも、関数の形は $\alpha$ 次第で変えられる、という解が得られる。
RBF-Genはこの零空間をドメイン知識を反映させるための自由度として使う。
ジェネレーターによる零空間の探索
零空間の自由パラメータ $\alpha$ をどう決めるかが核心となる。
RBF-Genでは、これをジェネレーターネットワーク $G$ に学習させる。
まず、潜在変数 $z$ を標準正規分布からサンプリングする:
$$z \sim \mathcal{N}(0, I)$$
このサンプリングされた $z$ をジェネレーター $G$(パラメータ $\theta$ を持つニューラルネットワーク)に通すことで、零空間係数 $\alpha$ を生成する:
$$\alpha = G(z;\theta)$$
得られた $\alpha$ を零空間表現 $w = w_0 + N\alpha$ に代入すると、サロゲートモデルは次のように構築される:
$$\hat{f}_z(x) = \Phi(x)^\top(w_0 + NG(z;\theta))$$
この構造のポイントは以下の通り:
- $z$ を変えるたびに異なる $\alpha$ が生成され、「データを必ず補間しつつ形状が異なる」関数を無数にサンプリングできる
- ジェネレーターのパラメータ $\theta$ をトレーニングすることで、生成される関数群の「傾向」をコントロールできる
- つまりドメイン知識を使って $\theta$ を学習することで、制約を受けた $\alpha$ が決定されるような機構を作ることが次のステップの目標となる(下図左青枠)
ドメイン知識の組み込み方
ジェネレーターは以下の損失関数でトレーニングされ、知識が自然に注入される:
\mathcal{L}_{\text{gen}} = \sum_i \lambda_i \text{pen}_i(\hat{f}_z) + \sum_j \gamma_j \text{KL}(p_{\text{gen}}(s_j) \| p_{\text{target}}(s_j))
- ペナルティ項:単調性・正値性・Lipschitz制約・凸性・境界条件などの点ごとの構造的制約をソフトに強制
- KL情報量(Kullback-Leibler Divergence):分布の違いを測るKL情報量を計算し、生成された関数群の統計量(極値・平均・勾配分布など)を専門家が指定したターゲット分布に近づける
$\lambda_i$と$\gamma_j$は制約それぞれに与えられたハイパーパラメータ。
論文では、人の手で入力されている。
論文で提案されているペナルティ項とKL情報量の項については、下の章に記載。
KL情報量についてはこちら。
下の図は、論文に記載されていたペナルティ項をつけた場合とつけていない場合の、サロゲートモデルが取り得る予測値を示したもの。
赤い点が実際に取得しているデータ点。
4つのグラフは、それぞれ以下のような制約を加えたときのサロゲートモデル。
- (a): 制約のない場合
- (b): x = 0.3の時に標準偏差1の正規分布になるはずであるという制約
- (c): ヘッセ行列を標準偏差1の正規分布から生成したときの分布
- (d): 単調性があるとする制約
制約のない場合は非常に多くの値を取り得ることが確認できますが、制約を与えるとそれぞれに沿った形のモデルが作られていることがわかる。

論文中Fig. 2より
アルゴリズム
RBF-Genのトレーニングは以下の5つのステップで構成される。

論文より
Step 1: RBF基底と補間システムの構築
$K$個のRBF中心 ${c_j}_{j=1}^K$ を設計領域に均一または準ランダムに配置する。 続いて、補間行列 $\Phi$ を構築する:
$$\Phi_{ij} = \phi(|x_i - c_j|), \quad \Phi \in \mathbb{R}^{N \times K}$$
Step 2: 補間システムの零空間の計算
$\Phi w_0 = y$ となる特解 $w_0$ を求める(最小ノルム解)。 続いて、$\Phi N = 0$ となる零空間基底 $N \in \mathbb{R}^{K \times (K-N)}$ を計算する。 これにより、許容される補間関数を以下のように表せる:
$$w = w_0 + N\alpha$$
$\alpha$ は自由係数であり、どの値をとっても補間条件 $\Phi w = y$ は満たされる。
Step 3: 零空間探索のためのジェネレーターの定義
潜在変数 $z \sim \mathcal{N}(0, I)$ を零空間係数 $\alpha = G(z;\theta)$ にマッピングするジェネレーターネットワーク $G$ を初期化する。 各潜在サンプル $z$ は以下の有効な補間関数を生成する:
$$\hat{f}_z(x) = \Phi(x)^\top(w_0 + NG(z;\theta))$$
Step 4: 事前知識の組み込み
専門家から得たドメイン知識をペナルティ項・KL情報量の項として定式化し、以下の損失関数を構成する:
\mathcal{L}_{\text{gen}} = \sum_i \lambda_i \text{pen}_i(\hat{f}_z) + \sum_j \gamma_j \text{KL}(p_{\text{gen}}(s_j) | p_{\text{target}}(s_j))
各項の具体的な定式化については下の章を参照。
Step 5: ジェネレーターのトレーニング
Step 4で構成した損失関数を用いて、ジェネレーターのパラメータ $\theta$ を最適化する。 トレーニング完了後は、任意の $z \sim \mathcal{N}(0, I)$ からサンプリングすることで、データを補間しつつドメイン知識に沿った関数のアンサンブルが得られる。
この手法のポイント
-
敵対的ディスクリミネーターが不要
GANと異なり判別器のトレーニングが不要なため、少数データでも安定して学習できる点が重要な設計上の特徴になっている。 -
定式化できれば、知識の取り込みが可能
ペナルティ項やKL情報量の項に落とし込むような形で定式化さえできれば、専門家が持つどのような制約も組み込むことができる。
RBF-Genの課題
論文に明示されている課題
1. ハイパーパラメータへの感度 RBF中心の数 $K$、零空間のスケーリング係数、ペナルティの重み $\lambda_i, \gamma_j$ の設定に大きく性能が依存する。現状では経験則($K = 2D \sim 5D$ など)に頼っており、自動的・原理的に最適値を決める方法が確立されていない。
2. 組み込める事前知識の種類の制限 現状のフレームワークでは周期的・振動的な事前情報(機械や制御システムでよく見られる)を組み込むメカニズムがない。
3. 提供されたドメイン知識の品質への依存 組み込む知識が不正確だったり矛盾していたりした場合の感度がまだ調査されていない。実際にTable 2のQoI 2・3(論文を参照)ではRBF-GenがベースラインRBFに負けており、知識の質が結果に直接影響することが示唆されている。
4. 不確実性定量化の欠如 現状のRBF-Genは関数のアンサンブルを生成できますが、それを最適設計の性能に対する不確実性の予測に直接活用する仕組みがない。
構造的に読み取れる課題
5. 計算コストのスケーラビリティ RBF-Genのトレーニング時間は問題次元数に対して超線形に増加する。論文では「実験コストに比べれば無視できる」と主張していますが、さらに高次元の問題への適用には課題が残る。
6. データが増えると優位性が失われる $N/D=2$ の条件ではRBF-GenがベースラインRBFに負けるケースがある。データが増えるにつれて事前知識がバイアスとして働くという逆効果が生じており、「どの程度データがあればRBF-Genの使用をやめるべきか」という切り替えの基準が明確ではない。
7. 観測ノイズへの非頑健性 フレームワークの根幹に「観測データは正確である」という暗黙の仮定が埋め込まれており、補間条件
$$\Phi w = y$$
を厳密に満たすことを前提として零空間が構築されている。しかし現実の実験データには測定誤差や再現性のばらつきが必ず存在するため、ノイズを含む観測点を厳密に通るように補間すること自体が過剰適合を引き起こす可能性がある。クリギングが観測ノイズ項 $\sigma_n^2$ を明示的に組み込んでいるのと対照的であり、特に半導体製造のような現実データを扱う場面では実務上重要な課題となる。
論文で提案されたペナルティ項の定式化
RBF-Genで使用するために、様々な一般的なタイプのドメイン知識をどのように定式化できるかについての概要を示す:
ペナルティ項
これらは生成された関数$\hat{f}_z(x)$に対して点ごとに作用し、違反に対するソフトペナルティとして実装される:
-
単調性(増加 or 減少)
\text{pen}_{\text{mono}} = \frac{1}{|\mathcal{G}|} \sum_{x_k \in \mathcal{G}} \text{ReLU}(\pm(\hat{f}_z(x_{k+1}) - \hat{f}_z(x_k))) \tag{14}ここで$+$は非減少(non-decreasing)の傾向を強制し、$-$は非増加(non-increasing)の傾向を強制する。
-
正値性:
\text{pen}_{\text{pos}} = \text{ReLU}(m - \min_{x \in \mathcal{G}} \hat{f}_z(x)) \tag{15}は、プローブポイント$\mathcal{G}$全体にわたって$\hat{f}_z(x) \geq m$を確実にする。
-
Lipschitz制約(変化の急さ):
\text{pen}_{\text{Lip}} = \sum_{(x,y) \in \mathcal{P}} \text{ReLU}\left( \frac{|\hat{f}_z(x) - \hat{f}_z(y)|}{\|x - y\|} - L \right) \tag{16} -
なめらかさ、曲率:
\text{pen}_{\text{curv}} = \sum_{x_k \in \mathcal{G}} \left( \hat{f}_z(x_{k+1}) - 2\hat{f}_z(x_k) + \hat{f}_z(x_{k-1}) \right)^2 \tag{17} -
凸性:
\text{pen}_{\text{conv}} = \sum_{x_k \in \mathcal{G}} \text{ReLU}(-\Delta^2 \hat{f}_z(x_k)) \tag{18}は凸性($\Delta^2 f \geq 0$)を強制する。凹性の場合は符号を反転させる。
-
境界条件:
\text{pen}_{\text{bnd}} = \sum_{x_b \in \mathcal{B}} (\hat{f}_z(x_b) - v_b)^2 \tag{19}は既知の境界値$v_b$と一致させる。
KL情報量(Kullback-Leibler Divergence)
これらは生成されたサロゲート全体に関数の統計量の分布を形作る:
- 特定点での周辺値(Marginal values at a point $x_0$)
$$\text{KL}(p_{\text{gen}}(\hat{f}_z(x_0)) | \mathcal{N}(\mu, \sigma^2))$$
ある特定の入力点 $x_0$ における出力値の分布を、専門家が指定したガウス分布 $\mathcal{N}(\mu, \sigma^2)$ に近づける制約。
例えば「この設計条件のときの応答値はだいたい100前後のはず」という知識を $\mu=100$ として組み込むイメージ。
- 領域平均(Regional averages)
\text{KL}\left(p_{\text{gen}}\left(\frac{1}{|R|}\sum_{x \in R}\hat{f}_z(x)\right) | p_{\text{target}}\right)
ある領域 $R$ 内での出力値の平均の分布を、ターゲット分布に近づける制約。
特定の1点ではなく「この領域全体での平均的な応答はこのくらいのはず」という、より大域的な知識を組み込みたいときに有用。
- 極値(Extremal values)
\text{KL}(p_{\text{gen}}(\max_{x \in R} \hat{f}_z(x)) | p_{\text{target}})
ある領域 $R$ における出力の最大値(または最小値)の分布を制約する。
「この設計空間内でのコンプライアンスの最悪値はこの程度に収まるはず」といった、極端な挙動に関する知識を反映させるのに適している。
- 勾配の大きさの分布(Gradient magnitude distribution)
\text{KL}(p_{\text{gen}}(|\nabla \hat{f}_z(x)|) | p_{\text{target}})
サロゲート関数の勾配の大きさの分布を制約する。
「この問題では入力に対して出力がそれほど急激には変化しないはず」といった、感度の大きさに関する定性的な知識を組み込める。
Lipschitz制約が大域的な上限を課すのに対し、こちらは分布全体の形状を制御する点が異なる。
- 曲率の分布(Curvature distribution)
\text{KL}\left(p_{\text{gen}}\left(\frac{\partial^2 \hat{f}_z}{\partial x_i^2}\right) | p_{\text{target}}\right)
サロゲート関数の2階微分(曲率)の分布を制約する。
「この応答曲面はなだらかな凸型のはず」や「曲率はこの程度の範囲に収まるはず」といった知識を反映できる。
ペナルティ項の凸性制約(符号の制約)と異なり、こちらは曲率の大きさや形状の分布まで細かく指定できる。
- 汎関数(Functional measures)
\text{KL}\left(p_{\text{gen}}\left(\int_\Omega g(x, \hat{f}_z, \nabla \hat{f}_z),dx\right) | p_{\text{target}}\right)
関数値・勾配を含む積分量の分布を制約する、最も一般的な形式。
$g$ の形を変えることで、エネルギー・仕事量・平均コンプライアンスなど様々な物理量の積分に関する知識を柔軟に組み込める。
上記のペナルティ項はすべてこの特殊ケースとして解釈することもできる。
零空間とは
零空間を理解するために、まず簡単な例で考えてみる。
3つの未知数 $w_1, w_2, w_3$ に対して、以下の2つの方程式が与えられたとする:
\begin{cases}
w_1 + w_2 + w_3 = 1 \\
w_1 + 2w_2 + 3w_3 = 2
\end{cases}
これを行列形式で書くと:
$$
\Phi w = y
$$
\begin{bmatrix}
1 & 1 & 1 \\
1 & 2 & 3
\end{bmatrix}
\begin{bmatrix}
w_1 \\ w_2 \\ w_3
\end{bmatrix}
=
\begin{bmatrix}
1 \\ 2
\end{bmatrix}
$\Phi$ は $2 \times 3$ の行列であり、未知数(3つ)が方程式(2つ)より多いため、この系は一意な解を持たない=自由度を持つ。
特解と零空間の分解
まず、方程式を満たす特解のひとつとして例えば以下が得られる:
w_0 =
\begin{bmatrix}
0 \\
1 \\
0
\end{bmatrix}
次に、$\Phi \mathbf{N} = \mathbf{0}$ を満たす零空間基底ベクトルを求めると:
N =
\begin{bmatrix}
1 \\
-2 \\
1
\end{bmatrix}
実際に確認すると:
\Phi N =
\begin{bmatrix}
1 & 1 & 1 \\
1 & 2 & 3
\end{bmatrix}
\begin{bmatrix}
1 \\ -2 \\ 1
\end{bmatrix}
=
\begin{bmatrix}
1 - 2 + 1 \\ 1 - 4 + 3
\end{bmatrix}
=
\begin{bmatrix}
0 \\ 0
\end{bmatrix}
となり、確かに $\Phi N = \mathbf{0}$ が成立している。
一般解の表現
任意のスカラー $\alpha$ に対して、一般解は:
w = w_0 + N\alpha =
\begin{bmatrix}
0 \\ 1 \\ 0
\end{bmatrix}
+ \alpha
\begin{bmatrix}
1 \\ -2 \\ 1
\end{bmatrix}
=
\begin{bmatrix}
\alpha \\ 1 - 2\alpha \\ \alpha
\end{bmatrix}
$\alpha$ がどのような値をとっても:
$$
\Phi w = \Phi(w_0 + N\alpha) = \Phi w_0 + \Phi N \alpha = y + \mathbf{0} = y
$$
が常に成立する。
つまり $\alpha$ がどのような形をしていても必ずデータとして与えられた点は通る ことが保証される。
