神经网络中经常使用的激活函数–sigmoid函数σ(x)
sigmoid函数(σ)
sigmoid函数原型
sigmoid函数是机器学习中的一个比较常用的函数,其函数原型如下图所示:
sigmoid函数的函数曲线以及其导数曲线如下图所示:
通过上图可以看出在趋于正无穷或负无穷时,sigmoid函数都趋近平滑状态。当x趋近负无穷时,y趋近于0;趋近于正无穷时,y趋近于1。由于sigmoid函数输出范围为(0,1),所以二分类的概率常常用使用这个函数。
sigmoid函数求导
Sigmoid函数的导数是其本身的函数,即:
f
′
(
x
)
=
f
(
x
)
(
1
−
f
(
x
)
)
f′(x)=f(x)(1−f(x))
f′(x)=f(x)(1−f(x))
这个公式是如何推导的呢,很简单。
f
(
x
)
=
(
1
+
e
−
x
)
−
1
=
(
−
1
)
∗
(
1
+
e
−
x
)
−
2
∗
e
−
x
∗
(
−
1
)
=
(
1
+
e
−
x
)
−
2
∗
e
−
x
=
e
−
x
(
1
+
e
−
x
)
2
=
(
1
+
e
−
x
−
1
)
(
1
+
e
−
x
)
2
=
(
1
+
e
−
x
)
(
1
+
e
−
x
)
2
−
1
(
1
+
e
−
x
)
2
=
1
(
1
+
e
−
x
)
−
1
(
1
+
e
−
x
)
2
=
1
(
1
+
e
−
x
)
(
1
−
1
(
1
+
e
−
x
)
)
\begin{aligned} f(x)&={(1 + {e^{ - x}})^{ - 1}} \\ &=(-1)*(1+e^{ - x})^{ - 2}*e^{ - x}*(-1) \\ &=(1+e^{ - x})^{ - 2}*e^{ - x} \\ &=\frac{e^{ - x}}{(1+e^{ - x})^{ 2}} \\ &=\frac{(1+e^{- x}-1)}{(1+e^{ - x})^{ 2}} \\ &=\frac{(1+e^{ - x})}{(1+e^{ - x})^{ 2}}-\frac1{(1+e^{ - x})^{ 2}} \\ &=\frac1{(1+e^{ - x})}-\frac1{(1+e^{ - x})^{ 2}} \\ &=\frac1{(1+e^{ - x})}(1-\frac1{(1+e^{ - x})}) \end{aligned}
f(x)=(1+e−x)−1=(−1)∗(1+e−x)−2∗e−x∗(−1)=(1+e−x)−2∗e−x=(1+e−x)2e−x=(1+e−x)2(1+e−x−1)=(1+e−x)2(1+e−x)−(1+e−x)21=(1+e−x)1−(1+e−x)21=(1+e−x)1(1−(1+e−x)1)
sigmoid总结
为什么要用sigmoid函数
其作用就是引入非线性。
sigmoid优点
1、 值域在0和1之间;
2 、 函数具有非常好的对称性。
3、sigmoid的优点在于输出范围有限,所以数据在传递的过程中不容易发散。当然也有相应的缺点,就是饱和的时候梯度太小。
4、求导容易。