赞
踩
首先推荐一个写公式的网站:https://private.codecogs.com/latex/eqneditor.php
如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 Activation Function。
如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。
如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
sigmoid函数定义域是R,其值域为「0,1」,所以可以用来二分类(1,0),在特征相差比较复杂或是相差不是特别大时效果比较好。
sigmoid函数的导数:
f
′
(
x
)
=
f
(
x
)
∗
(
1
−
f
(
x
)
)
f'(x)=f(x)*(1-f(x))
f′(x)=f(x)∗(1−f(x)),导函数值域为(0,0.25]
sigmoid缺点:
sigmoid 原函数及导数图形如下:
由图可知,导数从 0 开始很快就又趋近于 0 了,易造成“梯度消失”现象
Tanh函数也可以表示为:
t
a
n
h
(
x
)
=
2
s
i
g
m
o
i
d
(
2
x
)
−
1
tanh(x)=2sigmoid(2x)-1
tanh(x)=2sigmoid(2x)−1,其定义域为R,值域为(-1,1)
其导函数为:
(
t
a
n
h
(
x
)
)
′
=
s
e
c
h
2
(
x
)
=
1
−
t
a
n
h
2
(
x
)
(tanh(x))'=sech^2(x)=1-tanh^2(x)
(tanh(x))′=sech2(x)=1−tanh2(x),导函数值域为(0,1]
观察sigmoid和tanh的函数曲线,sigmoid在输入处于[-1,1]之间时,函数值变化敏感(导函数最大),一旦接近或者超出区间就失去敏感性,处于饱和状态,影响神经网络预测的精度值。tanh的输出和输入能够保持非线性单调上升和下降关系,符合BP网络的梯度求解,容错性好,有界,渐进于0、1,符合人脑神经饱和的规律,但比sigmoid函数延迟了饱和期。
tanh在特征相差明显时的效果会很好,在循环过程中会不断扩大特征效果。
RELU特点:
其导数为:
公式如下:
举个例子来看公式的意思:
就是如果某一个 zj 大过其他 z, 那这个映射的分量就逼近于 1,其他就逼近于 0,主要应用就是多分类。
为什么要取指数,第一个原因是要模拟 max 的行为,所以要让大的更大。第二个原因是需要一个可导的函数。
由于初学,现在有个概念就好,点到为止,下一节介绍由sigmoid函数为基础的LR模型算法。
这部分是补充内容。在学习了神经网络后会有更好的理解。https://blog.csdn.net/No_Game_No_Life_/article/details/89710077
一般来说就是,由于求导后的连乘导致的梯度消失或者爆炸发生。详见下面的链接:
https://blog.csdn.net/qq_17130909/article/details/80582226
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。