我在研究和阅读关于谷歌DeepDream的内容(如果你不知道这是什么,我建议你去看看!):
我想知道是否有人能向我解释它是如何工作的。
我还是一名高中生,所以我对编程的了解并不深入,但所有关于它如何运作的描述要么非常技术化(远远超出我的理解范围),要么非常简单(“它让事物看起来更像猫”)。
我理解神经网络背后的理论,但如果有人能解释如何实际使用它来创建那些图像,或者至少推荐一些我可以阅读的资料,那将是非常棒的。谢谢!
回答:
我希望这个解释对你来说不会太简单。
你给谷歌DeepDream提供一张图片。它会开始寻找它被训练识别出的每一个“事物”。所以神经网络可能会在一张图片中找到狗、房子和水母。
但谷歌DeepDream所做的,是放大这些被发现的对象。所以当你再次运行识别网络时,它不会说“看,这有40%的可能是狗”,而是会说“看,这有60%是狗”。
所以它会放大每一个它稍微识别出的对象,创建一张新图像。结果图像包含了算法找到的所有对象的放大特征。
即使你输入的是白噪声,它也会将最微小的狗的相似性放大成明显的狗脸。*1
这个算法很有趣,因为它实际上展示了算法在寻找什么来识别某些对象。
*1 reddit