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




  

相关话题

  有尝试用多层自组织特征神经网络(MLSOM)来代替层次分析法(AHP)的吗?会有哪些问题需要注意? 
  如果不按套路下棋是不是就能赢 Alpha Go 了? 
  为什么 larger batch size 对对比学习的影响比对监督学习的影响要大? 
  如何评价余凯创立的horizon robotics? 
  2022 年的谷歌,是否还值得加入? 
  人工「神经网络」技术在信息处理上有何特点,工作原理是什么? 
  新手如何入门pytorch? 
  视觉Transformer如何优雅地避开位置编码? 
  谷歌新上线 Google News Initiative,并宣布严厉打击假新闻,说明了什么? 
  adversarial training为什么会起作用? 

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





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