1.Sigmod函数
(1)公式
f
(
x
)
=
1
1
+
e
−
x
f(x)=\frac{1}{1+e^{-x}}
f(x)=1+e−x1
可以将数据映射到
(
0
,
1
)
(0,1)
(0,1)区间。
缺点:
a.易造成梯度消失。
b.输出非0均值,收敛慢。
c.幂运算复杂,训练时间长。
(2)TF2调用sigmod
import tensorflow as tf
a = tf.constant([-1,0,1,2],dtype=tf.float32)
print(tf.nn.sigmoid(a).numpy())
输出:
[0.26894143 0.5 0.7310586 0.880797 ]
2.Tanh函数
(1)公式
f
(
x
)
=
1
−
e
−
2
x
1
+
e
−
2
x
f(x)=\frac{1-e^{-2x}}{1+e^{-2x}}
f(x)=1+e−2x1−e−2x
将数据映射到(-1,1)区间。
特点:
a.输出均值是0。
b.易造成梯度消失。
c.幂运算复杂。
(2)TF2调用Tanh
a = tf.constant([-1,0,1,2],dtype=tf.float32)
print(tf.nn.tanh(a).numpy())
输出:
[-0.7615942 0. 0.7615942 0.9640276]
3.Relu函数
(1)公式
f
(
x
)
=
m
a
x
(
x
,
0
)
f(x)=max(x,0)
f(x)=max(x,0)
优点:
a.在正区间解决了梯度消失问题。
b.计算速度快。
c.收敛速度快。
缺点:
a.输出非0均值,收敛慢。
c.有些神经元可能永远不能被激活。
(2)TF2调用Relu
a = tf.constant([-1,0,1,2],dtype=tf.float32)
print(tf.nn.relu(a).numpy())
输出:
[0. 0. 1. 2.]