人工智能的梦境 - deep dream

本文探讨了深度学习网络中的Deep Dream项目,通过可视化技术揭示神经网络的学习过程。通过对图像进行处理,让网络表达其学到的内容,展示出从低层到高层的特征抽象。这种方法不仅有助于理解网络的工作原理,还产生了具有艺术感的图像。
摘要由CSDN通过智能技术生成

罗一译自:Inceptionism: Going Deeper into Neural Networks (需要科学上网姿势)
github地址:https://github.com/luofanghao/deepdream
画廊地址:inceptionism gallery密集恐惧症慎点喔!

写在前面

这篇文章不是完全的翻译,又做一些个人的理解和删减,感谢提意见。如果想看原文,请点上面的链接。

ABSTRACT

通过训练,深度学习网络通过学到了东西,但是他学到的是什么?正确吗?就像教一个小孩子东西一样,很重要的一环就是让孩子学会去自己表达。然后我们再从他的表达中,发现他究竟学到了什么。在他表达的过程中,同时也会创造出无数美好而古灵精怪的东西。deep dream 这个项目,就是教会神经网络如何去表达,目前仅限于computer vision领域。这篇文章讲细细剖析人工智能的梦境 - deep dream。
(本节译者原创)

1. 问题由来

人工神经网络在图像处理以及语音识别等领域上都有了了不起的进展。不过对于神经网络,我们还有很多了解不透彻的东西,“为什么有些模型管用,而有些模型用起来则很差劲”,即使其中一些实用的算法都是基于很知名普遍的数学模型。

人工神经网络的训练,是通过传入大量的数据集,然后逐步地调整网络的参数,知道它给出我们想要的分类。一个神经网络常常由10~30张layers层层堆积而成,每张layer又是由许多neurons组成。每张图片(一个数据集)从input layer进入,再传递到下一层,直到最后一层output layer 给出最后的结果。

去理解在人工神经网络的每一层layer是一个极大的挑战。我们知道在训练之后,神经网络的每一层layer都会渐进地抽取input image的更高级的特征,直到最后一层layer给出一个分类的结果:这张图片到底表达的是什么。举个例子,第一层layer也许看出来的是这些那些个线条;中间层的layer看出来的是整体形状和一些局部的组成;最后一层layer就将把这些表达组合出来,噢,这是棵树。

2. 第一种可视化方法

去理解神经网络每一层layer都做了什么,第一种方法,是将整个神经网络倒过来,让它把一张图片加工成某种特定的东西。比方说我现在想要一个“香蕉”的图,我传给神经网络一张完全是随机噪声的图片,让它逐渐地把这个图片加工成它认为是“香蕉”的样子。事实上让他完全自己做到的话,是不太成功的,但是我们如果加一些人为的限制,就会很成功了。像下图这样
这里写图片描述

这就是令人惊奇的地方了:神经网络是被训练成用来判别图片的,但是现在却有能力来生成图片了,下面有更多不同类别的例子:
这里写图片描述

2.1 我们为什么要这种可视化

那,这种能力为什么重要呢?我们训练神经网络去学习我们想要它学习的东西,同时希望他能够剔除不重要的东西。比方说,一个叉子,那么一根把手,2~4根尖头,就是我们需要神经网络学到的东西;而叉子的形状,大小,放置的方向,显然是不重要的东西,我们不需要它来学到这些。那现在问题来了,我们怎么样才能知道神经网络有没有学到我们希望它学到的东西呢?答案就是:让神经网络画出一个它所认为的叉子给我看!

举个例子,下面是一个神经网络学到的哑铃的表达:
这里写图片描述
这里的哑铃看起来是对的,但是我们很容易可以看出,神经网络好像认为“哑铃”就总代表着旁边有一个肌肉男在举着它。这显然是不对的,也许是因为它从来没有接受过“单独一个哑铃”图片的训练。有了这个结论,我们就很容易去改正这个偏差了。

3. 另一种可视化方法

除了指定给神经网络某种特征让它描绘,我们还可以尝试另一种可视化的方法 - 让它自己决定去描绘什么!这样,我们只用简单地传入一张照片给神经网络让它自己去分析这张照片。接下来,我们指定某一层layer,让神经网络按照这层layer去加强这张图片。之前我们说过了,不同层级的layer,会有不同高度的抽象特征。所以假如我们选中低层级的layer,那图片被加强的可能只是一些线条;但是如果我们选中的是高层级的layer,那图片被加强的就会有各种奇怪的不明物体了。我们来看下示例:
这里写图片描述
这个可能还不够明显,我们来看一个更加明显的示例:
这里写图片描述
他们原来只是天上的白云而已~被神经网络加强成这个样子了。

这种技术被命名为“inceptionism”,更多此技术生成的图片可戳:inceptionism gallery密集恐惧症慎点喔!

4. 更加深入:迭代

我们可以迭代地使用这个算法,用它自己的output,放大了,取出局部,作为input再使用。这样,我们就会从单纯是random noise的图片,得到一些更加绚丽并且丰富的图片:
这里写图片描述

5. CONCLUSION

让神经网络去表达,就像教会一个人工智能如何自己做梦一样。将它自己白天所学到的东西,在夜里,零零散散,大大小小地拼在一起,形成一幅幅美丽的画卷。这些画卷不单单能够让我们了解到它究竟学的怎么样,有什么偏差,帮助我们更好地调整我们的训练算法;还有着独特的艺术效果,说不定以后会有这样的画展呢 XD.
(本节译者原创)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值