我刚开始玩神经网络,正如我所料,为了有效地训练神经网络,必须在近似函数和激活函数之间存在某种关系。
例如,当使用sin(x)作为近似cos(x)时的激活函数,或者使用两个tanh(x)来逼近高斯时,我得到了很好的结果。现在,为了近似一个我什么都不知道的函数,我打算使用激活函数的混合,例如隐藏层有一些罪,一些tanh和逻辑函数。在你看来,这有什么意义吗?
谢谢你,
Tunnuz
答案 0 :(得分:2)
虽然不同的激活函数确实具有不同的优点(主要用于生物合理性或像radial basis function networks这样的独特网络设计),但通常您可以使用任何连续压缩功能并期望能够近似于现实世界训练数据中遇到的大部分功能。
两个最受欢迎的选择是双曲正切和逻辑函数,因为它们都具有易于计算的导数和围绕轴的有趣行为。
如果两者都不允许您准确地近似您的功能,我的第一反应将不是更改激活功能。相反,您应该首先调查您的训练集和网络训练参数(学习率,每个池中的单位数,体重衰减,动量等)。
如果你仍然陷入困境,请退后一步,确保你使用正确的架构(前馈与简单的复发与完全复发)和学习算法(反向传播与反向支持通过时间与对比性hebbian vs.进化/全球方法)。
一方面注意:确保从不使用线性激活功能(输出图层或疯狂的简单任务除外),因为它们具有非常well documented limitation s,即需要线性可分离性。