機器光是好是不夠的,還要能夠對抗惡意攻擊,例如有人製造一些特殊的input,他製造的目的就是為了騙過model,因此希望機器不只希望可以辨別雜訊,還希望他可以對付惡意攻擊
其實機器學習以前就會用來對付惡意訊息,例如垃圾郵件,而寫垃圾郵件的人也希望可以把他的郵件偽裝成正常郵件,已騙過model的垃圾分類器
假設一張圖片丟給model,他告訴我們是tiger cat 信心64%,如果今天在原始圖片加上一點點雜訊,可能是我們看不出來的,再丟進去,他就會變成其他東西,這就是攻擊
Review: 在正常情況下,我們希望訓練個model,使得output跟label(y-true)越接近越好,這邊用cross entropy C 表示距離
$$ L_\text{train} (\theta)=C(y^0, y^{\text{true}}) $$
攻擊有分兩種:有目標的攻擊 與 沒有目標的攻擊
攻擊跟訓練有本質上的不同:
Non-target attack:
找一個輸入,讓輸出跟正確的 y-true 越遠越好
$$ L(x')=-C(y', y^{\text{true}}) $$
Targeted attack:
找一個輸入,讓輸出不只跟正確的 y-true 越遠越好,也要讓他跟一個錯誤答案(自己設計)越近越好
$$ L(x')=-C(y', y^{\text{true}})+C(y', y^{\text{false}}) $$