1

我正在尝试采用来自http://deeplearning.net/tutorial/DBN.html#dbn的具有对比发散的深度学习代码来处理实值输入数据,而不是教程中描述的二进制。我知道这样做的方法是从 sigmoid 激活函数切换到整流线性单元 (ReLU),但从实际角度来看,我对这样做有一些疑问......

  1. 我可以简单地使用定义为 max(0,x) 的 ReLU,还是需要定义为 max(0,x+N) 的 NReLU,其中 N 是高斯噪声?如果推荐使用 NReLU,那么计算样本 N 的正确方法是什么?
  2. 如果我使用 ReLU(或 NReLU),我是否需要修改我的自由能函数,对于 sigmoid 单位是 python 代码...

    def free_energy(self, v_sample):
        wx_b = T.dot(v_sample, self.W) + self.hbias
        vbias_term = T.dot(v_sample, self.vbias)
        hidden_term = T.sum(T.log(1 + T.exp(wx_b)), axis=1)
        return -hidden_term - vbias_term
    

从我在论文中看到的内容来看,上面的内容看起来实际上适用于 sigmoid 和 ReLU。如果这不正确,我将不胜感激发布适用于 ReLU 的修改代码。

4

0 回答 0