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