可能很多人已经看过谷歌研究的这篇文章:
http://googleresearch.blogspot.ru/2015/06/inceptionism-going-deeper-into-neural.html
它描述了 Google 团队如何制作神经网络来实际绘制图片,就像人工艺术家一样 :)
我想做一些类似的事情,只是为了看看它是如何工作的,并可能在将来使用它来更好地了解是什么导致我的网络失败。问题是 - 如何使用 nolearn\lasagne (或者可能是 pybrain - 它也可以工作,但我更喜欢 nolearn)来实现它。
更具体地说,谷歌的人已经用一些架构训练了一个人工神经网络来对图像进行分类(例如,对照片上的鱼进行分类)。好吧,假设我在 nolearn 中构建了一个具有某种架构的 ANN,并且我已经接受了一定程度的训练。但是……接下来该怎么办?我没有从他们的文章中得到它。他们似乎并不只是可视化某些特定层的权重。在我看来(也许我错了)就像他们做两件事之一:
1) 将一些现有图像或纯粹的随机噪声馈送到经过训练的网络,并可视化其中一个神经元层的激活。但是 - 看起来并不完全正确,因为如果他们使用卷积神经网络,层的维度可能低于原始图像的维度
2)或者他们将随机噪声提供给经过训练的 ANN,从其中一个中间层获取其中间输出并将其反馈回网络 - 以获得某种循环并检查神经网络层认为可能存在的随机噪音。但同样,由于与#1中相同的维度问题,我可能是错的
所以......对此有什么想法吗?我们如何使用 nolearn 或 pybrain 做与 Google 在原始文章中所做的类似的事情?