Attack ML Models - 李宏毅

https://www.bilibili.com/video/av47022853

  • Training的Loss:固定x,修改θ,使y0接近ytrue.

  • Non-targeted Attack的Loss:固定θ,修改x,使y‘远离ytrue.

  • Targeted Attack的Loss:固定θ,修改x,使y‘远离ytrue且接近yfalse.

  • constraint:x‘和原图像x0的相似度,必须小于阈值ε.有多种计算方法,如L2-norm,L-infinity,因为取决于人类感知,一般采用L-infinity.

  • 对抗攻击即生成对抗样本x’,它要使得损失函数L(x‘)尽可能小,同时确保相似度d(x0,x’)小于ε.

  • 采用梯度下降法进行,x0作为初始值进行迭代.如果相似度超过ε,则对xt进行修正.

  • 具体修正策略为,找到小于ε且与当前xt最接近的x.

  • 图片特征一般是很高维的,在某些维度上如图1,tiger cat的置信度范围很广且附近都是cat,在另一些维度上如图2,tiger cat的置信度很窄且附近时不相干的事物.

  • 不同的对抗攻击方法,区别一般在于采用不同的距离限制方式与不同的优化策略.

  • FGSM是一种常见的对抗攻击方法,它的原理是计算出分类函数loss的梯度,然后用sign函数将其指向四个角的方向之一,再乘上ε使其落在角上,x0减去一次该值就得到最终的x*,位于四个角其中之一.

  • 之所以只做一次且落在角上,是因为即使多次迭代后得到x1,但因为存在constrain,因此仍会被拉回到同样位置.

  • LIME是一种用可解释的模型来对不可解释的模型作出解释的方法.

  • 首先确定一个想要解释的点,然后在该点附近进行采样,利用可解释的模型对这几个点进行局部拟合.

  • 黑箱攻击,即利用目标网络的训练数据,自己训练出一个网络,并且根据自己的网络生成一些对抗样本,这些样本对目标网络的攻击往往能成功.

  • 相关应用有Universal Adversarial Attack和Adversarial Reprogramming等.

  • 对抗攻击一般不能被权重正则化、dropout、模型集成等方式所防御.

  • 消极防御只找到噪点图像,但不修改模型.

  • 消极防御可以对于图像施加一个filter,减轻噪点对模型的干扰.例如将图像平滑化.原理是对抗攻击一般只在某个方向生效,改变图片即可使这个图像无效.

  • Feature Squeeze中的Squeeze即一个filter,该方法将原图像与通过多种filter后的图像预测结果进行比较,若其中有某个预测结果相差超过阈值,就认为该图像被修改过.

  • Randomization at Inference Phase对图像采用随机的、微小的改变,例如缩放、填充等,对改编后的图片进行分类.

    • 主动防御修改模型,使得它对于对抗攻击具有鲁棒性.

    • 主动防御利用某种对抗攻击算法,形成对现有模型有效的对抗样本,再将这些对抗样本标注为对应原图像的原答案,作为新的训练样本来更新模型.

    • 该方法需要找T次漏洞,每次找N张图片.因为每次模型更新后可能会产生新的漏洞.

    • 如果找漏洞的对抗攻击算法为A,那么该模型仍然很可能会被算法B攻破.

《Attack ML Models - 李宏毅》视频笔记(完结)的更多相关文章

  1. <Machine Learning - 李宏毅> 学习笔记

    <Machine Learning - 李宏毅> 学习笔记 b站视频地址:李宏毅2019国语 第一章 机器学习介绍 Hand crafted rules Machine learning ...

  2. 《Machine Learning》系列学习笔记之第一周

    <Machine Learning>系列学习笔记 第一周 第一部分 Introduction The definition of machine learning (1)older, in ...

  3. Coursera课程《Machine Learning》学习笔记(week1)

    这是Coursera上比较火的一门机器学习课程,主讲教师为Andrew Ng.在自己看神经网络的过程中也的确发现自己有基础不牢.一些基本概念没搞清楚的问题,因此想借这门课程来个查漏补缺.目前的计划是先 ...

  4. 《Machine Learning - 李宏毅》视频笔记(完结)

    https://www.youtube.com/watch?v=CXgbekl66jc&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49 https://www. ...

  5. Andrew Ng Machine Learning Coursera学习笔记

    课程记录笔记如下: 1.目前ML的应用 包括:数据挖掘database mining.邮件过滤email anti-spam.机器人autonomous robotics.计算生物学computati ...

  6. 《Machine Learning》系列学习笔记之第二周

    第二周 第一部分 Multivariate Linear Regression Multiple Features Note: [7:25 - θT is a 1 by (n+1) matrix an ...

  7. 【DL.AI】《Structuring Machine Learning Projects》笔记

    一.改进模型的几个方法 Collect more data Collect more diverse training set Train algorithm longer with gradient ...

  8. 《Machine Learning》系列学习笔记之第四周

    第四周 Model Representation I 让我们来看看如何使用神经网络来表示假设函数.在非常简单的水平上,神经元基本上是将输入(树突)作为输入到输出(轴突)的电输入(称为"尖峰& ...

  9. 《Machine Learning》系列学习笔记之第三周

    第三周 第一部分 Classification and Representation Classification 为了尝试分类,一种方法是使用线性回归,并将大于0.5的所有预测映射为1,所有小于0. ...

随机推荐

  1. 从URL重写中学习正则表达式

    起因: 最近因为业务上的需求,老板要求改写网站的域名.要求把所有的二级域名中的内容放到主域名下,增加资源集中程度,有利于搜索引擎的优化. so.网站中所有的URL定向都要重写,也就是我们所说的伪静态的 ...

  2. IScroll Unable to preventDefault inside passive event listener due to target being treated as passive

    最近两天企业微信下IScroll突然无法滚动了,特别慢,之前好好的,发现主要是有红色的Unable to preventDefault inside passive event listener du ...

  3. 一个简单 System.Threading.Tasks.Dataflow.BufferBlock 示例

    直接贴代码了: using System; using System.Threading.Tasks; using System.Threading.Tasks.Dataflow; namespace ...

  4. react的标记渲染机制

    // ReactUpdates.js  - enqueueUpdate(component) function dirtyComponents.push(component); https://jue ...

  5. C# 打开mpp文件(Microsoft object)问题总结

    有需求就有解决方案,早上还没有听说过什么是 mpp 文件,下午已经能成功的将功能实现,这难道就是程序员的职业素养?哈哈哈哈 从网上找了很多方法,最后自己找到一个十分简单的打开 mpp 文件的方法: p ...

  6. Delphi - 采用第三方控件TMS、SPComm开发串口调试助手

    第三方控件TMS.SPComm的下载与安装 盒子上可搜索关键字进行下载,TMS是.dpk文件,SPComm.pas文件: 安装方法自行百度,不做赘述. 通过TMS控件进行界面布局 界面预览: Delp ...

  7. java DES转C#DES加密解密

    一个程序用到java的cn.core.jar加密的,需要在.NET 中解密,发现JAVA的des算法与C#的有点区别. 自己不太懂加密解密算法,所以找了个省事的方法,用IKVM.NET,用这个将cn. ...

  8. electron项目中使用js web worker时,new worker(path)路径问题

    如题,在new worker时需要传入js文件路径,可是在electron环境中使用出现问.同目录下,recorder.jsworker.js recorder.js中调用 var path = '. ...

  9. 01GitLab的使用——创建项目并上传到GitLab

    借鉴:https://jingyan.baidu.com/article/9c69d48fe68cce13c9024e9c.html 登录GitLab网站,创建一个项目上传地址:https://blo ...

  10. properties文件属性值@Value注解为 java entity属性赋值

    一.使用@Value为 java entity类中的非static属性赋值 举个栗子,一目了然 1.1 properties文件 1.2 servlet.xml 文件增加的配置: 1.2.1 serv ...