利用AI合成去識別化數據
在2023年的RSA會議上,弗吉尼亞行為健康和發展服務部的CISO和研究員分享了題為“機器崛起:通過人工智能實現數據安全與分析”的議題。他們提出了使用人工智能的方法來快速合成“去識別”(de-identified)數據,從而避免了大量資源消耗和人為誤差。本文將解讀該議題及其涉及的相關技術基本原理。
人工智能與數據合成
統計學習(Statistical Learning)、機器學習(Machine Learning)、符號學習(Symbolic Learning)、神經網絡(Neural Network)…… AI發展至今,已經形成了龐大的分支。每個分支上都存在著各種不同的技術。通過利用這些技術,我們使得機器更加智能。它們可以幫助我們進行分類和預測任務、物體識別任務、動作捕捉任務以及語音的識別和轉錄任務,如圖 1所列舉。然而,要訓練這些機器,我們需要大量的數據作為支持。因此,一個出色的模型通常需要大量的訓練數據。

圖1 機器學習與人類
這引出了一個問題:如何獲取如此龐大的數據?而這個問題又會帶來一系列相關問題:在個人信息保護法的要求下,如何合規合法地收集去識別和脫敏的數據?如何確保在對數據進行識別和脫敏后,仍然能夠有效地用于訓練?
在會議上,Glenn Schmitz提出了使用合成數據(synthetic data)的方法,即利用人工智能自動合成數據,跳過傳統的數據收集過程,將由人工智能合成的數據用于其他人工智能的訓練或數據分析。如圖2所示,通過CycleGAN技術,我們可以將真實圖片轉換為虛擬圖片,例如將冬天的景象轉變為夏天的景象。Glenn Schmitz在會議中提出了三種不同的方法:合成少數過采樣技術(SMOTE),變分自編碼器(VAEs)和生成對抗網絡(GAN)。

圖2 CycleGAN合成數據樣例圖
SMOTE&VAEs&GAN
SMOTE一種使用真實數據進行數據合成(data synthesis with real data)的方法。這種方法使用已有的真實數據集作為基礎,并通過對其進行處理和轉換來生成新的數據集。通常,這涉及對原始數據進行采樣、轉換、增強或添加噪聲等操作,以生成更多的樣本。使用真實數據進行數據合成的主要優點是生成的數據能夠反映出原始數據集的真實特征和分布。具體而言SMOTE通過在少數類樣本之間進行插值,生成合成樣本來增加少數類樣本的數量。如圖3所示,SMOTE方法選擇一個少數類樣本和其最近鄰的樣本,然后在它們之間隨機插值生成新的樣本。這樣可以增加少數類樣本的數量,平衡數據集,并提高機器學習算法對少數類的分類性能。

圖3 SMOTE樣本點生成示意圖
與之相對,VAEs和GAN都是不使用真實數據進行數據合成(data synthesis without real data)的方法。這種方法不依賴于任何真實數據集(生成的數據不依賴于真實數據集,模型的訓練可能需要),而是使用各種建模技術來生成合成數據。通過學習原始數據集的特征和分布,這些模型可以生成與原始數據類似的合成數據。不使用真實數據進行數據合成的優點是可以生成大量的數據樣本,即使在原始數據稀缺或難以獲得的情況下也能夠進行模型訓練和算法評估。然而,由于生成的數據不是基于真實觀測數據,因此可能無法完全捕捉真實世界中的復雜性和不確定性。
具體而言,VAEs是一種基于概率模型的數據合成方法。它結合了自編碼器和變分推斷的思想,可以用于生成合成數據。通過學習數據的潛在表示空間,如圖4中通過encoder學習到數據的概率分布,VAES在該空間中采樣來生成新的合成數據樣本。它的優勢在于能夠生成具有多樣性的數據,同時還能保持數據的連續性和一致性,因為它們是對數據的生成過程進行建模,并且能夠通過調整潛在空間中的參數來控制生成樣本的特征。

圖4 VAEs的編碼與解碼示意圖
而GAN是通過兩個部件——生成器與判別器來合成數據。其中,生成器負責生成合成數據樣本,而判別器則負責區分真實數據和合成數據。如圖5所示,通過對抗性訓練,生成器可以逐漸學習生成逼真的合成數據,同時判別器也不斷提升辨別真實與合成數據的能力。這種對抗性訓練過程使得GAN能夠生成具有高度逼真度和與真實數據相似性的合成數據。

圖5 CGAN的對抗示意圖
合成數據的應用場景
對于合成數據的應用場景,Glenn Schmitz提到了四個目前取得成果的例子,如圖6所示。首先,FACS(Facial Action Coding System)發表了應用合成數據用于骨科手術的案例。其次,DeepAI利用合成數據訓練了圖像分割和目標提取模型。第三,OpenAI利用合成數據進行了語義識別的研究。最后,Ilge Akkaya發表了使用合成數據訓練機器人手臂的成果。
總的來說,合成數據在許多應用場景中發揮著重要作用。它可以用于增強真實數據集的規模和多樣性,從而提高機器學習模型的性能和泛化能力。合成數據還可以用于填補缺失數據或處理數據不平衡的問題,以平衡數據集的分布。此外,合成數據也可以在隱私保護方面發揮作用,通過生成合成數據來替代敏感信息,以保護個人隱私。在模擬和仿真領域,合成數據可以用于創建虛擬環境和場景,以進行測試、驗證和訓練,從而降低成本和風險。總之,合成數據具有廣泛的應用場景,為各種領域的數據分析、建模和決策提供了有價值的資源。

圖6 合成數據應用場景
合成數據的“深淵”
Glenn Schmitz指出,盡管合成數據方便了訓練數據的獲取,但它仍然存在一些爭議和風險。從AI的倫理和道德角度來看,合成數據的生成過程,因為設計原因,可能本身帶有一定的“偏見”,使得生成的數據具有強烈的“個人屬性”。此外,從使用的角度來看,當合成數據用于"精細任務"時,它所引入的誤差可能帶來巨大的使用風險。如圖 7所示,使用時,需要全面的考慮到利弊,同時也需要在道德,偏差與目標做權衡。

圖7 合成數據與AI的使用
正如CycleGAN的研究者在論文中所指出的,CycleGAN的輸出是對“如果......它會是什么樣子”的預測,雖然這些預測看似合理,但與基本事實可能存在很大差異。因此,在根據CycleGAN的輸出作出關鍵決策的領域中,需要謹慎使用和校準。特別是在醫學應用中,例如將MRI數據轉換為CT數據時,這一點尤為重要。就像CycleGAN可能在天空中添加奇特的云彩,使其看起來像梵高的畫作一樣,它可能會在醫學圖像中添加不存在的腫瘤或者移除真實存在的腫瘤,如圖 8所示。

圖8 合成數據錯誤移除與添加腫瘤
合成數據的工具
為了方便研究人員和開發者使用,Glenn Schmitz列舉了一些常用的數據合成工具,如圖9所示,包括:
1)Mimesis:一個多語言的假數據生成庫,可以生成各種類型的數據,如姓名、地址、電子郵件等。
2)The Synthetic Data Vault(SDV):一個開源工具,用于生成合成數據集,它基于統計模型和機器學習算法,可以模擬真實數據的分布和屬性。
3)Transaction data simulator:用于模擬交易數據的工具,可以生成合成的交易數據集,用于測試和分析目的。
4)YData Synthetic:一個用于生成合成數據的平臺,提供了各種數據類型和生成方法,可以根據需求創建合成數據集。
5)Faker:一個用于生成合成數據的Python庫,可以生成各種類型的數據,如姓名、地址、日期等。
此外,還有一些常用的Python庫,如sklearn(Scikit-learn)、faker module、PYOD(Python Outlier Detection)、CTGAN(Conditional Tabular GAN),它們提供了豐富的功能和算法,用于生成和處理合成數據。

圖9 合成工具包舉例