百科问答小站 logo
百科问答小站 font logo



Google 的神经网络生成图像 (Inceptionism) 是怎么做到的? 第1页

  

user avatar   wang-feng-98-82 网友的相关建议: 
      

更新:本方法的论文已被二区期刊Neural Networks接收发表,论文题目:Visualizing Deep Neural Network by Alternately Image Blurring and Deblurring 。

以下为原答案:

我是
GitHub - happynear/DeepVisualization
的作者,上周末看到报道里面美轮美奂的图片,就想自己也搞一下。后来看到 @贾扬清 大神说其实就是加了个先验,好像很简单的样子(大神说简单就像学霸说考试考砸了一样不可信),于是就毅然跳坑了。

先是参照文献1,用caffe的matlab接口实现了梯度上升算法。这里简单地解释一下吧,神经网络可以看作是一个函数,输入图像,输出各类别的概率:

如果想提升某一类的输出概率,把这一类的梯度设置为1,其他类设置为0,然后将梯度反向传播回去,就得到了,通过梯度上升法,不断迭代

最终就能得到使目标类别的概率极大化的图像。

然后坑来了,这样得到的图像完全是噪声,而这个噪声的分类置信度竟然无限接近于100%。。因此也有了文献1所说的“神经网络很容易被戏弄”一说。而google所做的,就是要使生成的图像尽量接近我们平时所看到的那些图像,也就是 @贾扬清大神所说的加正则。

在查阅了许多神经网络可视化、图像去模糊、超像素方向的文章之后,发现大家普遍使用的正则有如下几个:

  1. total variance norm,全局方差范数,其实就是尽量减小图像梯度的幅度,使图像更加平滑。
  2. blur,图像模糊,类似的,也是使图像更加模糊。
  3. gradient clip,梯度剪切,就是每次只更新对分类最有利的一部分梯度,忽略其他。
  4. weight decay,权重衰减,在这里就是使图像中不要出现非常大的值。

其中1、2两项确实非常有效,在我当前最新版本的程序中也包括了这两项,其实我还试了很多别的正则项,但效果并不明显,就不在这里说了。

最后我做出的效果,只有第一个任务,即从噪声中生成图像的结果:

蚂蚁:


巨石:

海星:

跟google的相比,我生成的图像背景更加丰富,但在颜色上感觉有一些失真。当然,展示给大家的只是效果比较好的几张,还有好多完全无法辨认的我就不献丑了(逃

因为我希望将这个方向深入做下去,所以有些技术细节我也不方便讲了。大神太多,以我写paper的速度,肯定会被别人赶超的。

2015/6/26

生成了一张大图:


多类别在同一张图里:

珊瑚+海星(珊瑚只占据了左上角):




参考文献:

1、Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images




  

相关话题

  深度学习有哪些好玩的案例? 
  Google 的神经网络生成图像 (Inceptionism) 是怎么做到的? 
  adversarial training为什么会起作用? 
  真实的硅谷是怎么样的? 
  中国和美国谁能成人工智能领域的领军者? 
  实验室一块GPU都没有怎么做深度学习? 
  如何评价谷歌刚推出的Cloud AutoML? 
  华为 Mate 30 系列或将不能搭载 Google 应用服务,这将会产生哪些影响? 
  计算机视觉是否已经进入瓶颈期? 
  神经网络的损失函数为什么是非凸的? 

前一个讨论
你在红警游戏里干过最牛的事是什么?
下一个讨论
关于Qt性能的损失,有没有一个可以量化的概念?





© 2024-11-15 - tinynew.org. All Rights Reserved.
© 2024-11-15 - tinynew.org. 保留所有权利