AI很厲害也很方便,但AI系統並沒有想像中的強大,有各種方式可以騙過系統,這會造成系統的錯亂或是誤判。林盈達教授與學生們共同研究的EAT(Ensemble Adversarial Training)法,可以有效抵禦各式攻擊,並能反向檢驗AI系統的模型,
針對AI系統的攻擊很多,會造成相關的麻煩,輕則車牌辨識錯誤,導致繳費發生問題;重則影響保全識別系統,引發安全危機。我們相對容易的可以針對單一攻擊去做防禦,但遇到其他攻擊時,依然會造成系統的危機,而這類攻擊(Adversarial Attack)的特性是,如果攻擊會對A模型有威脅,就也會有蠻大機率對B模型有威脅,所以單一種類的防禦顯然不足,要怎麼訓練模型去對抗Adversarial Attack就是我們的目標。
不懷好意的攻擊
Adversarial Attack是人為的惡意攻擊,讓系統誤認目標,混淆視聽,或是將特定的A判別為B,目的都是要讓系統的判斷產生錯誤。在安全系統上有Double Attack,先騙過系統的安全關卡,再針對內部進行攻擊。以影像辨識為例,常見的作法是在影像上加入我們肉眼難以識別的雜訊,例如一張狗的照片,加入雜訊後,雖然人眼看起來無異,但可能會讓系統將圖片辨別為一隻蝴蝶,其他影像聲音類的資訊也是使用類似的原理。
模型的訓練方針
針對模型的訓練,分成四種方式討論:1.Basic、2.Ensemble、3.Adversarial、4.Ensembled Adversarial。
舉例來說,模型就像是未經世面的小孩,目標是區分陌生人的好壞,而Adversarial Attack就像是假裝和藹的壞人。方法一(Basic)就是讓一個小孩獨自學習,但沒有讓他看過假好人;方法二(Ensemble)也沒有假好人,但是集結了多個小孩的意見,最後投票決定;方法三(Adversarial)則是讓一個小孩看過假好人,並教過他這是壞人;方法四(Ensembled Adversarial)是將多個學習過如何分辨假好人的小孩們的想法集結在一起。
其中,我們也好奇單純使用方法二或方法三,哪種方式會更勝一籌?
生成「負面教材」
模型的學習過程很重要的一環就是準備訓練的資料,當有了原始的Dataset,也就是原本的「正面教材」後,還需要獲得「負面教材」,而這些負面教材,就是將原本的Dataset透過Adversarial Attack Function轉換後得到。要注意的是,同一種攻擊不一定可以適用在每個模型上。把經過這些Adversarial Attack Function轉換後的資料加入原始Dataset,就構成最終使用的Adversarial Dataset(正面+負面教材)。
最佳化模型
透過訓練得知,在沒有Adversarial Attack的狀態下,Basic的模型表現就很好了,Ensemble後的分數只有微幅的提升,效果有限。加入Adversarial Attack後,Ensemble的表現有明顯的提高。可以看出Ensemble能有效提高Adversarial Attack的防禦效果。但在取Ensemble時,有時候選擇多個不一定比選少的效果好,畢竟人多嘴雜。
有些強勁的Attack,就連Ensemble後都無法拿到很高的分數。單一模型受過Adversarial Training後,防禦能力提高很多,也比先前的單純Ensemble好,顯見Adversarial Training的重要性。
針對其中一種強力攻擊,經過Adversarial Training後,部分模型的分數都拉高許多,但有少部分模型效果有限,說明Adversarial Training不一定對所有模型都有十足的功效。
當然,最有效的方法還是Adversarial Training加上Ensemble,雙管齊下,整體分數比先前的所有方法都高,這就是EAT。
反向檢驗
遇到一個未知模型,要想辦法去猜測模型是什麼?才知道這個系統有沒有防禦Adversarial Attack的機制。也要思考,如果有的話,是採用什麼方法?我們可以利用Cosine Similarity計算未知模型與已知模型的相似度,以此回推出未知模型的樣子。經過測試和比較後得知,回推出來的模型準確率高達99%以上,是個極為有效的方法。
結論
EAT就是從兩個層面來強化模型:知己知彼–Adversarial Training,透過負面教材的訓練,讓模型認識並了解Adversarial Attack;眾志成城–Ensemble,把各種模型的優勢集結,截長補短,在訓練中也證實,兩種層面缺一不可。使用EAT後,模型獲得強大防禦力,面對花樣百出的攻擊,能有效地抵禦。
精彩演講內容: