DPSynth 解説・実証デモ

INDEPENDENT — 全列を独立にモデル化する最速のベースライン機構の解説

INDEPENDENT 機構の解説

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

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


1. 位置づけ

INDEPENDENT 機構は、公式ドキュメントが "baseline mechanism" と明記する最も単純な手法である。 各列の周辺分布(1-way マージナル)だけを測定し、全属性を互いに独立としてモデル化する。 列間の相関は一切保持されない。

外部論文に基づく手法ではなく、「相関を全部捨てるとどうなるか」の比較基準(ベースライン)として、 また相関が不要な用途での最速・最小予算の選択肢として位置づけられる。

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

flowchart LR A["① 総予算を列数 d で均等分割"] --> B["② 各列の 1-way マージナルを
ガウス機構で測定"] B --> C["③ Private-PGM で
独立な同時分布を推定"] C --> D([列ごとに独立に
サンプリング])
  1. 総予算を列数 d で均等に分け、各列に割り当てる。
  2. 各列の周辺分布(値ごとの度数)をガウス機構で測定する。SELECT ステップは存在しない (測るものが最初から決まっているため、指数機構は使われない)。
  3. ノイズ付き 1-way 測定値を Private-PGM(mirror descent)に渡し、非負性・総数整合を満たす 周辺分布を推定する。同時分布は各列の周辺分布の積(= 独立)になる。

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

ステップ 予算配分 機構
全列の 1-way マージナル測定 総予算を d 列で均等割り ガウス機構

選定(指数機構)に予算を割かないため、同じ総予算なら 1-way の測定精度は 3 機構で最も高くなりやすい

4. 主なパラメータ(IndependentConfig

パラメータ 既定値 意味
pgm_iters 5000 mirror descent の反復回数
seed 0 乱数シード

調整すべきパラメータがほぼ無いことも、ベースラインとしての使いやすさにつながっている。

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

得意:

苦手:

6. 本デモでの実験結果

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

7. 参考リンク


手法選定ガイドに戻る