百科问答小站 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 作了哪些恶? 
  如何评价余凯创立的horizon robotics? 
  如何理解今年发表在JMLR上随机森林算法SPORF? 
  Batch Normalization 训练的时候为什么不使用 moving statistics? 
  如何看待人工智能领域的很多专家认为「人工智能将对人类存亡造成威胁」的观点? 
  吴恩达为什么离开谷歌? 
  为什么谷歌、微软等美国顶尖企业会有那么多印度裔高管? 
  算法岗位真的需要顶会才能入场吗? 
  如何评价 2018 年度图灵奖颁发给三位深度学习之父? 
  为什么读论文最好打印出来读? 

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





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