MUR036 合成數據的六種技法

目錄

合成數據的六種技法

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

前言

  1. 今天是2022年第34天, 全年第5週, 二月的第1個週四. 今天對「合成數據方法(Methods for Synthesizing Data)」做系列學習思考.

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

方法一: 從理論合成數據

現象模型: 多變量高斯, 共變異, 耦合

現象模型(Model of the phenomenon):

  • 分析師沒有實際數據, 但有「對現象的模型」, 因此可以建立模型去產生數據.
  • 例子1: Gaussian, bell-shaped分佈 –> 多變量常態分佈.
  • 例子2: 引入「取樣過程的共變異(Correlation during the sampling process)」.
  • 例子3: 使用「耦合(Copulas)」方法.

多變量常態分佈:

  • 用各種統計package可以很容易產生.

帶有特定邊緣分佈的共變異(Correlations with Specified Marginal Distributions):

  • 例子: 「病人體重」與「住院長度(Length of Stay;LOS).
  • 此例子明顯不是常態分佈. 他的目的是想保留著「共變異(Correlations)」
  • 指定「共變異矩陣(Correlation Matrix)」後來產生樣本. 見Chapter 3 對這些參數化分佈的生成技巧.

具已知邊緣分佈的耦合(Copulas with Known Marginal Distributions):

  • 耦合: 建模「邊緣分佈」, 且保留「共變結構」.
  • 耦合的優點:分離「邊緣分佈定義」與「共變結構」.

對Copula相關的理論理解的不多, 之後可以寫寫來學習.

高斯耦合, 機率積分轉換

高斯耦合(Gaussian copula):

  • 兩個邊緣分佈: 常態分佈, 指數分佈.
  • 高斯耦合: Step 1: 產生標準多變數常態分佈, 帶有共變0.1. Step 2: 利用「機率積分轉換(Probability Integral Transform)」藉由CDF來產生「常態分佈」與「指數分佈」.
  • 先利用標準多維常態分佈計算CDF, 再計算分位數回到「住院時間與病患體重」的常態分佈與指數分佈.

方法二: 從真實資料合成數據 (Generating Realistic Synthetic Data)

無法分辨度量: 高斯, 共變耦合, 決策樹

基於真實數據的合成數據:

  • 當「真實數據」存在, 那可以基於真實數據來合成數據, 擺脫基於理論關係產生的合成數據.

出院資料集(Hospital Discharge Dataset):

  • 當一個病人出現, 所有「病患醫院體驗」會聚合進入「邊準出現資料庫(Standardized Discharge Databases)」
  • 這些資料庫是分析「保健(Healthcare)」系統的表現,花費, 品質改良, 公共健康中藥的資源.
  • 這些資料成為「出院總結(Discharge abstracts or summaries)」.
  • 考慮三種變數: (1) 出院年紀 (0表達出生) (2) 上次住院間隔 (0表示第一次住院) (3) 住院長度 (0表達沒有住院)
  • 三種變數明顯不是常態分佈…

作法: 其實就是統計的做法?:

  • 擬合「資料邊緣分佈」到一些經典分佈.
  • 我們從「最靠近真實資料」的「經典分佈」來合成數據.
  • 共變矩陣, 從實際數據上取得. 再去算合成數據的共變結構.

合成數據看中原本的「共變結構(Correlation Structure)」

使用機器學習fit分佈:

  • 利用機器學習, 可以更faithfully的反應「資料真實分佈(Real distributions in the data)」.
  • 有了ML fitted的分佈, 再去執行「共變」與「耦合」的方法.

衡量法:無法分辨度量(distinguishability metric):

  • 在utility章節, 使用了「無法分辨度量(distinguishability metric)」
  • 具體有三種度量: 「共變」, 「高斯耦合」, 「決策樹」

機器學習方法, 會比經典分佈方法, 得到好非常多的合成數據.

方法三: 混血合成數據 (Hybrid Synthetic Data)

混血合成 = 真實資訊 + 假說資訊

混血合成使用背景:

  • 混血合成(Hybrid Synthetic): 一部分使用真實數據, 一部分使用合成數據.
  • 可「在數據增加訊號(add signal to the data)

例子:醫院數據:

  • 增加「抽雪茄數目」來表達「抽菸(Smoking)」的程度
  • 增加後用高斯耦合, 產生86%的不抽菸個體的指數分佈合成數據.
  • 加入「共變(Correlations)」到原始數據中. 共變結構要靠自己假設.

混血合成好處:

  • 一部分是真實數據.
  • 有額外增加的訊號.
  • 維持原本的共變結構.

混血合成數據集: 真實資訊(Real Information)+假說資訊(Hypothetical Information)

這種的確蠻有道理, 藉由「假說(Hypothesis)」去補missing的資料, 產生的合成數據, 來看實際表現.

序貫機器學習合成(Sequential ML Synthesis):

  • 使用迴歸與分類算法(regression, classification)
  • 實例1: CARTs: classification and regression treees.
  • 實例2: 支撐向量機: Support vector machines.
  • 五個變數要合成: 可以靠各種關係持續去做出來.

這些與Gibbs sampling相關的方法很有關係…不知道誰是這方面的專家.

方法四: 機器學習合成數據 (Machine Learning Methods)

序貫合成變數(Sequentially synthesize variables)

序貫合成變數(Sequentially synthesize variables):

  • 使用決策樹
  • 原則: 使用分類與迴歸模型, 序貫合成變數(sequentially synthesize variables)

方法五: 深度學習合成數據 (Deep Learning Methods)

變分自動編碼器 : 非線性的主成分分析

變分自動編碼器(Variational Autoencoder; VAE):

變分自動編碼器 : 非線性的主成分分析

  • 無監督方法, 從多維數據集學習「表徵」
  • 步驟一 (Encoder): 壓縮資料集, 到低維度更緊緻的表現, 以多維度高斯分佈
  • 步驟二 (Decoder): 將壓縮的表現, 重新造出原始輸入數據.
  • 訓練VAE: 優化「解碼數據(Decoded data)」與「輸入數據(Input data)」之間的「相似性(Similarity)」.
  • 線性版本: 主成分分析

對抗生成網路: 生成與鑑別的輪迴

對抗生成網路 (Generative Adversarial Network; GAN):

  • 步驟一: 生成網路(Generator networks): 輸入隨機數據(從高斯分佈或均勻分布取樣), 生成「合成數據」
  • 步驟二: 鑑別器 (Discriminator): 比較「合成數據」與「真實數據」, 計算「傾向分數(Propensity score)」
  • 步驟三: 回傳傾向分數來訓練生成網路.

方法六: 序列合成數據 (Synthesizing Sequences)

服務是事件的序列, 需合成轉移矩陣

事件串:

  • 許多資料集, 都有「事件串(Sequences of events)」需要建模.
  • 例子: 離散事件序列(Series of discrete events).
  • 保健使用者: 看醫生, 做診斷檢查, 拿藥.
  • 每個階段可能都還有多重子事件.

合成轉移矩陣(Synthesize transition matrix):

  • 需要計算「所有事件之間的轉移矩陣」
  • 可以用排隊理論等等的東西加進來, 很OR風格的研究.

用成熟的Tabular RL算法可以試著解決這些事情? 感覺這邊的確很多東西可以玩, 而且用Deep RL做計算可以搞些研究, 但要商用可能還要很多engineering efforts.

後記

大概花了90分鐘, 把合成數據方法章節寫過了一遍. 仔細比較一下, 這個章節寫得蠻好的! 從最「心智」的模型到最「計算」的模型, 展現人與機器的結合程度由淺至深.

方法編號 研究範式 實踐技巧
方法一 數理機率範式 多變量高斯, 共變異,耦合
方法二 應用機率範式 多變量高斯, 共變耦合, 決策樹
方法三 統計科學範式 混血合成=真實資訊+假說資訊
方法四 機器學習範式 決策樹, 序貫合成
方法五 深度學習範式 變分自動編碼器, 對抗生成網路
方法六 強化學習範式 服務是事件的序列, 合成轉移矩陣

過去的經驗都還能支撐這六種做法, 非常棒! 我想所謂的工程師, 就是要能很快速實踐各種研究範式裡面的方法, 來認識複雜的世界. 非常有趣!期待之後經驗累積! 天天向上, 共勉之!

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

版權

CC BY-NC-ND 4.0

評論