我正在尝试采用来自http://deeplearning.net/tutorial/DBN.html#dbn的具有对比分歧的深度学习代码,以使用实际值输入数据而不是二进制,如本教程中所述。我知道这样做的方法是从sigmoid激活函数切换到整流线性单元(ReLU),但我从实际角度对此做了一些问题......
如果我使用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和ReLUs都有效。如果这不正确,我很高兴发布修改后的代码以便为ReLU工作。