我目前正在尝试使用自动编码器网络进行降维。 (即使用瓶颈激活作为压缩功能)
我注意到很多使用自动编码器来完成这项任务的研究都使用了线性瓶颈层。
凭直觉,我认为这是有道理的,因为非线性激活函数的使用可能会降低瓶颈特征表示原始特征中包含的原理信息的能力。 (例如,ReLU 忽略负值,sigmoid 抑制值过高或过低)
但是,这是正确的吗?是否有必要使用线性瓶颈层进行自动编码器?
如果可以使用非线性引导层,那么哪种激活函数是最佳选择?
谢谢。
不,您不限于线性激活函数。这方面的一个例子是这项工作,他们使用 GRU 层的隐藏状态作为输入的嵌入。隐藏状态是在其计算中使用非线性tanh和sigmoid函数获得的。
此外,"忽略"负值也没有错。事实上,稀疏性可能是有益的。它可以增强代表性。其他函数(如恒等或 sigmoid 函数)可能产生的噪声可能会在没有错误依赖关系的地方引入错误的依赖关系。通过使用 ReLU,我们可以正确地表示缺乏依赖性(作为零),而不是一些接近零的值,这可能是例如 sigmoid 函数。