---
# System prepended metadata

title: ML(Hung-yi Lee)_Lecture07. Explainable AI / Adversarial Attack
tags: [Machine Learning]

---

# 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中一小部份區域發生的行為
