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




  

相关话题

  谷歌将推出自研手机和电脑芯片,效仿苹果能否实现安卓跨平台融合? 
  Epic Games 以不正当竞争为由起诉 Apple 和 Google,你支持谁?为什么? 
  实体提取任务中使用BERT-CRF时,CRF根据数据统计可以得到转移概率,为啥还要训练呢? 
  为什么搜索引擎动辄显示找到相关结果约几千万上亿个,但是实际上搜索结果只能翻几十页? 
  CNN网络的pooling层有什么用? 
  请问人工神经网络中的activation function的作用具体是什么?为什么ReLu要好过于tanh和sigmoid function? 
  CVPR2022 有什么值得关注的论文 ? 
  什么是meta-learning? 
  如何判断两个Deep Learning 数据集的数据分布是否一致? 
  当前人工智能特别是深度学习最前沿的研究方向是什么? 

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





© 2025-06-18 - tinynew.org. All Rights Reserved.
© 2025-06-18 - tinynew.org. 保留所有权利