热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

寻找CNN的弱点

2019-04-1015:08:45“寻找CNN的弱点CNN是现在十分火热的模型,在很多图像检索问题上,CNN模型的效果在以往的基础上有了很大的提高

2019-04-10 15:08:45

寻找CNN的弱点

 

寻找CNN的弱点

CNN是现在十分火热的模型,在很多图像检索问题上,CNN模型的效果在以往的基础上有了很大的提高,但是CNN毕竟没有把这些问题完全解决,CNN还是有它自己的弱点的。这个弱点也不能算作是它独有的问题,但是由于它的效果实在太好了,很多人甚至对它产生了迷信,因此这盆冷水就泼到它身上了。

大神们看到了CNN模型的强大,但忍不住提出一个问题:CNN有没有什么搞不定的地方?比方说我们用CNN构建了一个人脸识别的模型,在训练数据集和测试数据集上表现良好,但是会不会有一些用例是它会误判的,而且我们可以找到规律生成这些用例?

我们可以想象,如果我们对之前识别正确的数据做轻微的改动,那么它还是有可能识别正确的。于是我们就有了一个方案,我们每将图像做一点改动,就把图像传入CNN做一下测试,然后看看CNN的预测结果有没有发生改变,如果没有发生改变,我们就保存这个图像,接着我们再进行下一轮的改动,经过若干轮的改动后,我们把生成的图像输出出来看看图像会变成什么样子。

这里我们将采用MNIST为例,以下的就是我们的改动方案:


  1. 利用MNIST的训练集训练一个CNN的模型,我们的CNN模型结构是:conv32*3*3->relu->maxpool2*2->conv64*3*6->relu->maxpool2*2->fc256->dropout0.5->fc10。
  2. 找到一个训练数据,将其数据范围限定在0到1之间,我们对每一个像素点随机增减-0.1到0.1之间的一个数,这样得到64个随机的图像,然后经过CNN模型预测得到这64个图像的预测label,从中选择一个和原始label相同的图像。经过若干轮迭代后,我们就可以看看这个随机改变的数字变成了什么样子。

我们选择了一个数字0:

寻找CNN的弱点

 

经过50轮迭代,我们得到了这样的图像:

寻找CNN的弱点

 

经过100轮迭代,我们得到了这样的图像:

寻找CNN的弱点

 

经过150轮迭代,我们得到了这样的图像:

寻找CNN的弱点

 

经过200轮迭代,我们得到了这样的图像:

寻找CNN的弱点

 

到此为止,可以看出这个数字还是隐约可见,但是实际上图像已经变得模糊不清,大量的杂乱信息混入其中,已经和原始的数字完全不同。

这个套路被称作“fool CNN”,用东北话说就是忽悠。继续迭代下去,我们还能生成出更精彩的图像。当然这也只是忽悠CNN模型的一种办法,我们还有其他的办法来生成图像。其他的办法这里就不再介绍了。关于这种忽悠,大神们也给出了和机器学习有关的解释:

CNN的模型说到底还是个判别式模型,如果我们把图像设为X,label设为y,CNN的模型就相当于求p(y|X)的值。判别式模型相当于描述“什么样的图像是这个label的图像”,而满足了这些条件的图像有时并不是具有真实label的那个图像。而上面的忽悠套路就是利用了这个漏洞。

上面的例子中,我们用这种fool的方法让一张模糊不清的图像保持了原来的label,同时我们也可以让一张不算模糊的图像被CNN错认成另外一个label。

比方说下面这张经过40轮迭代的图像被认成了6:

寻找CNN的弱点

 

这些套路的出现都让我们对CNN有了一些警惕,如果想让CNN对手写数字完全hold住,我们还需要其他的方法辅助,不然的话这种意外总会发生。

那么有没有什么方法能解决这样的问题呢?

https://www.toutiao.com/a6678159288461951492/


推荐阅读
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 2019独角兽企业重金招聘Python工程师标准
    本文介绍了2019独角兽企业重金招聘Python工程师的标准。同时解释了Alpha、Beta、RC、GA、RTM、OEM、RVL、EVAL、RTL、α、β、λ等相关术语的含义和区别。 ... [详细]
  • 属性字符串NSMutableAttributedString
    要实现如下效果:NSString*mailStringmymail126.com;NSString*mailStringWithQuotes[NSStringst ... [详细]
  • Shodan简单用法Shodan简介Shodan是互联网上最可怕的搜索引擎,与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“ ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • OWASP(安全防护、漏洞验证工具)开放式Web应用程序安全项目(OWASP,OpenWebApplicationSecurityProject)是一个组织 ... [详细]
author-avatar
mobiledu2502885243
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有