MUR033 如何衡量合成數據的真實性與準確性? (Ver 0.4)

目錄

如何衡量合成數據的真實性與準確性?

紫式晦澀每日一篇文章第33天

前言

  1. 今天是2022年第31天, 全年第5週, 一月的第5個週一. 今天對合成數據的真實性與準確性相關文章來做反思.

  2. 今天的素材主要來自文章:

收集「三」的表達.

心法: 保真度, 多樣性, 泛化力

度量三大品質(Metric quantify 3 synthetic data qualities):

  • alpha準確-保真度 (alpha-Precision-fidelity)
  • beta召回-多樣性(beta-Recall-diversity)
  • 真實性-泛化力 (Authenticity-Generalization)

評估途徑(Evaluation Pipeline):

    1. 評估嵌入 (Evaluation embedding)
    1. 樣本層級度量 (Sample-level metrics)
    1. 評估度量 (Evaluation metric)

監管途徑(Auditing Pipeline):

    1. 「生成模型(Generative model)」進「評估途徑」
    1. 樣本過濾器(Sample filter): 因為是「sample-level」, 對每個樣本問「是否是高品質樣本(High-quality sample?)」
    1. 品質管控: 決定要不要刪掉特定sample

準確曲線&召回曲線(alpha-precision curve & beta-recall curve):

    1. 模式崩塌 (Mode Collapse)
    1. 模式發明 (Mode Invention)
    1. 密度遷移 (Density Shift)

基於合成數據的預測建模(Predictive Modeling using Synthetic Data):

    1. 排名生成模型(Ranking generative models)
    1. 超參數優化 (Hyper-parameter optimization)
    1. 審計改良合成數據 (Synthetic data improvement via auditing)

診斷模式崩潰(Diagnose mode collapse):

衡量躲貓貓挑戰的參賽者:

ㄅㄅ

技法-理想世界

Alpha準確性:合成數據分佈能生成「正常真實數據」的機率

alpla準確性度量($\alpha$-precision metric):

    1. 源頭: 合成分佈抓住真實數據的程度 (Sajjadi et al., 2018)
    1. 目的: 合成分佈抓住「$1-\alpha$真實數據」的機率
    1. 白話: 把真實數據的「離群值(Outlier)」去掉, 以抓住「正常的真實數據」. 檢查合成分佈是否有很多「沒合成到的真實數據」

Beta召回度: 真實數據分佈能生成「正常合成數據」的機率

beta召回度度量($\beta$-recall metric):

    1. 源頭: ??? Recall metric
    1. 目的: 真實數據分佈抓住「$1-\beta$合成數據」的機率
    1. 白話: 檢查合成數據是否造出很多「真實不存在的數據」

真實性:造出「訓練數據」以外數據的能力

泛化是造出「訓練數據」以外數據的能力.

需要本真資料來確保「泛化能力」:

  • 漏洞: 只要重抽樣訓練資料, 就能得到很好的fidelity and diversity; 但壞處就是無法「泛化(Generalization)」
  • 本真指標(Authenticity score): 生成模型是否有能力產生「訓練資料以外」的樣本.
  • 加Noise可能會出現新的樣本.
  • 以A的機率「創新數據(innovate new sample)」

準確性-召回度分析

小支撐是典型;大支撐有離群

理解alpha支撐與beta支撐:

  • alpla-支撐: 那些看起來「真實(Realistic)」且「典型(Typical)」的「合成數據(Synthetic sample)」
  • beta-支撐: 在「合成數據分佈(Synthetic data distribution)」下, 「典型(Typical)」的「真實數據(Real sample)」
    1. 扎實質量: 最扎實集中的alpha質量(the most densely packed probability mass α in a distribution,)
    1. 集中峰值: alpla-支撐總是集中於「背後分佈的峰值 (concentrate around the modes)」
    1. 不計算離群值: 在計算「忠貞度(fidelity)」與「廣度(diversity)」只計算「典型樣本(Typical sample)」, 不計算離群值.

從典型(0)到離群(1):

  • alpha, beta = 0: 典型
  • alpha, beta = 1: 離群
  • alpha=0.1支撐: 最緊實, 靠近眾數的那些10%群體
  • alpha=0.9支撐: 蠻鬆散, 涵蓋90%的群體
  • $P_{\alpha}$: 合成數據分佈, 產生「典型(百分之alpha)的真實數據」,的機率
  • $R_{\beta}$: 真實數據分佈, 產生「典型(百分之beta)的真實數據」, 的機率.

三種失敗: 太像某個, 沒有一個像, 像了但比例不對

準確召回分析(a):眾數塌陷(Mode Collapse):

太像真實數據中的某一組了

  • (a) alpha:0.25–>最典型(百分之25的真實數據)–> (a)可以以超過一半的機率成功產生
  • (a) alpha:0.50–>中典型 (百分之50的真實數據)–>(a)也可以以超過一半的機率成功產生
  • (a) alpha:0.75–>全典型 (百分之75)的真實數據–>(a) 增加的成功率就不多了–> 新的典型無法產生–>模式崩塌
  • (a) beta:0.25 –> 最典型(百分之25的合成數據)–>(a)真實數據出現「最典型合成數據」的機率不高
  • (a) beta:0.50 –> 中典型(百分之50的合成數據)–>(a)真實數據出現「中典型合成數據」的機率不高
  • (a) beta:0.75 –> 全典型(百分之75的合成數據)–>(a)真實數據出現「全典型合成數據」的機率不高

準確召回分析(b):眾數發明(Mode Invention):

完全不像真實數據裡的組

  • (b) alpha:0.25–>最典型(百分之25的真實數據)–> (b)不到一半的機率成功產生
  • (b) alpha:0.50–>中典型 (百分之50的真實數據)–>ba)不到一半的機率成功產生, 成功機率也增加不多
  • (b) alpha:0.75–>全典型 (百分之75)的真實數據–>(b) 不到一半的機率成功產生, 但成功機率增加很快–> 有涵蓋到真實數據了–>發展出新的不存在於真實數據的模式
  • (b) beta:0.25 –> 最典型(百分之25的合成數據)–>(b)真實數據出現「最典型合成數據」的機率不高–> 真實不太存在
  • (b) beta:0.50 –> 中典型(百分之50的合成數據)–>(b)真實數據出現「中典型合成數據」的機率不高–>真實不太存在
  • (b) beta:0.75 –> 全典型(百分之75的合成數據)–>(b)真實數據出現「全典型合成數據」的機率不高–> 開始涵蓋到一些真實存在的數據了

準確召回分析(c):密度遷移(Density shift):

真實數據裡的組對了, 但比例不對

  • (c) alpha:0.25–>最典型(百分之25的真實數據)–> (c)不到一半的機率成功產生
  • (c) alpha:0.50–>中典型 (百分之50的真實數據)–>(c)不到一半的機率成功產生, 帶成功率增加了, 代表有能力合成真實數據了
  • (c) alpha:0.75–>全典型 (百分之75)的真實數據–>(c) 不到一半的機率成功產生–> 成功率也持續增加–>可以合成常見的真實數據了.
  • (c) beta:0.25 –> 最典型(百分之25的合成數據)–>(c)真實數據出現「最典型合成數據」的機率不高–>合成的都不是真實會有的
  • (c) beta:0.50 –> 中典型(百分之50的合成數據)–>(c)真實數據出現「中典型合成數據」的機率不高–>合成的慢慢有真實會有的了
  • (c) beta:0.75 –> 全典型(百分之75的合成數據)–>(c)真實數據出現「全典型合成數據」的機率不高–>合成的是真實會有的了, 只是比例不太對.

技法-可測量世界:造二元分類器

估計衡量測度(Estimate Evaluation Metric):三種二元分數:

  • 三大度量都是「樣本等級(Sample-level)」, 現在要討論實際上要怎麼算出這三大度量.
    1. 準確度: 對「合成數據」, 給一個二元分數$\widehat{P}_{\alpha, j}\in\{0,1\}$.
    1. 召回率:對「真實數據」, 給一個二元分數$\widehat{R}_{\beta, i}\in\{0,1\}$.
    1. 本真性: 對「合成數據」, 給一個二元分數$\hat{A}_{j}\in\{0,1\}$

估計衡量測度(Estimate Evaluation Metric):三種二分類器:

  • 如何得到上述的三種二元分數, 依靠訓練「二元分類器(Binary Classifier)」$f_{P}, f_{R}, f_{A}: \widetilde{\mathcal{X}} \rightarrow{0,1}$
    1. 準確度:
    1. 召回率:
    1. 本真性:

準確度分類器實踐: 離群值偵測技術造分類器

準確度分類器實踐:

  • 分類器準則: 看看「合成數據分佈」有沒有「落入真實數據alpha支撐」
  • 主要難點: 計算「真實數據」的「alpha支撐」
  • 主要作法: 訓練「衡量鑲嵌(Evaluation Embedding)」, 在embedding空間找支撐.
  • 做法背景: one-class SVMs (Schölkopf et al., 2001); outliner detection (Ruff et al., 2018).
  • 實際alpha支撐: 到對的空間後, 用那邊的分位數(quantile)函數就可以處理. 會依靠embedding後, 實際資料的中心點.
  • 分類準則: 「一個合成數據」得1分如果「其落入真實數據的alpha支撐」:

召回度分類器實踐: 離群值偵測技術造分類器

召回度分類器實踐:

  • 分類器準則: 看看「真實數據分佈」有沒有「落入合成數據beta支撐」
  • 主要難點: 計算「合成數據」的「beta支撐」
  • 做法背景: one-class SVMs (Schölkopf et al., 2001); outliner detection (Ruff et al., 2018).
  • 實際beta支撐: 到對的空間後, 用那邊的分位數(quantile)函數就可以處理. 會依靠embedding後, 實際資料的中心點.
  • 分類準則: 「一個合成數據」得1分如果「其落入合成數據的beta支撐」.

但這裡用了「k最近鄰居」來當半徑, 不知道有什麼考量?

本真性分類器實踐: 似然比檢定造分類器

本真性分類器實踐:

  • 分類器準則: 看看「合成數據分佈」是不是「用了很少的訓練數據」, 因此比較多「原創數據」.
  • 主要難點: 判斷「混合分佈(mixture distribution)」的成分, 是在分佈等級上做某種分類器.
  • 做法背景: 假設檢定-null:來自訓練數據;alternative:來自合成數據. Likelihood-ratio test (LRT) statistic (Van Trees, 2004); Neyman- Pearson Lemma, the LRT above is the most powerful test for authenticity (Huber & Strassen, 1973).
  • 實際似然比檢定: 由於「似然比」上下的分佈都不知道, 所以要用替代的「充分統計量(Sufficient statistic)」來做事.
    • 實際作法是計算「單體合成數據」與「實際數據集合」的最短距離;
    • 也計算「最近點實際數據」與「離一實際數據集合」的距離.
    • 兩種距離比大小 得到的統計量, 表示「此合成數據」是否比「最近點實際數據」還要靠近「真實數據集」?

這種似然比真的蠻奇怪, 他想要側「混合分佈中的成分」, 但實際執行卻是用「幾何上靠近真實數據集的程度」. 為何「靠近」就能做到想要的本真性測試?

  • 分類準則: 似然比愈大, 就越表達是「原創合成數據」; 與真實資料太靠近, 就說是「不本真(unauthentic)」( unauthentic if it is closer to 最近訓練數據 than any other real sample in the training data)
    • 記得null是來自訓練數據; A=0 是完全來自訓練數據; A=1是完全來自合成數據.
    • 似然比的分母, 是「訓練數據(A=0)」比「最近訓練數據」更靠近真實資料集, 此時分母為1.
    • 似然比的分佈, 在「合成數據(A=1)」的時候, 會靠近0(因為合成數據很難再靠近資料集?), 此時分母靠近0, 似然比跑到無窮.
  • 哲學: 如果「單體合成數據」太靠近「最近點真實數據」, 那就不本真, 就給A=0; 離原本的訓練及夠遠, 才算本真, 才真的能造出新的合成數據, 展現泛化能力.

如果要「合成梯度」那還能真的找到最小值嗎?

泛化到沒看過的地方, 那遷移聯邦學習(Transfer Federated Learning)這類的任務會有幫助嗎? 誰幫助誰?

推廣準確召回分析

兩個分佈要像: domain要一樣, shape也要一樣; 而準確召回曲線刻畫了兩者.

為何看alpha-beta支撐, 能推廣準確召回分析?:

  • 不只考慮「真實數據分佈」「合成數據分佈」的之聲, 也考慮其「機率密度」.
  • 這邊的做法, 「不會一致對待每個樣本」, 而是給「密集地區的樣本」更高的重要性
  • 好的準確召回曲線, 能夠表達出「真實數據分佈」與「合成數據分佈」達到了「同樣的眾數」而非單純的「同樣的支撐」.

兩個分佈要像: domain要一樣, shape也要一樣; 而準確召回曲線刻畫了兩者.

準確召回度量的三大缺點: 對離群者的穩健性, 無法偵測配對分佈, 無法診斷分佈失敗

傳統準確召回度量的三大缺點:

  • 準確召回曲線克服了準確召回度量的缺點
  • 缺點一: 對離群者的穩健性(Lack of robustness to outliers)
  • 缺點二: 無法偵測配對分佈(Failure to detect matching distributions)
  • 缺點三: 無法診斷分佈失敗(眾數崩潰,眾數發明, 密度遷移)(Inability to diagnose different types of distributional failure) (Naeem et al., 2020)

最優的準確召回曲線: 分佈(shape)要重和, 密度(support)也要重和

最優的準確召回曲線:

  • 當兩個分佈與其密度皆重合, 那要很靠近兩圖的中間線.(難怪要畫圖列出中間線)

很棒的point, 可以定義準確召回曲線的「統計距離測度(measure of statistical distance)」

統計出入(Statistical Discrepancy):與中線的面積

Fidelity & Diversity

測度統計出入(Statistical Discrepancy):

  • 計算「與中線的面積」來當作「統計出入」
  • $\text{IP}_{\alpha}$: 愈大愈好, 表達「合成數據」對「真實數據分佈」的「代表性(adequately represented)」

生成一堆在真實沒有代表性的

  • $\text{IR}_{\beta}$: 愈大愈好, 表達「真實數據」對「合成數據分佈」的「代表性(adequately represented)」

只能生成沒有代表性的

  • 如「f-散度」這類的度量, 會需要要求「共同支撐(Common support)」, 如此就產生了限制.

這個與ROC, AUC之間的關聯? 之後可以研究研究

****: ****: ****: ****: ****:

用法

合成COVID-19數據(Synthesizing COVID-19 data):

合成圖像數據-MNIST數據生成:

合成時間序列數據-Hide-and-Seek挑戰:

****: ****: ****:

語法

找到「非離群值們」其實不容易:

    1. 在1維數據, 只需要用quantile就可以描述「非離群值們」.
    1. 在多維數據, 利用「衡量鑲嵌(Evaluation Embedding)」來投射到「半徑r的超球(Hypersphere)」; 借助「離群值偵測(Outliner detection)」問題中的損失函數.
    1. 在超球上就可以使用熟悉的機率測度來算機率了

****: ****: ****: ****: ****:

後記

Ver0.1(1/31): 今天對文章中各種圖, 文章結構想強調的點, 進行了80分鐘的思考.本文章的結構非常好, 從「連環圖」的角度講了很棒的科學研究故事. 多欣賞好文章, 來讓自己的文章的readability上升.

對於證明類的文本, 如何做圖與可視化呢? 收集好的文獻?

2022.01.31. 紫蕊 於 西拉法葉, 印第安納, 美國.

Ver0.2(2/1): 今天對3 metrics的估計細節去仔細思考. 首先, 分類器的構造, 依賴於「1-class SVM」, 「K-nearest neiborhood」以及「Likelihood Ratio Test」. 很多作法在統計的觀點下感覺很粗糙, 但是實際要怎樣才能做更好其實也很未知. 持續用文章思考, 來讓更多的概念融會貫通.

2022.02.01. 紫蕊 於 西拉法葉, 印第安納, 美國.

Ver0.3(2/2): 今天對三種failure mode做仔細地解釋. 現在看到的是, 我們要先定義「典型」與「離群」, 接著移動「典型離群邊界」來看「合成分佈產生真實存在數據」以及「真實分佈會有合成數據」兩個指標. 當真實數據有兩種貓, (1) 只學一種貓 (2) 兩種貓都沒學到 (3) 學到兩種貓但比例不對, 的三種狀況, 都會contribute不合格的數據生成模型. 然而, 怎麼樣的數據生成模型才是好的呢? 如果要與訓練數據很像, 為何不要resample就好呢? resample可以確保與訓練數據很像, 但這就喪失了「泛化能力(Generalizability)」. 很多謎團得慢慢解…

2022.02.02. 紫蕊 於 西拉法葉, 印第安納, 美國.

Ver0.4(2/3): 今天思考了準確召回曲線, 其最優的狀況, 可以翻譯成圖中的中線. 如此, 就可以計算「與中線的面積」來當作「統計出入」來橫量不同的「合成數據模型」. 這個思想還蠻深邃的, 再多加上檢查「泛化能力」後, 形成鐵三角度量: 忠貞, 多樣, 泛化. 寫作上也是很清楚, 每個地方的細節恰到好處.

2022.02.03. 紫蕊 於 西拉法葉, 印第安納, 美國.


Version Date Summary
0.1 2022-01-31 初次閱讀
0.2 2022-02-01 仔細思考3個度量的estimation所會遇到的問題
0.3 2022-02-02 對三種failure mode做仔細地解釋
0.4 2022-02-03 思考最優準確召回曲線, 研究統計出入, 形成鐵三角度量: 忠貞, 多樣, 泛化.

版權

CC BY-NC-ND 4.0

評論