我可以在自动编码器中使用 ReLU 作为激活函数吗?

机器算法验证 机器学习 神经网络 深度学习 自动编码器
2022-03-17 10:09:19

在使用神经网络实现自编码器时,大多数人会使用 sigmoid 作为激活函数。

我们可以改用 ReLU 吗?(由于 ReLU 对上限没有限制,基本上意味着输入图像的像素可以大于 1,这与使用 sigmoid 时自动编码器的受限标准不同)。

1个回答

这是一个讨论线程(从 2013 年 7 月开始),表明它可能存在一些问题,但可以做到。

Çağlar Gülçehre(来自 Yoshua Bengio 的实验室)说,他在Knowledge Matters 中成功使用了以下技术:优化先验信息的重要性

像往常一样训练第一个 DAE,但在隐藏层中使用整流器: a1(x) = W1 x + b1 h1 = f1(x) = rectifier(a1(x)) g1(h1) = {sigmoid}(V1 h1 + c1) 最小化交叉熵或 MSE 损失,比较 g1(f1(corrupt(x))) 和 x。根据数据,sigmoid 是可选的。

在 f1 整流器之前添加噪声训练 2nd DAE,并使用具有 MSE 损失的 softplus 重建单元: h2 = f2(h1) = rectifier(W2 h1 + b2) g2(h2) = softplus(V2 h2 + c2) 最小化f1(x)g2(f2(rectifier(corrupt(a1(x)))))2+λ1W1+λ2W2

同样来自 Bengio 实验室的 Xavier Glorot 说,除了更换W1带着L1“对激活值”的惩罚(大概是g2()1?) 在大规模情感分类的域适应:深度学习方法(ICML 2011) 和深度稀疏整流器神经网络(AISTATS 2011) 中。