激活函数学习笔记

激活函数学习笔记

激活函数是神经网络中非常重要的一部分,它的作用是为神经网络引入非线性因素,从而可以更好地拟合复杂的数据。本文将介绍常见的激活函数,包括Sigmoid、Tanh、ReLU、LeakyReLU等,同时也会介绍它们的优缺点和使用场景。

1. Sigmoid函数

Sigmoid函数是一个常用的激活函数,公式如下:

s i g m o i d ( x ) = 1 1 + e − x sigmoid(x) = \frac{1}{1+e^{-x}} sigmoid(x)=1+ex1

Sigmoid函数的取值范围在(0, 1)之间,它的导数可以表示为:

s i g m o i d ′ ( x ) = s i g m o i d ( x ) ( 1 − s i g m o i d ( x ) ) sigmoid'(x) = sigmoid(x)(1-sigmoid(x)) sigmoid(x)=sigmoid(x)(1sigmoid(x))

Sigmoid函数在输入大于5或小于-5时会出现梯度消失的问题,因此它在深度神经网络中的应用受到限制。

2. Tanh函数

Tanh函数也是一个常用的激活函数,公式如下:

t a n h ( x ) = e x − e − x e x + e − x tanh(x) = \frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+exexex

Tanh函数的取值范围在(-1, 1)之间,它的导数可以表示为:

t a n h ′ ( x ) = 1 − t a n h 2 ( x ) tanh'(x) = 1-tanh^2(x) tanh(x)=1tanh2(x)

和Sigmoid函数一样,Tanh函数在输入大于5或小于-5时会出现梯度消失的问题。

3. ReLU函数

ReLU函数是近年来非常流行的激活函数之一,公式如下:

R e L U ( x ) = m a x ( 0 , x ) ReLU(x) = max(0, x) ReLU(x)=max(0,x)

ReLU函数的导数可以表示为:

R e L U ′ ( x ) = { 1 x > 0 0 x ≤ 0 ReLU'(x) = \begin{cases}1 & x>0 \\0 & x\leq0\end{cases} ReLU(x)={10x>0x0

ReLU函数有很好的非线性特性,并且在输入为正数时可以保持梯度不变,因此深度神经网络中广泛使用。

4. LeakyReLU函数

LeakyReLU函数是对ReLU函数的改进,公式如下:

L e a k y R e L U ( x ) = { x x > 0 a x x ≤ 0 LeakyReLU(x) = \begin{cases}x & x>0 \\ax & x\leq0\end{cases} LeakyReLU(x)={xaxx>0x0

其中a是一个小于1的正数,通常取0.01。LeakyReLU函数的导数可以表示为:

L e a k y R e L U ′ ( x ) = { 1 x > 0 a x ≤ 0 LeakyReLU'(x) = \begin{cases}1 & x>0 \\a & x\leq0\end{cases} LeakyReLU(x)={1ax>0x0

LeakyReLU函数的优点是在输入为负数时可以保持梯度不为0,避免了ReLU函数的缺陷。同时也有比ReLU函数更好的表现。

5. 总结

本文介绍了常见的激活函数,包括Sigmoid、Tanh、ReLU、LeakyReLU等,同时也介绍了它们的优缺点和使用场景。对于神经网络开发人员来说,选择合适的激活函数对于提高神经网络的表现非常重要。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部