評測、紅隊與穩健性

對抗樣本

想像一個停車(STOP)標誌,被人貼上幾張小貼紙後,在你眼裡仍然明顯是個停車標誌——但自駕車的視覺系統如今卻自信地把它讀成「速限 45」。對抗樣本(adversarial example)就是這樣一種輸入:它被刻意動了手腳,常常只是極小的改動,就讓一個機器學習模型大錯特錯,儘管那改動在人眼看來無害、甚至看不出來。

最經典的版本來自影像分類器:拿一張模型能正確標為「熊貓」的照片,加上一層精心計算、淡到人察覺不到的像素改動模式,模型如今就會高度自信地說它是「長臂猿」。這種擾動並非隨機——它是透過利用模型自身的內部運算,把輸入推過一條決策邊界而找出來的。同樣的構想也不限於影像:精心構造的文字字串,對語言模型而言也可以是對抗樣本,包括某些自動產生的越獄。

對抗樣本揭露了一件既深刻又令人不安的事:一個模型可以在正常資料上考得極好,卻在任何人都不會覺得重要的方向上脆弱不堪,因為它抓住的是統計上的模式,而非我們本意要它學的概念。對安全而言,這是一記警告:平均情況下的好表現,並不代表面對攻擊者、甚至面對不尋常的自然輸入(分布偏移)時的可靠性。讓模型具備抵抗力——也就是對抗穩健性——已被證明非常困難,至今也只是部分解決。

一張模型以 58% 信心標為「熊貓」的影像,被加上一層人眼看不見、經計算的像素模式;模型如今對這張「看起來一模一樣」的影像,以 99% 的信心標為「長臂猿」。

一個小到人看不出來的改動,就能徹底翻轉模型的答案——它對「相似」的感覺和我們的不一樣。

對抗樣本利用的是模型「切分輸入空間」的方式,而不是人會犯的那種「錯誤」。它顯示在一般輸入上的高準確率,並不代表面對精心構造或不尋常輸入時的穩健性。

又稱
adversarial input對抗範例