DPSynth 解説・実証デモ

AIM(Adaptive and Iterative Mechanism)— マージナルを適応的に選択・測定する反復機構の解説

AIM 機構の解説(Adaptive and Iterative Mechanism)

手法選定ガイドMST の解説INDEPENDENT の解説Private-PGM の解説メインレポート

📘 本ページのアルゴリズム・実装の記述は、原論文 arXiv:2201.12677google/dpsynth のソースコード(dpsynth/discrete_mechanisms/aim.py、2026-06 時点の main ブランチ)に基づく。 実験数値の節(🔎)のみ本デモの実測である。


1. 位置づけ

AIM(Adaptive and Iterative Mechanism)は、SELECT-MEASURE-GENERATE パラダイムの代表的な反復型アルゴリズムである arXiv:2201.12677ワークロード(合成データで再現を重視するマージナルの集合と重み)を入力として受け取り、 「現在のモデルが最も外しているマージナル」を毎ラウンド適応的に選んで測定し、モデルを少しずつ改善する。

注意: AIM の名前にある「適応的な選択」は機構内部でどのマージナルを測るかの選択であり、 「AIM か MST かをデータに応じて選んでくれる」機能ではない(→ 手法選定ガイド)。

2. アルゴリズムの仕組み

flowchart TD A["① 1-way マージナル測定
(予算の 10%)+ 初期モデル推定"] --> C{"予算が残っているか"} C -->|残りわずか| J["最終ラウンド:
全残予算を投入"] C -->|はい| D["② 候補フィルタ:
モデルサイズ上限に収まる
マージナルだけ残す"] D --> E["③ SELECT: 現モデルとの誤差が
最大の候補を指数機構で選定"] E --> F["④ MEASURE: 選んだマージナルを
ガウス機構で測定"] F --> G["⑤ GENERATE: Private-PGM で
モデルを再推定"] G --> H{"測定でモデルが
有意に動いたか"} H -->|ほぼ動かず| I["アニーリング:
ラウンド予算を 4 倍に増額"] H -->|改善| C I --> C J --> K([合成データを
サンプリング])
  1. 候補の生成: ワークロード(未指定なら全属性の 3-way 組み合わせ)の下方閉包 (1-way・2-way・3-way のすべての部分集合)が候補になる。各候補の重みは 「ワークロードとの属性の重なり × ワークロード重み」の合計で、関係が深いマージナルほど選ばれやすい。
  2. 候補フィルタ: 候補を採用した場合のグラフィカルモデルの推定サイズ(junction tree のメモリ量)が 上限以下のものだけ残す。上限は max_model_size ×(消費済み予算の割合)で、 予算を使うほど大きなマージナルが解禁される設計になっている。
  3. SELECT(指数機構): 各候補のスコアを 重み ×(現モデルとの L1 誤差 − ノイズバイアス補正項) で評価し、指数機構で 1 つ選ぶ。 補正項は「測定したときに乗るガウスノイズの期待量」で、 誤差は大きいが測ってもノイズに埋もれるだけの巨大なマージナルが選ばれにくくなる。
  4. MEASURE / GENERATE: 選んだマージナルをガウス機構で測定し、 全測定値と整合するモデルを Private-PGM(mirror descent、ウォームスタート)で再推定する。
  5. アニーリング: 測定してもモデルがほぼ動かなかった場合、「このノイズ水準ではもう情報が取れない」 と判断してラウンドあたり予算を anneal_factor(既定 4)倍に増やし、回数より 1 回の精度を優先する。

3. プライバシー予算の使われ方

ステップ 予算配分(既定) 機構
1-way マージナル測定(初期化) ρ × 10%(one_way_budget_fraction ガウス機構
各ラウンドの SELECT ラウンド予算 × 10%(select_budget_fraction 指数機構
各ラウンドの MEASURE ラウンド予算 × 90% ガウス機構

ラウンド予算は 総予算 ÷ max_rounds(既定は 16 × 列数 ラウンド)から始まり、アニーリングで増額されうる。 残予算が少なくなると最終ラウンドで全額を投入して終了する。

4. 主なパラメータ(AIMConfig

パラメータ 既定値 意味
workload None(全 3-way 組合せ) 再現を重視するマージナルの集合と重み。AIM だけが持つ「意図を伝える」口
max_rounds None(16 × 列数) 最大ラウンド数
max_model_size 80 (MB) グラフィカルモデルのサイズ上限。実行時間と精度のトレードオフを司る最重要パラメータ
max_marginal_size 1e6 候補に含めるマージナルのセル数上限
pgm_iters 1000 mirror descent の反復回数
anneal_factor 4.0 アニーリング時の予算増額倍率

📘 公式の docstring は「お試しなら max_model_size=1、本番用途なら max_model_size>=80 を推奨。 実行に数時間かかりうる」と注記している。本デモでは max_rounds=16, pgm_iters=1000, max_model_size=100 に抑えて ε=1 で約 70 秒で実行した(生成時間は ε に強く依存し、ε=10 では約 420 秒)。

5. 得意なケース・苦手なケース

得意:

苦手:

6. 本デモでの実験結果

🔎 以下は本デモ(UCI Adult、20,000 行、9 列、δ=1e-5)の実測。詳細は各リンク先を参照。

なぜ AIM が MST を上回りうるのか(アルゴリズム由来の解釈)

🔎 以下は、本デモでの「AIM の TSTR が最も高かった/全ペアで 2-way が最良だった」という結果に対する、 AIM 論文 arXiv:2201.12677 のアルゴリズム的性質からの解釈である。 検証対象 DPSynth についての「列間依存が下流有用性に効く」という要約は メインレポート §6.1 にある。

機構間の差は、推定エンジン(Private-PGM)が共通である以上、どのマージナルを測定して渡すかに帰着する。

つまり本デモで AIM が優位だったのは、「ワークロード(=下流で重要なマージナル)に向けて測定対象を適応選択する」という AIM 固有の設計が、木構造の制約を持つ MST より広いペア相関を保持できたためと解釈できる。 ただしこれは無償ではなく、次の計算コストとパラメータ依存性を伴う。

計算コストとパラメータ依存性(アルゴリズム由来)

7. ε を変えたときの挙動(複数シードの ε スイープ・WSL 固定環境実測)

本節は、ε = 0.5 / 1.0 / 2.0 / 10.0 の 4 水準で 3 機構を生成し、ε–有用性の変化を 複数シードの平均±標準偏差で評価する(追加実験E と同一系列)。 当初は単一シード(seed=42)でこのスイープを取ったが、AIM では run-to-run 分散が大きく ε トレンドを判定できなかった(Issue #14)ため、 機構の seed を 0..9 まで振って構造的傾向と確率的ばらつきを分離した。

🔎 取得環境: §5/§6 と同じ WSL 固定環境(Python 3.12.3・jaxlib 0.7.1・ dpsynth c17e714…再現手順ノート)の単一の実行系列で取得した (Issue #17)。入力データは random_state=42 で固定し、 機構の seed のみ振る。3 機構とも 10 シードIssue #20 で AIM を 5→10 に拡張し、3 機構を共通シード 0..9 の単一系列で再生成)。 生成条件: UCI Adult 20,000 行・9 列・δ=1e-5、AIMConfig(max_rounds=16, pgm_iters=1000, max_model_size=100)

表: AIM / MST の ε–有用性(複数シードの平均±標準偏差・n=10)

機構 ε n 平均 1-way TVD ↓ 相関誤差 ↓ TSTR AUC ↑
AIM 0.5 10 0.098±0.023 0.114±0.096 0.819±0.023
AIM 1.0 10 0.087±0.023 0.022±0.011 0.693±0.072
AIM 2.0 10 0.076±0.022 0.019±0.009 0.829±0.016
AIM 10.0 10 0.064±0.002 0.024±0.008 0.878±0.006
MST 0.5 10 0.089±0.021 0.058±0.041 0.656±0.137
MST 1.0 10 0.090±0.023 0.073±0.058 0.690±0.075
MST 2.0 10 0.071±0.015 0.085±0.063 0.664±0.104
MST 10.0 10 0.061±0.002 0.066±0.069 0.669±0.093

図: 3 機構の ε スイープ(複数シードの平均±標準偏差・エラーバー) — 左が平均 1-way TVD、右が TSTR AUC。

3 機構の ε スイープ(複数シード mean±std)

所見(本デモ実測):

8. 参考リンク


手法選定ガイドに戻る