# ML(Hung-yi Lee)_Lecture07. Explainable AI / Adversarial Attack ###### tags: `Machine Learning` ## Adversarial Attack 在有人試圖想要欺騙的情況下也得到高正確率 ---------- ### White Box 計算gradient需要知道模型的參數 #### How to attack * ex. 在正常的照片(**benign image**)中加入雜訊(**attack image**) ##### non-targeted attack network和正確output差距越大越好 * $L(X)=-e(y,\hat{y})$ :希望cross-entropy越大越好,所以在前面加上負號,而希望Loss愈小愈好 ##### targeted attack * $L(X)=-e(y,\hat{y}+e(y,y^{target})$ :希望$y$和$y^{arget}$愈小愈好,代表和原本的圖片差距愈小 ##### non-perceivable $d(x^0,x)\le\varepsilon$:benign image和attack image差距愈小愈好(肉眼看不出來) * L2-norm * $(\triangle x_1)^2+(\triangle x_2)^2+(\triangle x_3)^2..$ * L-infinity:參考改變的最大變化量 * $\max$${ |\triangle x_1|,|\triangle x_2|,|\triangle x_3|,... }$ #### attack approach **Fast Gradient Sign Method(FGSM)** * 只update一次參數 $x^t\leftarrow x^{t-1}-\eta g ---------- ### Black Box #### Black Box attack 不知道使用的模型以及參數,去訓練一個network模仿要攻擊的對象 ![](https://i.imgur.com/uodkRBK.png) 從別處找來訓練好的network(**proxy network**) ##### if 完全沒有訓練資料? 丟一大堆input進去看輸出什麼,再拿去訓練 ### Why attack is so easy? 有一部份人認為攻擊成功是因為data不是來自模型 [論文:有足夠的資料就能避免attack](https://arxiv.org/abs/1905.02175) * one pixel attack 只能動圖片中的一個pixel而做到攻擊 * Universal Adversarial attack 用一個signal就能夠成功攻擊所有圖片,加入同一個noisy就可讓影像辨識系統錯誤 * Adversaial Reprogramming 寄生在別人的模型上,做一些本來不是訓練來要做的事情 ### Defense #### passive defense * image compression 加入filter (ex.smoothing,在network前多加一層) * 對input的圖片用generator重新產生(和原本的圖片要愈接近愈好) 在訓練時因為generator沒有看過微小,可以達到防禦效果 但是被動的防禦很容易被攻破$\rightarrow$**randomization**連自己都不知道要用神麼招數防禦才不會被破解 #### proactive defense * adversarial training 重新製造新的訓練資料,每一個input都是有被攻擊過的,幫他們重新標記正確資料(**data augmentation**),產生更多資料拿去訓練,避免overfitting * 需要較大的運算資源 ## explainable machine learning ### why we need explainable ML? 希望Machine不只給出答案還要給出得到答案的理由,憑藉給出的解釋再去訓練模型 ex. 法官要判斷一個犯人是否有罪 #### Goal: * 人類能夠接受的Explanation ### Local Explanation 根據一張圖片回答問題,why認為他是一隻貓? * which component is critical? 1. 刪除某個component後image產生巨大變化$\rightarrow$重要資訊 2. 計算gradient得到**saliency Map** $|\frac{\triangle e}{\triangle x}|$愈大代表愈重要 * smooth grad:減少雜訊 問題:gradient saturation ![](https://i.imgur.com/bcylzbs.png) ### how a network processes input data? * probing ![](https://i.imgur.com/1mGH7wC.png) ### Global Explanation 還沒給cloassifier任何input,問題是對於什麼樣的圖片叫做一隻貓? ### what does a filter detcet? 製造一張圖片包含filter1要detect的pattern,看這張圖片內容來了解filter1負責detect的東西 * 訓練image的generator來反推image classifier所想像的類別 ![](https://i.imgur.com/NRit31e.png) * **local interpretable model-agnostic explanations**:用linear model去模仿black box中一小部份區域發生的行為