一、前言

我们介绍一个非常有用的函数:sigmoid函数,它们在机器学习中经常用到。尤其是在神经网络中,经常用于作为隐藏层神经元的输出函数。

二、sigmoid函数

sigmoid函数也叫Logistic函数,它可以将一个实数映射到(0,1)的区间。
函数表示如下: f ( x ) = 1 1 + e − x f(x)=\frac1{1+e^{-x}} f(x)=1+ex1
x = 0 x=0 x=0时, f ( x ) = 0.5 f(x)=0.5 f(x)=0.5

其导数为 f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f'(x)=f(x)(1-f(x)) f(x)=f(x)(1f(x))
证明如下:
f ( x ) = 1 1 + e − x = ( 1 + e − x ) − 1 f(x)=\frac1{1+e^{-x}}=(1+e^{-x})^{-1} f(x)=1+ex1=(1+ex)1

f ′ ( x ) = − ( 1 + e − x ) − 2 e − x ( − 1 ) = e − x ( 1 + e − x ) 2 = 1 + e − x − 1 ( 1 + e − x ) 2 = 1 1 + e − x − 1 ( 1 + e − x ) 2 = ( 1 1 + e − x ) ( 1 − 1 1 + e − x ) = f ( x ) ( 1 − f ( x ) ) \begin{aligned} f'(x) &=-(1+e^{-x})^{-2}e^{-x}(-1)\\ &=\frac{e^{-x}}{(1+e^{-x})^2}\\ &=\frac{1+e^{-x}-1}{(1+e^{-x})^2}\\ &=\frac{1}{1+e^{-x}}-\frac{1}{(1+e^{-x})^2}\\ &=(\frac{1}{1+e^{-x}}) (1-\frac{1}{1+e^{-x}})\\ &=f(x)(1-f(x)) \end{aligned} f(x)=(1+ex)2ex(1)=(1+ex)2ex=(1+ex)21+ex1=1+ex1(1+ex)21=(1+ex1)(11+ex1)=f(x)(1f(x))

三、代码实现绘图

matplotlib绘制函数图像:

import matplotlib.pyplot as plt
import numpy as np
 
 
def sigmoid(x):
    return 1/(1+np.exp(-x))

x = np.arange(-10, 10, 0.1) #起点,终点,间距
y = sigmoid(x)
plt.plot(x, y)
plt.show()

运行结果:
在这里插入图片描述

四、参考资料

Sigmoid函数求导过程

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐