如何衡量合成數據的真實性與準確性?
紫式晦澀每日一篇文章第33天
前言
-
今天是2022年第31天, 全年第5週, 一月的第5個週一. 今天對合成數據的真實性與準確性相關文章來做反思.
-
今天的素材主要來自文章:
收集「三」的表達.
心法: 保真度, 多樣性, 泛化力
度量三大品質(Metric quantify 3 synthetic data qualities):
- alpha準確-保真度 (alpha-Precision-fidelity)
- beta召回-多樣性(beta-Recall-diversity)
- 真實性-泛化力 (Authenticity-Generalization)
評估途徑(Evaluation Pipeline):
-
- 評估嵌入 (Evaluation embedding)
-
- 樣本層級度量 (Sample-level metrics)
-
- 評估度量 (Evaluation metric)
監管途徑(Auditing Pipeline):
-
- 「生成模型(Generative model)」進「評估途徑」
-
- 樣本過濾器(Sample filter): 因為是「sample-level」, 對每個樣本問「是否是高品質樣本(High-quality sample?)」
-
- 品質管控: 決定要不要刪掉特定sample
準確曲線&召回曲線(alpha-precision curve & beta-recall curve):
-
- 模式崩塌 (Mode Collapse)
-
- 模式發明 (Mode Invention)
-
- 密度遷移 (Density Shift)
基於合成數據的預測建模(Predictive Modeling using Synthetic Data):
-
- 排名生成模型(Ranking generative models)
-
- 超參數優化 (Hyper-parameter optimization)
-
- 審計改良合成數據 (Synthetic data improvement via auditing)
診斷模式崩潰(Diagnose mode collapse):
衡量躲貓貓挑戰的參賽者:
ㄅㄅ
技法-理想世界
Alpha準確性:合成數據分佈能生成「正常真實數據」的機率
alpla準確性度量($\alpha$-precision metric):
-
- 源頭: 合成分佈抓住真實數據的程度 (Sajjadi et al., 2018)
-
- 目的: 合成分佈抓住「$1-\alpha$真實數據」的機率
-
- 白話: 把真實數據的「離群值(Outlier)」去掉, 以抓住「正常的真實數據」. 檢查合成分佈是否有很多「沒合成到的真實數據」
Beta召回度: 真實數據分佈能生成「正常合成數據」的機率
beta召回度度量($\beta$-recall metric):
-
- 源頭: ??? Recall metric
-
- 目的: 真實數據分佈抓住「$1-\beta$合成數據」的機率
-
- 白話: 檢查合成數據是否造出很多「真實不存在的數據」
真實性:造出「訓練數據」以外數據的能力
泛化是造出「訓練數據」以外數據的能力.
需要本真資料來確保「泛化能力」:
- 漏洞: 只要重抽樣訓練資料, 就能得到很好的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)」
-
- 扎實質量: 最扎實集中的alpha質量(the most densely packed probability mass α in a distribution,)
-
- 集中峰值: alpla-支撐總是集中於「背後分佈的峰值 (concentrate around the modes)」
-
- 不計算離群值: 在計算「忠貞度(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)」, 現在要討論實際上要怎麼算出這三大度量.
-
- 準確度: 對「合成數據」, 給一個二元分數$\widehat{P}_{\alpha, j}\in\{0,1\}$.
-
- 召回率:對「真實數據」, 給一個二元分數$\widehat{R}_{\beta, i}\in\{0,1\}$.
-
- 本真性: 對「合成數據」, 給一個二元分數$\hat{A}_{j}\in\{0,1\}$
估計衡量測度(Estimate Evaluation Metric):三種二分類器:
- 如何得到上述的三種二元分數, 依靠訓練「二元分類器(Binary Classifier)」$f_{P}, f_{R}, f_{A}: \widetilde{\mathcal{X}} \rightarrow{0,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維數據, 只需要用quantile就可以描述「非離群值們」.
-
- 在多維數據, 利用「衡量鑲嵌(Evaluation Embedding)」來投射到「半徑r的超球(Hypersphere)」; 借助「離群值偵測(Outliner detection)」問題中的損失函數.
-
- 在超球上就可以使用熟悉的機率測度來算機率了
****: ****: ****: ****: ****:
後記
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 | 思考最優準確召回曲線, 研究統計出入, 形成鐵三角度量: 忠貞, 多樣, 泛化. |
評論