什么是DeepDream?
DeepDream是谷歌发布的对卷积神经网络(CNN)进行可视化的方法,当然它的用途不仅限于此,我们可以通过它让机器“做梦”,以下是一些效果:
可以看到计算机将自然图像的一些特征放大,生成了它想想中的一些物体。利用这个特点还可以生成一些从未有过的物体:
DeepDream的原理
卷积神经网络由于其从理论上难以解释,一直被很多学者诟病。在2013年“Visualizing and Understanding Convolutional Neural Networks”这篇文章提出了使用梯度上升的方法可视化网络每一层的特征,即用一张噪声图像输入网络,反向更新的时候不更新网络权重,而是更新初始图像的像素值,以这种“训练图像”的方式可视化网络。deepdream正是以此为基础。
之前说过,deepdream需要放大图像特征。比如:有一个网络学习了分类猫和狗的任务,给这个网络一张云的图像