欺騙機器學習模型

Khxlldy-0409發表於2018-04-06

 欺騙機器學習,使其產生錯誤判斷。

機器學習:是一種通過學習型的演算法來解決一些無法直接用程式設計解決的問題,需要讓程式自動進行學習優化來解決。

     比如識別圖片中的某件物體,機器通過大量獲取圖片和標籤來幫助機器積累出判斷圖片的規則。這些圖片和標籤就是訓練樣本,訓練樣本越多,識別的模型越準確。

1。樣本訓練過程:首先從樣本中提取特徵維度,由此引入權重(weight),如大象的長鼻子權重高,其翅膀的權重低,機器學習就是不斷調整權重等引數使網路產生更好的輸出。

2。對抗樣本攻擊:讓輸入影象朝著讓類別置信度降低的方向上移動一個在各個維度上都偏移一小步,使模型的識別判斷錯誤樣本。

3。機器學習面臨的攻擊場景:1)在訓練樣本中注入惡意樣本; 2)構造對抗樣本欺騙訓練好的模型

4。簡單干擾情況:利用squeezenet模型進行基本的影象識別同時使用一個幅度為1的噪聲降低模型預測的置信度

執行結果

在程式後指定特定的結果,分別給定1,2,6,18的噪音幅度,例如制定成lion,結果如下


分析可得,只有選擇合適的幅度,結果才越接近

以下想將老鷹的圖片欺騙成獅子


由於老鷹和獅子相似的地方不多,欺騙並未成功。需要多次的迭代修改影象

5。使用迭代生成更好的樣本:迭代19次的結果


多次迭代可優化噪音干擾的結果。

6。對抗樣本的防禦

1)對抗訓練:生成針對的對抗樣本,明確的訓練模型不要識別這些樣本

2)梯度掩蓋:攻擊者通過在影象上的微小調整對最終結果置信度的影響來生成對抗樣本,如果一個微小的調整後,結果識別只有圖片物體,而沒有任何位置心資訊,這樣就能為模型提供一定的防禦。


相關文章