神经网络隐藏激活函数的选择


14

我在其他地方读过,NN中隐藏层激活功能的选择应基于自己的需要,即,如果您需要-1到1范围内的值,请使用tanh并使用Sigmoid来表示0到1的范围。

我的问题是如何知道自己的需求?是否基于输入层的范围,例如使用可以包含输入层的整个值范围的函数,还是以某种方式反映输入层的分布(高斯函数)?还是选择特定的需求问题/领域,并需要一个人的经验/判断才能做出选择?还是仅仅是“使用能够提供最佳交叉验证的最小训练误差的东西?”


3
这个参数是bs,因为(tanh + 1)/ 2也是0-1,更不用说“ Sigmoid”这个模糊的术语了,它经常覆盖tanh。

可能值得一提的是,任何数据集都可以归一化为0-> 1并可以使用S型激活1 + (1 / exp(-sum))。使得需要非常难于理解而对每一个数据集都尝试。将需要为你在这里形容它是联系在一起的实际关系的有学问,即二进制数据集将学习都给予不同的激活更快与否。
阿德里安·塞利

Answers:


12

LeCun在有效反向传播第4.4节中对此进行了讨论。该动机类似于将输入归一化为零均值的动机(第4.3节)。tanh激活函数的平均输出比S型曲线更接近于零,而S型曲线的平均输出必须为正。


非常有启发性的阅读!
babelproofreader 2012年

6

在问题的第一段中提到的需求涉及输出层激活功能,而不是隐藏层激活功能。输出范围从0到1很方便,因为这意味着它们可以直接表示概率。但是,可以将具有tanh输出层激活功能的网络IIRC轻松转换为具有逻辑输出层激活功能的网络,因此在实际中并没有多大关系。

IIRC在隐藏单元中使用tanh而不是逻辑激活函数的原因是,通过反向传播对权重进行的更改取决于隐藏层神经元的输出和激活函数的派生,因此使用逻辑激活功能,您可以同时将它们都设为零,这可能导致隐藏层单位冻结。

简而言之,将tanh用于隐藏层激活函数,选择输出层激活函数以对输出施加所需的约束(常见选择:线性-无约束,逻辑-输出位于0到1之间,而指数-输出严格为正)。


我不明白“ ...都归零...”。我看到输出可能为零,但如何使逻辑函数的导数变为零而不是正切。
erogol

它不会完全为零,对于逻辑函数,它变得非常小。对于tanh函数,当输出为零时导数最大,而当导数最小时输出最大。原始论文写于80年代后期,我拭目以待。
迪克兰有袋博物馆,2012年

2
我找不到原始论文,但是“神经网络-交易技巧”一书中的某些论文建议,在隐藏层中,tanh更好,因为如果隐藏层激活集中(例如,零均值),则网络性能会更好。 )。
迪克兰有袋博物馆,2012年

2

1.7159×X×2/3-1个+1个[-1.5+1.5]。这样,您的网络将在决策边界附近的点上更加准确。

选择S形的一般概念是根据规则选择一个,您的输出值在点的范围内,使S形函数的二阶导数最大。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.