<style> html, body, .ui-content { color: #333; background-color: #fffff0; background-position: center center; background-repeat: repeat-y; background-attachment: fixed; } .alert-success { background-color: #e7f3e3; } .alert-danger { background-color: #f7e5e5; } .alert-warning { color: #8a6d3b; background-color: #fbf7f2; border-color: #faebcc; } .alert-warning a { color: #9b8364; ; } .ui-toc-dropdown .nav .nav>li>a { font-size: 14px; } .ui-content:before { content: ""; position: fixed; z-index: -1; top: 0; right: 0; bottom: 0; left: 0; background-image: inherit; } #doc.markdown-body, .document-footer { background: #fff; border-radius: 10px; margin-top: 20px; padding-top: 0; padding-left: 30px; padding-right: 30px; padding-bottom: 80px; min-height: calc(100% - 160px); } .document-footer { padding-top: 30px; } .markdown-body h1 { font-size: 30px; color: orange; } .markdown-body h2 { font-size: 28px; color: #ffffff; margin: 30px 0 30px !important; border-bottom: 3px solid #93c6b3; background: #93c6b3; padding: 7px 5px 5px; text-align: center; border-radius: 50px; } .markdown-body h2:after { content: ""; display: none /*block*/ ; margin: 10px 0px 0px 0px; width: 40px; height: 6px; background-color: #93c6b3 /*#6ab69a*/ ; } .markdown-body h3 { padding-bottom: 10px; font-size: 24px; color: #4c4987; border-bottom: 1px dashed #4c4987; } .markdown-body h4 { padding-left: 20px; font-size: 20px; color: #615ea8; background-image: url('https://www.e7way.com.tw/images/icon-quote2.png'); background-position: top left; background-repeat: no-repeat; } .markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre { color: #444; line-height: 2.4em; letter-spacing: 0.05em; } .alert { padding: 30px; } .alert-info { color: #1d1d3e; background-color: #f3f4ff; border-color: #f3f4ff; } .footnotes ol li { margin: 5px 0; } .markdown-body li+li { padding: 0; } /*--------------------------------------*/ .ui-toc-label:hover { background-color: #9C9CC1; border: none; } .ui-toc-dropdown>.toc { max-height: 100vh; overflow: hidden !important; } .ui-toc-dropdown .nav>li>a { font-weight: 400; font-size: 16px; margin: 10px 0 0; padding: 0 0 0 20px; } .ui-toc-dropdown .nav .nav { padding: 0; margin: 0; } .ui-toc-dropdown .nav .nav>li>a { font-size: 14px; line-height: 1.1em; margin-bottom: 0px; padding-bottom: 0; } .ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a { color: #6ab69a; background-color: transparent; border-left: 2px solid #6ab69a; } .ui-toc-dropdown .nav>li>a:focus, .ui-toc-dropdown .nav>li>a:hover { padding-left: 18px; color: #6ab69a; text-decoration: none; background-color: transparent; border-left: 2px solid #6ab69a; } .ui-toc-dropdown .nav .nav>li>a:focus, .ui-toc-dropdown .nav .nav>li>a:hover { padding-left: 30px; border: 0; } .ui-toc-dropdown .nav .nav>.active:focus>a, .ui-toc-dropdown .nav .nav>.active:hover>a, .ui-toc-dropdown .nav .nav>.active>a { padding-left: 30px; font-weight: 400; border: 0; } } /* 表格樣式 --------------------------------------*/ .markdown-body table th, .markdown-body table td { border: 0px; } .markdown-body table th { color: #528f78; background: #dceae7; border: 1px solid #e3f6f2; } .markdown-body table td { padding: 6px 13px; border: 0px solid #def1ec; } .markdown-body table tr:nth-child(2n) { background: #f5fbfb; border: 1px solid #f5fbfb; } /* 表格樣式 (無捲軸) --------------------------------------*/ .css-table { display: table; display: table-cell; } .css-table .thead { display: table-header-group; } .css-table .thead .th { color: #528f78; background: #dceae7; border: 1px solid #e3f6f2; font-weight: bold; font-size: 20px; text-align: center; } .css-table .tbody { display: table-row-group; } .css-table .tr { display: table-row; } .css-table .th, .css-table .td { display: table-cell; border: 0px; line-height: 2em; word-break: break-all; } .css-table .td { padding: 6px 13px; border: 0px solid #def1ec; font-size: 18px; } .css-table .tr:nth-child(2n) { background: #f5fbfb; border: 1px solid #f5fbfb; } .toc-menu { margin: 20px 0 0; padding: 5px 0; background: #f4f5fa; border-radius: 10px; } /* 左欄目錄 */ .ui-affix-toc { margin-right: 5px; } /* 收合文字、常見問答 */ .markdown-body details summary { color: #615ea8; font-size: 20px; line-height: 2.4em; } details.part.in-view p { margin-left: 22px; } .expand-toggle, .back-to-top, .go-to-bottom { margin: 5px; padding: 2px 15px; color: #8e8da7; } /* RWD ********************************************************/ /*通用 ========================= 桌機以上 (16:9 螢幕) [>1367]*/ @media only screen and (min-width : 1367px) { #doc.markdown-body, .document-footer { padding: 0 30px; } } /*通用 ========================= 大尺寸筆電 [<1366]*/ @media only screen and (max-width: 1366px) { .markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre { font-size: 18px; } .alert { padding: 15px; } .alert-info p { margin: 0 5px 0 0; } } /*通用 ========================= 平板以下 (筆電、平板、大尺寸手機) [<991]*/ @media only screen and (max-width : 991px) { .markdown-body h2 { font-size: 20px; } .markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre {} .markdown-body ul, .markdown-body ol { padding-left: 1.5em; } #doc.markdown-body, .document-footer { padding: 15px; } #doc.comment-enabled.comment-inner { padding: 15px; } .markdown-body li > p { margin: 0; padding: 0; } .alert { padding: 15px; } } </style> # 模擬案例二:金融欺詐事件偵測 ## 情境說明 信用卡詐欺對企業、銀行和個人造成的巨大經濟損失,使其在全球備受關注。隨著電子支付的普及,詐欺者可利用更多安全漏洞竊取敏感資訊。這不僅會造成金錢損失,金融機構的聲譽損害,還會影響消費者對電子支付的信任。因此,有效的詐欺檢測系統(Fraud Detection System, FDS)非常重要。FDS通常利用機器學習和資料分析技術進行檢測,使用已知的詐欺和非詐欺交易資料,例如交易方式、地點、商品、金額等等行為特徵來建立模型。若是想獲得性能良好的模型,需要資料量足夠多的資料集。 一個典型的作法是將這些資料集中到一個中央資料庫,但這種方法會帶來一些隱私方面的挑戰,例如:信用卡交易資料為極具隱私性之資料,因此資料的擁有者可能不希望共享這些資訊,資料傳輸過程中也可能遭到外洩。考量到信用卡交易資料可能推論出個資相關的隱私資訊,集中式FDS並不是最合適的方法。 而使用聯合學習訓練FDS,使多個金融機構在伺服器的協調下進行協作,能夠將每個銀行的資料保存在自己的本地系統中。此舉降低了暴露敏感資料的風險,並且與每家銀行單獨訓練模型相比,能更好地檢測詐欺行為。然而,攻擊者依然可以由傳輸的模型參數中還原原始訓練資料。因此,仍需採用差分隱私來為參數引入雜訊,使得原始模型參數難以被準確識別。若有人試圖通過分析共享模型中的參數來推斷原始訓練資料,也會因模型參數加入雜訊,而難以得到準確原始訓練資料,進一步導致模型準確性下降。經過差分隱私保護的本地端模型參數,在經過伺服器進行聚合後,仍然具有預期的預測準確度。然而在限定模型存取權限的情況下,希望限制伺服器對訓練完成並經過聚合的全域模型參數的存取。因此,通過安全多方計算,系統可以進一步限制伺服器對於本地端模型參數的存取,同時間仍然可完成模型參數的聚合工作。同時加入上述的兩種隱私強化技術,使系統可以在不洩漏敏感客戶資料以及模型參數的情況下進行協作學習,可以為信貸信用分析或詐欺檢測等重要任務生成更準確的模型。 ## 情境使用資料說明 Credit Card Fraud Detection資料集包含2013年9月歐洲持卡人使用信用卡進行的交易紀錄。由於保密問題,公開資料集無法提供資料的原始特徵和更多背景資訊,部分欄位資料為主成分分析(Principal Components Analysis, PCA)轉換後的數值(欄位V1、V2至V28)。主成分分析本質上是一種維度縮減技術,能夠在減少維度的同時保留重要特徵。因此,這28個欄位之數值可以被視為是由更多不同資料(如客戶詳情、交易金額、交易地點等)組合而成的綜合數值。 資料集各欄位說明如下: 1. Time:每筆交易與資料集中第一筆交易之間經過的秒數 1. V1, V2, …, V28:通過 PCA 轉換的結果 (可能包含隱私資料) 1. Amount:交易金額 1. class:詐欺的情況為 1,否則為 0 (預測的目標變量) | Time | V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 | V9 | V10 | V11 | V12 | V13 | V14 | V15 | V16 | V17 | V18 | V19 | V20 | V21 | V22 | V23 | V24 | V25 | V26 | V27 | V28 | Amount | class | | -------- | -------- | -------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- |-------- | |0|-1.3598071336738|-0.0727811733098497|2.53634673796914|1.37815522427443|-0.338320769942518|0.462387777762292|0.239598554061257|0.0986979012610507|0.363786969611213|0.0907941719789316|-0.551599533260813|-0.617800855762348|-0.991389847235408|-0.311169353699879|1.46817697209427|-0.470400525259478|0.207971241929242|0.0257905801985591|0.403992960255733|0.251412098239705|-0.018306777944153|0.277837575558899|-0.110473910188767|0.0669280749146731|0.128539358273528|-0.189114843888824|0.133558376740387|-0.0210530534538215|149.62|0| ## 使用之隱私強化技術 聯合學習除了滿足個別訓練資料擁有者的資料保護需求外,也會需要因應各種潛在的攻擊者來採用不同的隱私強化技術,來抵禦對應的攻擊,例如安全多方運算、差分隱私等技術。聯合學習的隱私性保護因此能夠隨著使用者需要進行調整,滿足不同環境下的資料安全性需求。在此以詐欺檢測系統聯合學習進行舉例說明。 ### 使用聯合學習 透過聯合學習,散落在不同金融機構的客戶信用卡交易資料可進行共同的詐欺檢測模型訓練,每個金融機構在本地使用自己的資料訓練本地模型,再上傳本地參數至伺服器進行全域聚合模型和更新,由於資料不需要傳輸到伺服器或第三方集中,因此能夠保護到不同金融機構之交易資料隱私。 然而,在此情況下,伺服器能夠直接地獲得每個金融機構的模型參數更新,而外部攻擊者可能在傳輸通道上進行竊聽,以獲取相關資訊並進行推理攻擊,這可能對資料隱私造成威脅。因此,在實施聯合學習時,必須考慮加強資料隱私性保護措施。 ### 加入差分隱私(隱私強化保護之聯合學習) 為了避免伺服器或是外部攻擊者得到金融機構的模型參數更新,我們將差分隱私加入聯合機器學習中。差分隱私能夠使用多種統計學機制對模型參數加入雜訊防止原始資料之暴露,提高隱私保護程度,然而,增加雜訊可以提高隱私保護程度,但同時會影響模型的準確性。因此,需要在合理的雜訊範圍內找到平衡,確保隱私得到適當保護的同時,維持模型的合理性能。 ## 隱私強化技術使用目的 使用聯合學習將資料保存在各自的本地系統中,降低了暴露敏感資料的風險,並且每個本地端皆可從共享模型中獲益,能比個別訓練所得出的模型效能更好。 使用差分隱私防止伺服器與資料提供者合作,藉由彼此所擁有的資訊來推理隱私資料,並防止攻擊者竊聽傳輸通道獲取資料來推理隱私資料。 ## 隱私強化技術運作方式/機制說明 在隱私強化保護之聯合學習的架構中,指定一個可信任的第三方作為金鑰發放中心,並將每個參與訓練的金融機構視為獨立的本地端。本案例使用公有雲端服務平台(如AWS、Azure或Google Cloud)上的伺服器作為聚合伺服器。為了增強隱私保護,還採用了其他隱私強化技術,因此訓練過程如下: 1. 本地端使用本地資料對模型進行訓練,將獲得的本地模型參數加入差分隱私的隨機雜訊,保護本地模型參數不受伺服器之直接窺探。 2. 將受保護之參數本地模型上傳至聚合伺服器。 3. 當伺服器收到本地端上傳的資料後,將這些資料進行聚合,完成後即可更新全域模型,更新後的全域模型會被傳送回所有本地端,以進行新一輪的訓練。 ![圖片19](https://hackmd.io/_uploads/Bym4Xt7FT.png) <p class="text-center">▲ 圖十九、聯合學習擬真情境運作架構</p> ## 適用此隱私強化技術之其他領域 需要隱私性保護之分散式機器學習訓練之場景,如智慧醫療、智慧工業控制、車聯網路、智慧電網、物聯網路等。 ## 實作程式碼 本案例之實作程式碼已公開於數位發展部 GitHub。 https://github.com/moda-gov-tw/PETs-Applications ## 參考文獻 1. D. Byrd and A. Polychroniadou, “Differentially private secure multi-party computation for federated learning in financial applications,” in Proceedings of the first ACM international conference on AI in finance, 2020, pp. 1–9. 2. Machine Learning Group - ULB, “Credit Card Fraud Detection | Kaggle.” https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud (accessed Sep. 03, 2023). 3. K. Bonawitz et al., “Practical secure aggregation for privacy-preserving machine learning,” in proceedings of the 2017 ACM SIGSAC conference on computer and communications security, 2017, pp. 1175–1191.