百科问答小站 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




  

相关话题

  多任务学习成功的原因是引入了别的数据库还是多任务框架本身呢? 
  adversarial training为什么会起作用? 
  Google 和 360 有什么区别? 
  神经网络中,bias有什么用,为什么要设置bias,当加权和大于某值时,激活才有意义? 
  在五到十年内,人工智能能复原成人影片中的被马赛克部分吗? 
  圈内捧谷歌贬百度的风气是怎样形成的?百度是否真的不如谷歌那样「业界良心」? 
  如何看待「封锁 Google 第一案」的开庭审理? 
  Pixel 3 及 Pixel 3 XL 有哪些亮点和槽点? 
  百度在深度学习上使用Xilinx FPGA? 
  如何评价李彦宏「百度的成功和谷歌退出没有必然联系」的言论? 

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





© 2024-12-18 - tinynew.org. All Rights Reserved.
© 2024-12-18 - tinynew.org. 保留所有权利