淘新聞

Ian Goodfellow與ICLR 17最佳論文得主新作:驗證與測試,機器學習的兩大挑戰

雷鋒網AI科技評論按:去年年底,Ian Goodfellow與Nicolas Papernot(是的,就是ICLR 2017的最佳論文得主之一)合作開了一個博客叫cleverhans,主要寫一些關於機器學習在安全與隱私問題的文章。一個Goodfellow、一個Papernot,此二神的稱呼真是般配呢。

在第一篇博客裡,他倆介紹了為什麼攻擊機器學習要遠比防禦容易得多。以下是雷鋒網AI科技評論編譯的第二篇文章,未經雷鋒網AI科技評論許可不得轉載:

在我們的第二篇博客裡,我們此前已經給出了一些背景知識,告訴大家,為什麼到目前為止,我們還不能有效的處理對抗樣本。對此,我們懷疑我們是否還可以對此進行防禦。

在本文中,我們將探討積幾類保護措施。通過這些措施,我們就可以使我們的機器學習模型能夠真正的起作用。就目前來說,我們認為現有防禦措施的限制在於,缺乏對機器學習模型的驗證機制。確實是這樣的,為了能夠設計出可靠地系統,工程師們都需要進行測試與驗證:

測試指的是在某些環境狀態下,對系統進行評估,並記錄系統的運行狀況以及是否出現缺陷。

驗證指的是,經過驗證,我們確保我們的系統在一般情形下,可信並可用的,它具有通用性。

與這個問題相正交的另一個問題是,哪些資料需要作為驗證集與測試集。我們是否只應考慮那些“自然而然”的資料作為測試與驗證的資料集?倘若我們的輸入的是一些髒資料,對此,我們是否要提供一些保護性措施?許多的軟體系統對於某些輸入都有未定義的反應。比如說,編譯器。

我們是否應該測試與驗證?應該使用什麼樣的資料?

機器學習從業人員廣泛依賴初級的測試方法。一般來說,我們評估一個分類器的做法是:從測試資料中選出一些樣本,使用分類器對這些樣本進行預測,最終得到分類器預測這些樣本的準確率。通過以上描述,我們知道,這種測試方法並不能涵蓋到所有可能被誤判的樣本。

對測試集誤差的驗證模擬,是一種統計學習理論。通過運用該理論,我們就能確保測試錯誤率不會超過某個閾值。但是這些保證往往太過於保守,我們在工程實踐上很少用到。即使我們使用了統計學習理論,我們也會認為僅僅考慮到那些“自然而然的”輸入:這些保證僅僅在測試資料集與訓練資料集屬於同一個分佈的時候,才會生效。

引入對抗因數

為了能夠提供安全保護,我們有必要在兩個維度上進行改進:

1)我們最好使用驗證而不是測試;

2)確保模型可以應對異常情況。

研究人員都希望他們的研究結果會有很大的魯棒性,能夠應對異常情況。

為了檢驗系統對對抗樣本的魯棒性,最簡單的方式是使用含有對抗樣本的資料集作為測試集[SZS13]。也就是使用新的輸入來應用于傳統的機器學習測試方法。

然而,不幸的是。僅僅通過測試,我們並不能得到完美的安全保證。因為,攻擊者會使用不同于測試集中的資料。

例如,我們的模型對於對抗樣本生成的方法——fast gradient sign method具有很強的魯棒性,但是卻有可能易受到代價高昂計算方法的影響,比如說數值優化[szs13]或者是顯著圖[PMJ16]。

通常情況下,僅僅進行測試是不夠的。因為,測試僅僅提供了系統的錯誤率的下限,而我們要想得到安全保證,我們還需要得到上限。換句話說,通過測試,我們知道n個輸入導致了錯誤的發生,那麼工程師就能夠確定至少會有n個輸入會導致模型失效。可是,實際上工程師更希望找到另外一種方法。他們希望這種方法能夠找到導致錯誤發生的輸入的上限。

我們在機器學領域內測試上遇到的局限性,讓人想起了許多其他的軟體設計中遇到的問題。當我們討論如何確保程式的準確性的時候,Edsger Dijkstra說到:“測試表明bug是存在的,而不是不存在。”

我們都清楚,使用正常資料進行測試足夠滿足我們的機器學習應用。但是,對異常資料的驗證對於安全保證來說,依然是必需的。我們需要驗證,然而目前為止,我們僅僅知道該如何進行測試。

我們很容易破壞掉目前我們得到的機器學習模型,使用異常資料進行測試就足夠暴露模型的缺陷了。希望在不久的將來,我們可以有更好的方式來應對對抗樣本。僅僅通過測試,可能尚不足以暴露模型的缺點。我們需要驗證技術來研究新防禦措施的有效性。保障機制的發展表明,在存在對抗的背景下,正確處理輸入空間對於ML未來的發展至關重要。它幾乎完全就是建立在形式化驗證的基礎之上的。

機器學習的驗證理論

機器學習模型對對抗樣本的魯棒性驗證尚處於起步階段。對於分類器,當前使用的驗證方法是,分類器將同一個類別中的所有的點分配到某個點 x 的附近。下面的這幅動畫演示了這種方法。我們將這種方法與模型測試的方法進行比較。

對於神經網路,研究人員正在努力地建立驗證機制。不幸的是,這些系統還不是很成熟。Pulina et al.開發出了第一代的驗證系統,表明神經網路的輸出類別在所期望區域是恒定的。第一代系統的缺陷是,僅僅有一層隱藏層,所表徵的網路中的隱藏單元數量不到12個。此外,sigmoid激勵函數使用約束來近似的將問題減少為SAT。

這之後,Huang et al.改善了初始化方法,並提出了一個適應于現代神經網路結構的新的驗證系統.[HKW16]。該系統能夠適應於更大的網路。比如說ImageNet分類器。這個系統唯一存在的限制是,它依賴於各種假設。比如說:神經網路中只有部分隱藏結點和輸入有關。這種假設也就意味著該系統不在絕對的保證沒有對抗樣本。因為對抗樣本可以通過違背假設,進而躲開系統的檢測。比如說,對抗樣本通過使用無關隱藏單元。

Relupex是另一個檢驗系統。它使用的是線性規劃求解器,能夠適用於非常大的網路。Replux對於rectified linear networks以及分段線性結構來說,效率更高。

目前的驗證系統都有一定的使用範圍,並不是通用的。它們僅在那些輸出類別是恒定,並且僅在某些特定點x的特定周圍時候,才會起作用。下面是該系統的兩個限制:

1) 我們無法窮舉近似分類器的點。(我們不能認為未來的輸入的資料都是正常的資料)

2) 我們所使用的臨近x的區域。都過於武斷與保守;我們傾向於使用小尺寸的L

p

範數球,因為研究人員認同意這樣做。對於足夠小的範式球來說,所有相接近的點都會屬於同一類。但是實際上,真正類別所屬的區域應該會更大,並且可能不會是規範的形狀,不會是我們所指定的形狀。

總之,要想驗證我們的機器學習模型,我們首先要做的是定義一組正常的輸入。也就是說,我們的分類器能夠很好地進行與判別。在大多數情況下,合法輸入集要遠比測集大。研究人員需要設計驗證技術,通過驗證技術,我們就能夠有效的確保我們的機器學習模型能夠在合法資料上做出正確的判斷。機器學習經常會有很多的挑戰,這樣我們可能就很難達到目標。比如說模型推廣問題。[PT10, HKW16, KBD17 ]中有相關介紹。如果是這種情況的話,使用其他領域的開發技術可能會使機器學習模型得到部分驗證(更類似於某種測試):一個很好的案例是,模糊性對於電腦安全來說,有積極地影響。

對抗環境下是否還存在“NFL定理”?

因為沒有任何一個機器學習模型是完全健壯與準確地,因此我們需要考慮不存在驗證系統的可能性。特別要注意的是,對於新的,之前沒有看到過但是合法的輸入x,我們很難做到推廣。

對於傳統的機器學習來說,有很多的理論能夠清晰地界定機器學習模型是否適應新的測試資料。比如說,“沒有免費的午餐”定理(NFL定理)。該理論表明,在我們將所有可能的資料集進行平均後,所有的監督學習分類演算法在測試集上會有同樣的準確率。

現在的我們面臨的開放問題是,NFL定理是否也同樣適用於對抗情形?我們假設我們對測試資料集進行小規模擾動,驗證NFL定理的時候,將這些擾動同樣考慮進來,最終我們發現這個理論失效了。

根據這個問題的解決方案,攻擊方與防守方可能會有不同的結果。攻擊方會有很大的優勢,因為我們都知道預測新的測試資料的準確值在統計上來說會有很大的困難。倘若我們足夠幸運的話,防守者defender可能會在眾多問題中都有很大的優勢,這就為我們設計與驗證魯棒性演算法鋪平了道路。

有趣的是,讀者可以在[PMS16]這篇文章中找到關於該問題的初步探討。分析權衡了模型準確率與對對抗性的魯棒性。表明,對抗樣本會導致學習器的損失變大,之後學習器將會從更大的假設中進行篩選,並從中受益。更大的假設意味著更為複雜的假設類別,更為複雜的假設類別意味著我們對於任何分佈都會有更小的損失。因此,在資料有限的情況下,我們的模型會獲得更好的適應能力。傳統上來講,要想獲得更為複雜的模型,你一般需要更多的資料。

使用CleverHans進行重複性測試

儘管驗證從理論的角度來看是具有挑戰性的,但從實際的角度來看,即使是直接測試也是具有挑戰性的。假設研究人員提出了新的防禦機制,並通過使用對抗樣本進行檢驗。倘若我們的模型依然會獲得很高的準確率,這是否意味著防禦機制是有效的?可能是吧。但是這也有可能意味著研究人員使用的attack很弱。同樣的問題也會存在攻擊機制中。

為了解決這些問題,我們開發出了

CleverHans 庫

。這個庫中包含了幾種攻擊和防禦程式的參考實現。研究人員以及產品研發人員可以使用cleverhans來測試他們的模型對先進攻防措施的魯棒性。通過這種方法,倘若模型經過cleverhans攻擊依然會獲得很高的準確率,那麼我們就可以認為防禦很有效。反之亦然。此外,只要研究人員使用同樣的CleverHans版本與計算環境,那麼就可以對他們的研究結果進行比較。

結論:

對於機器學習模型的驗證仍處於起步階段,目前我們所使用的方法都是避免使用不包含對抗樣本的資料集。我們希望我們的讀者可以收到啟發,進而能夠解決問題。此外,我們鼓勵研究人員可以使用CleverHanslai來提高機器學習測試在對抗環境中的可重複性。

致謝:

很感謝Martin Abadi對於本文的回饋

參考文獻:

[GBB11] Glorot, X., Bordes, A., & Bengio, Y. (2011, April). Deep Sparse Rectifier Neural Networks. In Aistats (Vol. 15, No. 106, p. 275).

[GSS14] Goodfellow, I. J., Shlens, J., & Szegedy, C. (2014). Explaining and harnessing adversarial examples. arXiv preprint arXiv:1412.6572.

[HKW16] Huang, X., Kwiatkowska, M., Wang, S., & Wu, M. (2016). Safety Verification of Deep Neural Networks. arXiv preprint arXiv:1610.06940.

[JKL09] Jarrett, K., Kavukcuoglu, K., & LeCun, Y. (2009, September). What is the best multi-stage architecture for object recognition?. In Computer Vision, 2009 IEEE 12th International Conference on (pp. 2146-2153). IEEE.

[KBD17] Katz, G., Barrett, C., Dill, D., Julian, K., & Kochenderfer, M. (2017). Reluplex: An Efficient SMT Solver for Verifying Deep Neural Networks. arXiv preprint arXiv:1702.01135.

[NH10] Nair, V., & Hinton, G. E. (2010). Rectified linear units improve restricted boltzmann machines. In Proceedings of the 27th international conference on machine learning (ICML-10) (pp. 807-814).

[PMJ16] Papernot, N., McDaniel, P., Jha, S., Fredrikson, M., Celik, Z. B., & Swami, A. (2016, March). The limitations of deep learning in adversarial settings. In 2016 IEEE European Symposium on Security and Privacy (EuroS&P) (pp. 372-387). IEEE.

[PMS16] Papernot, N., McDaniel, P., Sinha, A., & Wellman, M. (2016). Towards the Science of Security and Privacy in Machine Learning. arXiv preprint arXiv:1611.03814.

[PT10] Pulina, L., & Tacchella, A. (2010, July). An abstraction-refinement approach to verification of artificial neural networks. In International Conference on Computer Aided Verification (pp. 243-257). Springer Berlin Heidelberg.

[SZS13] Szegedy, C., Zaremba, W., Sutskever, I., Bruna, J., Erhan, D., Goodfellow, I., & Fergus, R. (2013). Intriguing properties of neural networks. arXiv preprint arXiv:1312.6199.

[V98] Vapnik, V. (1998). Statistical Learning Theory.

[W96] Wolpert, D. H. (1996). The lack of a priori distinctions between learning algorithms. Neural computation, 8(7), 1341-1390.

via cleverhans