【发布时间】:2013-12-30 07:36:57
【问题描述】:
我正在使用 RBM 实现深度自动编码器。我知道,为了展开网络,我们需要将编码器的转置权重用于解码器。但我不确定我们应该为解码器使用哪些偏差。如果有人可以为我详细说明或向我发送伪代码链接,我将不胜感激。
【问题讨论】:
标签: machine-learning neural-network unsupervised-learning rbm
我正在使用 RBM 实现深度自动编码器。我知道,为了展开网络,我们需要将编码器的转置权重用于解码器。但我不确定我们应该为解码器使用哪些偏差。如果有人可以为我详细说明或向我发送伪代码链接,我将不胜感激。
【问题讨论】:
标签: machine-learning neural-network unsupervised-learning rbm
我相信 Geoff Hinton 在his website 上提供了他所有的源代码。他是这种技术的 RBM 版本的首选人。
基本上,如果您有一个尺寸为 10000 x 100 的输入矩阵 M1,其中 10000 是您拥有的样本数,而 100 是特征数,并且您想将其转换为 50 维空间,您将训练一个受限的 Boltzman 机器权重矩阵的维度为 101 x 50,额外的行是始终打开的偏置单元。在解码方面,您将使用 101 x 50 矩阵,从偏置中删除额外的行,使其成为 100 x 50 矩阵,将其转置为 50 x 100,然后为偏置单元添加另一行,使其成为 51 x 100。然后你可以通过反向传播运行整个网络来训练整个网络的权重。
【讨论】: