使用生成對抗網路(Generative Adversarial Networks, GAN)生成欺詐資料

GAN是在2014年,由Ian Goodfellow所提出的一個「非監督式學習」的架構。

GAN是深度學習中用於生成數據的強大模型,由兩個網路組成:生成器(Generator)和判別器(Discriminator),並透過對抗學習共同進步。

1.生成器(Generator):接收隨機雜訊作為輸入,生成模擬的數據樣本。

2.判別器(Discriminator):負責區分輸入數據是真實的還是生成的。

3.生成器的目標是「欺騙」判別器,使其無法區分數據來源;而判別器則試圖最大化其判斷準確性。這種對抗學習的過程促使生成器逐漸生成更逼真的數據。

什麼是 GAN?, AWS

由於GAN的生成資料特性,很適合金融業在解決在建置信用評等模型或欺詐模型時,因缺少違約資料或欺詐資料的頭痛問題。

以下採用GAN方式透過分析真實欺詐交易案例,來生成合成資料的互動圖。

GAN生成器學習欺詐特徵

🧠 生成器如何學習欺詐特徵

GAN生成器通過分析真實欺詐交易的統計分布和模式,學習生成相似的合成資料

欺詐 vs 正常交易特徵分布

生成器分析這些差異,學習欺詐交易的獨特模式

關鍵洞察:欺詐交易在深夜、異國、高額等特徵上顯著高於正常交易。生成器學習這些分布差異,生成具有相似統計特性的合成資料。

生成器訓練過程

隨著訓練輪次增加,生成資料品質逐步提升

初期 (0-500輪)

生成器產生隨機噪音,判別器輕易識別為假資料。品質分數低於40%。

中期 (500-2000輪)

生成器開始捕捉關鍵特徵分布,如時間、金額模式。品質分數提升至75-88%。

成熟期 (2000+輪)

生成器精確模擬複雜關聯特徵,判別器難以區分真假。品質分數達90%以上。

生成器學習的具體特徵範例

⏰ 時間特徵

真實模式:深夜2-5點交易佔比45%

學習規則:random_time = np.random.choice([2,3,4], p=[0.4,0.3,0.3])

生成範例:凌晨3點的交易

💳 金額特徵

真實模式:金額分布:$5000-$15000,均值$8500

學習規則:amount = np.random.normal(8500, 2000)

生成範例:$8,234.56

📍 地理特徵

真實模式:38%交易來自異常國家

學習規則:country = sample([‘異國A’,’異國B’], [0.4, 0.6])

生成範例:泰國、印尼

📈 行為特徵

真實模式:1小時內3-5筆連續交易

學習規則:transactions_per_hour ~ Poisson(λ=4)

生成範例:60分鐘內4筆交易

💡 完整生成流程示例

# 生成器神經網絡學習後的生成過程
noise = np.random.randn(100) # 隨機噪音輸入
synthetic_fraud = generator.predict(noise)

# 輸出合成欺詐交易:
{
  “amount”: 8234.56,
  “time”: “03:15:22”,
  “location”: “泰國曼谷”,
  “merchant_type”: “電子產品”,
  “transactions_last_hour”: 4
}

多維特徵空間分布

生成器學習在多維空間中模擬真實欺詐交易的分布

觀察重點:生成的欺詐交易(橙色)與真實欺詐交易(紅色)在高金額+深夜時段的分布區域高度重疊,而與正常交易(綠色)明顯區隔。這證明生成器成功學習了欺詐交易的多維特徵關聯。