隨著ai時代機器學習模型在實際業務系統中愈發無處不在,模型的安全性也變得日漸重要。機器學習模型很可以會遭到惡意攻擊,比較直接就能想到的如:人臉識別模型的攻擊。訓練出具有對抗性的機器學習模型,在業務系統存在著越來越重要的實際意義。
機器學習模型攻擊要做的事情如下圖所示:
假設我們有乙個network用來做動物的影象識別。我們輸入一張如圖所示的x
0x^0
x0,network**為「tiger cat」。機器學習模型攻擊是在x
0x^0
x0上加上乙個微小的噪音δ
x\delta x
δx,使得看起來還是乙隻「tiger cat」,但是通過network的**結果卻是其他動物了。
如上圖所示,如果做影象分類,損失函式為:
其中,影象輸入x
0x^0
x0是固定的。那麼攻擊模型的損失函式也可用類似的方式定義出來:
上述兩種損失函式還需要滿足一定的約束,就是不能與原來的有太大的差異,即:
距離 d 通常的定義方式有:
attack gradient descent 相當於就是有了一定限制的gradient descent。每一步在對x
xx做更新後,都要計算是否符合限制:
如果不符合,我們就把它調整為符合限制的x
xx。如何調整呢?簡而言之,就是把更新後的x
tx^t
xt拉到符合限制區域的最近的向量上,用它來替代x
fgsm(fast gradient sign method) 是一種非常快捷的attack方法:只進行一次求梯度,並取其各個位上的符號作為結果 δ
x\delta x
δx;更新時根據 δ
x\delta x
δx直接加減 ε
該方法相當於使用了非常大的學習率,並且採用l-infinity距離,再把x
xx拉回到正方形的角上。
2.4 black box attack
之前講的都是白盒攻擊,即模型的網路結構我們都是知道的。那麼,如果乙個未知結構的black模型,該如何攻擊?很神奇的是,我們只要用相同的資料訓練某個自定義結構的proxy模型,在該proxy模型上做attack,black模型也能被很好的attack了。下表為proxy-black attack後的正確率:
2.5 more …講完attack,我們來講怎麼defense。
2.1 passive defense
passive defense 主要是思想是在給模型做層「保護罩」。
2.1.1 smoothing filter
做一層簡單的平滑過濾,也能很好的防禦attack:
用不同壓縮的特徵進行**,根據**結果之間的距離來判定該輸入是否被attack:
2.1.3 randomization
對輸入對做一些隨機對改變(如尺寸、填充),然後再輸入到模型中:
2.2 proactive defense
proactive defense 的主要思想是:找出漏洞,補起來。直觀的去想,做法也很簡單:
對抗樣本 提高機器學習模型的效能
20200827 今天編寫文章 dga生成與檢測 deepdga adversarially tuned domain generation and detection 閱讀 時,那篇 最後的實驗中提到了增強機器學習模型的內容,順著這個思路在谷歌上進行了簡單的搜尋,找到了兩篇材料,本篇文章就對這兩篇...
機器學習模型 如何口述機器學習模型原理
重磅乾貨,第一時間送達 有時碰到跟別人聊起模型的熟悉時,不免要闡述下模型的原理,但一般口頭交流都比較難,因為腦海裡面都是一些公式,似乎從功利角度有必要把模型原理用文字表達一遍,所以自己整理了下機器學習的部分,有遺漏或者不對的地方也請多多指教 線性回歸 首先我們會定乙個函式假定y和x的關係,如y wx...
機器學習模型 SVM
liblinear libsvm 台灣的 線性可分的svm max s.t.yi wxi b w i 1,2 n代入 w 於是得到 max w s.t.yi w xi b i 1,2 n 其中 是幾何距離,是函式距離。的取值對上述優化問題沒有影響,因為如果 按比例增加,那麼目標函式和約束中的w 和 ...