阅读本文后,我了解到我可以通过仅激活一个隐藏单元和吉布斯从隐藏单元中采样可见单元来创建人们所谓的"重建"。
但是现在我正在尝试在python中实现一些卷积受限玻尔兹曼机。我的计划是坚持使用第 3.2 节中提供的版本(所以,请注意,我还没有打算实现卷积深度信念网络),并且仅在该部分工作后插入概率最大池。
为了检查它是否正常工作,我想创建类似于本文中介绍的"功能"(例如,图 3)。第一层的学习特征与其他类型的网络学习的特征非常相似;但我不确定他们是如何创建这些功能的。我不清楚这些学到的"特征"是过滤器的权重,还是我应该通过打开某个过滤器的所有隐藏单元来以某种方式创建重建。我也不确定第 3.6 节与我的简单版本(其中我什至没有概率最大池)有多相关。
(我尝试了两者,但我的结果看起来仍然完全不同,我不确定是我的代码中的错误还是我只是做错了什么)
有什么帮助吗?(我在互联网上随机找到了这段代码,但我对 Matlab 语法仍然很陌生,还不知道他们做了什么来创建重建——假设他们这样做了)
嗯,是的,我已经想知道为什么他们没有在本文中提供有关绘制更高层的基础的详细信息。
为了可视化第一层的特征(图 3,上图),仅绘制单个隐藏单元的权重(即过滤器)就足够了。如果您的结果看起来不同,则可能有很多原因。除了代码中的错误之外,任何训练参数都可能使筛选器再次看起来不同。请注意,对于自然图像,您需要高斯单位。
如果你想要一些 python 代码开始,你可以检查这个框架:https://github.com/OFAI/lrn2
如果你曾经想可视化更高层中发生的事情,本文可能会有所帮助(其中2.4节也在上述框架中实现(在 stacks.py/NNGenerative 下):http://www.dumitru.ca/files/publications/invariances_techreport.pdf
希望对您有所帮助!