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. Spring Boot入门及第一个案例

    一:SpringBoot是什么 springboot是对spring的缺点进行改善和优化,约定大于配置  开箱即用  没有代码生成 也无需xml 文件配置   可以修改属性值来满足需求 1) Spri ...

  2. why’s kafka so fast

    As we all know that Kafka is very fast, much faster than most of its competitors. So what’s the reas ...

  3. python实现AES加密

    pip install pycryptodomex 需要安装pycryptodomex模块 aes加密 from Cryptodome.Cipher import AES from binascii ...

  4. Redis-1-简介与安装

    目录 1.Redis 简介 2.安装Redis 1.安装gcc redis是c语言编写的 2.下载redis安装包,在root目录下执行 3.解压redis安装包 4.进入redis目录 5.编译安装 ...

  5. 【leetcode-198】打家劫舍

    你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定一个代表每 ...

  6. C#字符串(String)类型中@的用法

    C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待,比如: string str = @"C:\Windows"; ...

  7. 12个有趣的C语言问答

    转自:http://www.admin10000.com/document/913.html 1,gets() 方法 Q:以下代码有个被隐藏住的问题,你能找到它吗? 1 2 3 4 5 6 7 8 9 ...

  8. my97Date如何多选日期且无重复日期

    最终的效果是: 首先引用my97Date的js WdatePicker.js html代码 <textarea cols="" name="txtNoUseDate ...

  9. PHP查询附近的人及其距离的实现方法

    1.附近的人 //获取该点周围的4个点 $distance = 1;//范围(单位千米) $lat = 113.873643; $lng = 22.573969; define('EARTH_RADI ...

  10. Kotlin开发springboot项目(一)

    Kotlin开发springboot项目(一) Kotlin语言与Xtend语言有很多相似之处 为什么会存在这么多JVM语言? 现存的语言提供了太过受限制的功能,要不就是功能太过繁杂,导致语言的臃肿和 ...