首页 > 编程知识 正文

sigmoid函数有几种,relu激活函数公式

时间:2023-05-06 20:52:32 阅读:164762 作者:3005

tanh函数

tanh(x )=e2x1e2x1tanh ) ) x )=1tanh ) x ) 2

证明

tanh(x ) x=)2(e2x 1)=22E2x )1)2=(e2x 1)2=(e2x 1)2)2=1) E2x1)1)2=1) E2x1e2x1)2)2)2=1tanh)

1、Sigmoid函数

Sigmoid是应用最广泛的激活函数之一,呈指数函数形式。 正式定义如下

代码:

x=-10:0.001:10; %sigmoid及其导数sigmoid=1./(1exp(-x ); sigmoidder=exp(-x )./() )1exp )-x ).^2); 图形; plot(x,sigmoid,‘r’,x,sigmoidDer,‘B--’; AXIS([-1010-11]; 戈登; title(sigmoid函数(实线)及其导数(虚线) ); lgend(‘sigmoid原函数’,‘Sigmid导数’; set(GCF、‘number title’、‘off’; set(GCF、‘name’、‘Sigmoid函数(实线)及其导数)虚线); 输出:

这样,sigmoid可以在定义区域内任何地方导出,两侧的导数逐渐接近0。 即,如下所示。

感动的大神等将具有这样性质的激活函数定义为软饱和激活函数。 与极限定义类似,饱和也可分为左侧软饱和和右侧软饱和:

左软饱和:

右侧软饱和:

对于软饱和,硬饱和激活函数,即f‘(x )=0,当|x| c,其中c是常数。

同样,硬饱和也分为左侧硬饱和和右侧硬饱和。 常见的ReLU是一种左侧硬饱和激活函数。

由于Sigmoid的软饱和性,深神经网络在二三十年间一直难以有效训练,是阻碍神经网络发展的重要原因。 具体而言,在后向传播过程中,由于sigmoid向下方传播的梯度中包含f‘(x )因子) sigmoid的输入相关的导数),当输入落入饱和区域时,f‘) x )接近0,向底层的传播梯度也非常大此时,网络参数很难接受有效的训练。 这种现象被称为梯度消失。 通常,sigmoid网络在5层以内会出现梯度消失现象[ understandingthedifficultyoftrainingdeepfeedfordneuralnetworks ]。 梯度消失问题仍然存在,但通过新的优化方法得到了有效缓解,例如DBN中的分层预训练、Batch Normalization的逐层归一化、Xavier和MSRA权重初始化等代表性技术。

Sigmoid的饱和性使梯度消失,但也有有利的一面。 例如,物理上最接近生物神经元。 (0,1 )的输出用于概率或输入的归一化,并且代表性地被表示为Sigmoid交叉熵损失函数

代码:

x=-10:0.001:10; tanh=(exp(x )-exp )-x )./(exp ) ) exp(-x ) ); tanhDer=1-tanh.^2; 图形; plot(x,tanh,‘r’,x,tanhDer,‘b--‘; 戈登; title(‘tanh函数(实线)及其导数)虚线); Legend(‘Tanh原函数’,‘tanh导数’; set(GCF、‘number title’、‘off’; set(GCF、‘name’、‘tanh函数(实线)及其导数)虚线);输出:

tanh也具有软饱和性。 在“backpropagationappliedtohandwrittenzipcoderecognition”中,他说tanh网络的收敛速度比sigmoid快。 由于tanh的输出平均值比sigmoid更接近0,SGD将接近natural gradient [ naturalgradientworksefficientlyinlearning ],从而减少所需的迭代次数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。