寻找CNN的弱点,小心MNIST中的“套路”

作者: 冯超 2017-05-22 10:54:56

寻找CNN的弱点,小心MNIST中的“套路”

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:

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

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

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

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

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

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

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

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

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

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

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

深度学习 CNN MNIST
上一篇:柯洁为何说“输得没脾气”!8个问题解读人机大战第一局 下一篇:AWS上搭建深度学习主机(Windows版)
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

18个挑战项目带你快速入门深度学习

AlphaGo 大战李世?h之后,深度学习技术便在国内变得异常火。吸引了大批的技术人员争相学习,那么到底如何才能更快速的入门深度学习呢?下面给大家介绍的 18 个挑战项目,通过实践动手带你快速入门深度学习!

实验楼 ·  4天前
盘点 | 8个你可能不知道的深度学习应用案例

深度学习与传统机器学习系统的不同之处在于,它能够在分析大型数据集时进行自我学习和改进,因此能应用在许多不同的领域。

天极网 ·  4天前
2019年较热门的5大深度学习课程

今天,我们将和大家盘点一下,当下较流行的深度学习资源/课程,可以帮助你们提升深度学习技能。

猿哥 ·  2019-09-26 05:16:24
DeepMind一次性开源3个新框架!深度强化学习应用落地即将迎来春天?

深度强化学习(Deep Reinforcement Learning,DRL)一直是近年来人工智能的一些重大突破的核心。然而,尽管 DRL 有了很大的进步,但由于缺乏工具和库,DRL 方法在主流解决方案中仍然难以应用。

杨鲤萍 ·  2019-09-20 09:38:18
一步一步带你完成深度学习与对象检测之人脸识别

要进行人脸识别,就要搜集用户的人脸图片,我们从网站上搜集了几个明星的照片来进行本期文章的分享。此部分文章是人脸识别的第一部分,人脸数据的搜集与提取,后期我们分享人脸识别系统的神经网络训练与人脸识别。

人工智能研究所 ·  2019-09-18 07:20:34
看懂这十步,8岁的小朋友都能理解深度学习

如果对当今人工智能的主流技术——深度学习没有了解,可能真的会有人觉得,当前的科学家们在创造无所不能、无所不知的电影AI形象。那么,如何用最浅显的方式,给大众解释什么是深度学习呢?快来看看吧!

佚名 ·  2019-09-17 16:56:39
PyTorch版《动手学深度学习》开源了,最美DL书遇上超赞DL框架

李沐等人的开源中文书《动手学深度学习》现在有 PyTorch 版实现了。不论是原书中的示例代码,还是实战项目,原来的 MXNet 都可以无缝转化到 PyTorch 代码。

ShusenTang ·  2019-09-17 10:23:45
2019年10大机器学习Q&A,面试应知!

本文整理了一些最常见的机器学习面试问题及其相应的回答。机器学习有志者以及经验丰富的ML专业人员可以在面试前以此巩固其基础知识。

读芯术 ·  2019-09-09 11:07:00
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载