摘要:摘要隱私數據與機器學習看似矛盾,其實不然。在每個分區上訓練機器學習模型,將其稱為教師模型。差分隱私能夠很好地與機器學習的任務相一致,比如在學習過程中,記住像病例這樣的特殊訓練實例是侵犯隱私的行為,也是一種過擬合現象,降低了模型泛化能力。
摘要: 隱私數據與機器學習看似矛盾,其實不然。如何有效保護機器學習訓練中的隱私數據?谷歌專家給出了答案——PATE框架,就算你不太懂隱私保護的知識,也可以通過PATE框架來保護機器學習里的訓練數據。
最近關于互聯網隱私引發大眾的關注于討論,前有Facebook“數據門”,小扎不得不換下常穿的灰色短袖和牛仔裝,換上深藍色西裝參加國會聽證;后有百度總裁李彥宏稱中國用戶愿用隱私方便和效率引發網友強烈反感,網友評論說,犧牲隱私不一定換來效率,還可能換來死亡,比如搜索到莆田醫院,還可能換來經濟損失,比如大數據殺熟等等;近來有知乎強制隱私搜集條款,引發部分用戶卸載APP,國內很多APP若不同意給予相關權限,則無法正常使用,這真是陷入兩難境地。為什么現在很多應用會收集數據呢,《未來簡史》這本書中給了答案——未來的世界數據為王,人類可能只是放大版的螞蟻,用于產生數據。有了數據后,加上合適的算法可以完成很多事情,這些技術均與機器學習、深度學習以及數據科學相關。人們擔心自己的數據被收集后會被泄露或者是被不正當使用,因此,如何將隱私數據很好地保護起來是公司需要考慮的主要問題之一。本文將分析隱私與機器學習二者的關系,并設計了一種PATE框架,能夠很好地避免被動地泄露用戶隱私數據,下面帶大家一起看看吧。
在許多機器學習應用中,比如用于醫學診斷的機器學習,希望有一種算法在不存儲用戶敏感信息(比如個別患者的特定病史)的情況下,就可以完成相應的任務。差分隱私(Differential privacy)是一種被廣泛認可的隱私保護模型,它通過對數據添加干擾噪聲的方式保護鎖發布數據中潛在用戶的隱私信息,從而達到即便攻擊者已經掌握了除某一條信息以外的其它信息,仍然無法推測出這條信息。利用差分隱私,可以設計出合適的機器學習算法來負責任地在隱私數據上訓練模型。小組(Martín Abadi、 úlfar Erlingsson等人)一系列的工作都是圍繞差分隱私如何使得機器學習研究人員更容易地為隱私保護做出貢獻,本文將闡述如如何讓隱私和機器學習之間進行愉快的協同作用。
小組最新的工作是PATE算法(Private Aggregation of Teacher Ensembles,PATE),發表在2018年ICLR上。其中一個重要的貢獻是,知道如何訓練有監督機器學習模型的研究人員都將有助于研究用于機器學習的差分隱私。PATE框架通過仔細協調幾個不同機器學習模型的活動來實現隱私學習,只要遵循PATE框架指定程序,生成的模型就會有隱私保護。
機器學習算法的工作方式通過大量數據并更新其參數來學習數據中的關系。理想情況下,希望這些機器學習模型的學習到一般模型(比如“吸煙患者更容易患心臟病”),而不是訓練特定實例(比如“Jane Smith患有心臟病”)。不幸的是,機器學習算法沒有學會默認地忽視這些細節,如果想用機器學習來解決某個重要的任務,比如癌癥診斷模型,當發布機器學習模型時(比如開源癌癥診斷模型),可能無意中透露訓練集的相關信息,惡意攻擊者可能從發布的模型獲得關于Jane Smith的私密信息,這就是差分隱私應用的地方。
如何定義和保護隱私?科學家在分析數據時提出了很多方法來提供隱私保護,比較流行的做法是在分析數據之前,刪除私人細節或隨機值替代等。一般將電話號碼和郵編等細節匿名處理,然而匿名數據并不總是足以滿足要求,當攻擊者獲得關于數據集中表示個體的輔助信息時,這種匿名操作提供的隱私性就會大大降低。因此,定義和保護隱私是困難的,很難估計出攻擊者能夠獲得的信息范圍。
差分隱私是用于隱私保護的模型,其基本思想是隨機化部分機制的行為以提供隱私,將隨機性引入到學習算法中的直覺是很難從訓練好的模型中根據訓練數據辨別出隱私行為。
本文使用的差分隱私版本是要求訓練集改變一個例子時學習到的任何特定參數的概率大致相同。這樣做的原因是,如果單個病人(Jane Smith)的數據不影響模型學習的結果,那么該病人的數據就不會被記錄,其隱私受到保護。本文將這種概率稱為隱私預算(privacy budget),較小的隱私預算對應更強的隱私保護。
如上圖所示,當攻擊者不能由基于三個用戶數據訓練的算法從兩個用戶的數據中區分隨機算法產生的答案時,則實現了差分隱私。PATE背后的直覺是什么?
PATE方法為機器學習提供查分隱私是基于一個簡單的直覺——如果兩個不同的分類器分別在兩個沒有共同的訓練實例數據集上訓練,并對一個新的輸入實有相同輸出時,那么做出的決定沒有透露任何單個訓練實例的信息。由于每個模型所預測的類別可能會泄露其訓練數據中包含的一些私人信息,所以不能多帶帶發布每個模型的類別輸出。比如,假設Jane Smith的數據只對兩個模型中的一個模型的訓練數據作出貢獻,且該模型預測與Jane Smith記錄數據非常相似的患者為患癌,而另外一個模型預測結果則相反,這種情況則可以透露出Jane Smith的私人信息。這個例子也說明了為什么對算法添加隨機性是確保它提供任何有意義的隱私保護的必要條件。
PATE如何工作?
在PATE中,首先在數據子集中分離出私有數據集,如下圖所示。如果Jane Smith記錄在私有數據集中,那么它只在一個分區中存在。在每個分區上訓練機器學習模型,將其稱為教師模型(teacher model)。教師模型的訓練方式是沒有約束的,這也是PATE的主要優點之一。所有的教師解決相同的機器學習任務,但它們都是獨立訓練的。即,只有一位教師分析了Jane Smith記錄的數據。
如何使用這一組獨立訓練的教師模型來保證隱私呢?在PATE中,聚合所有教師預測并形成共識時加入噪聲。統計每個類別投票的教師數量,然后添加拉普拉斯或高斯分布的隨機噪聲來擾亂統計數據。當兩個輸出類別的票數相同時,隨機選取其中一個。另外,如果大多數教師的輸出類別指向同一個類別,加入噪聲并不會改變該類別獲得最多選票。因此,引入拉普拉斯等噪聲,把票數的統計情況打亂,從而保護隱私
以分兩類的醫學診斷任務為例說明聚合過程。如果Jane Smith得了癌癥,下面分析聚合機制的輸出結果。下圖中的紅色模型是唯一一個在Jane Smith數據上訓練的教師模型,因此能夠將類似于Jane的記錄數據預測為癌癥患者。從圖中可以看到,有兩位教師投票是“癌癥”,剩余的兩位教師投票是“健康”。在投票計數中添加隨機噪聲阻止聚合結果反映任何個別教師的投票以保護隱私。
該框架存在兩個限制:首先,由聚合機制做出的每個預測增加了總的隱私預算;其次,不能開源發布教師模型的集合,否則,攻擊者可以檢查公布的模型參數,以了解到訓練使用的私人數據。因此,創建學生模型(student model)。
學生模型通過將教師集合獲得的知識以隱私保護的方式進行訓練。學生模型從一組未標記的公共數據中選擇輸入數據,并將這些輸入提交給教師模型以獲得標簽,之后學生模型使用標記過的數據來訓練模型。
隱私保護和由聚合機制預測標簽的正確性都源于教師之間達成的共識。當大多數教師投票某一類別時,增加噪聲并不會改變投票最多的類別結果,這表明聚合機制有非常強的隱私保證。
差分隱私能夠很好地與機器學習的任務相一致,比如在學習過程中,記住像Jane Smith病例這樣的特殊訓練實例是侵犯隱私的行為,也是一種過擬合現象,降低了模型泛化能力。
這一過程促使我們聚合機制進行改進,使其具有選擇性:教師只對學生提出的部分問題作出回應。當教師提問時,首先檢查教師之間的共識度是否足夠高,若投票數大于設定的閾值,則接受學生的詢問,否則拒絕。閾值的設定是隨機的,以便在選擇過程中提供隱私性。下圖表明了該過程:
在實驗中,隱私預算主要花費在兩個方面:選擇和回答查詢。然而教師之間具有高度一致性,因此選擇回答查詢的預算十分小。下圖展示了不同查詢問題函數時性能的提升情況,分別為原始機制(Simple GNMax)、優化后機制(Confident GNMax),當使用數據依賴(data-dep)分析時,使用時刻會計(moments accountant)和RDP(R"enyi Differential Privacy)。機器學習研究者如何使用PATE改進模型?
主要影響方法提供的隱私保護的強度有兩個:
1.教師之間的共識:共識越強烈,輸出相應標簽所花費的隱私預算也越少。
2.學生詢問的數量:學生詢問標簽時,教師產生標簽花費的預算會被添加到總的隱私成本中,盡可能少地對教師進行訓練,增強提供的隱私保護。
加強教師共識,需要在小量數據集上訓練一大批教師模型,提高這些模型的準確性和泛化能力將有助于提升共識。
PATE框架已經開源,并且可在TensorFlow模型庫中調用,使用以下代碼克隆相關程序并設置變量:
cd git clone https://github.com/tensorflow/models cd models export PYTHONPATH=$(pwd):$PYTHONPATH cd research/differential_privacy/multiple_teachers
第一步是訓練教師模型,以下演示的是在MNIST手寫體數據集上訓練250位教師模型:
python train_teachers.py --nb_teachers=250 --teacher_id=0 --dataset=mnist python train_teachers.py --nb_teachers=250 --teacher_id=1 --dataset=mnist ... python train_teachers.py --nb_teachers=250 --teacher_id=248 --dataset=mnist python train_teachers.py --nb_teachers=250 --teacher_id=249 --dataset=mnist
訓練好后,加載這些教師模型,并應用聚合機制來監督學生模型的訓練:
python train_student.py --nb_teachers=250 --dataset=mnist --stdnt_share=1000 --lap_scale=20 --save_labels=True
可以看到,在聚合機制中引入了拉普拉斯尺度1/20的噪聲,訓練好后保存在文件/tmp/mnist_250_student_clean_votes_lap_20.npy中。
運行分析腳本來了解學生模型保護差異隱私的界限值,并將noise_eps設置為 2/lap_scale:
python analysis.py --counts_file=/tmp/mnist_250_student_clean_votes_lap_20.npy --max_examples=1000 --delta=1e-5 --noise_eps=0.1 --input_is_counts
以上設置再現了PATE框架,感興趣的讀者可以在Github查閱全部代碼。
詳情請閱讀原文
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41638.html
摘要:當發生網絡分區時,你將面臨兩個選擇如果堅持保持各節點之間的數據一致性選擇,你需要等待網絡分區恢復后,將數據復制完成,才可以向外部提供服務。期間發生網絡分區將不能對外提供服務,因為它保證不了數據一致性。則強調是高可用,對數據一致性要求更低。這篇文章著重點不在于科普,畢竟關于CAP、BASE的理論的文章,網上很多。所以本文科普篇幅盡量小(只包含概念描述)。主要從幾個側面的問題來描述CAP,進而描...
閱讀 3385·2021-11-24 09:38
閱讀 1384·2021-11-22 15:08
閱讀 1453·2021-09-29 09:35
閱讀 474·2021-09-02 15:11
閱讀 1303·2019-08-30 12:55
閱讀 383·2019-08-29 17:16
閱讀 491·2019-08-29 11:30
閱讀 415·2019-08-26 13:23