Activation Function激活函数一般会神经网络中隐层和输出层上,其中作用在输出层主要用于适配输出,比如sigmoid函数可用于生成[0,1]之间的概率估计值。而作用于隐层主要用于增加神经网络的非线性,增加了网络的表达能力,本文主要介绍隐层的激活函数的选择。
1. Sigmoid激活函数

sigmoid函数会将输入转化到0~1之间的范围,数据分布以0.5为中间,其主要的优点是处处连续可导,当输入值较大或较小时其梯度值极小,因此容易造成梯度消失的问题,特别是随着网络层数增加,各层权重参数叠加会导致问题加剧,虽然可能BatchNorm等方法可以解决这类问题,但在多数情况下,应用sigmoid激活函数并不会带来较大收益,现在更常用Relu函数等取代。
2. Tanh激活函数

tanh函数会将输入转化到-1~1之间的范围,数据分布以0为中间,其也是处处连续可导,但当输入值较大或较小时其梯度值极小,也会出现梯度消失的问题,另外由于其数据分布是以0为中心的,因此更容易收敛,在某些特定网络结构(如RNN)中,这种以0为中心对称分布,同时包含了负数值的激活函数是有帮助的。

本文介绍了神经网络中不同类型的激活函数,包括Sigmoid、Tanh、ReLU及其变种,讨论了它们的作用、优缺点以及可能导致的梯度消失问题。ReLU因其简单和效率成为默认选择,但其变种如PReLU、Swish等在某些情况下表现更优。Softplus和ELU等平滑函数解决了ReLU的一些问题,而shrink类函数在特定场景下有用。选择激活函数需根据具体模型需求进行尝试。
最低0.47元/天 解锁文章
1098

被折叠的 条评论
为什么被折叠?



