如果您正在学习神经网络,您很可能遇到术语“激活函数”。在神经网络中,激活函数决定特定神经元是否被激活。激活函数将节点的加权和作为输入,并根据激活函数执行一些数学计算,并输出一个决定神经元是否被激活的值。
它们有很多激活函数,例如
在本教程中,我们将学习sigmoid 激活函数。那么让我们开始吧!
什么是 sigmoid 函数——其背后的数学原理
Sigmoid 是一种非线性激活函数。它主要用于需要预测某事概率的模型中。由于概率存在于 0 到 1 的值范围内,因此sigmoid 的范围也是从0 到 1,包括两者。
我们来看看sigmoid函数的方程。
Sigmoid 通常使用希腊符号 sigma 表示。所以,我们也可以写
在上式中,“ e ”是欧拉数。其值约为2.718。相似地,
事实上,我们可以推导出上述两个方程之间的关系为
我们还可以证明这个关系,如下所示:
左侧:
也可以写成
右侧:
因此,左轴=右轴
至此,我们证明了这个关系。
sigmoid 激活函数的另一个属性是它是可微的。让我们看看如何区分它。
对sigmoid 方程 1求导我们得到
因此,从Sigmoid 方程 1、Sigmoid x 与 -x 关系方程 2和Sigmoid 微分方程 2,我们可以写出
或者,
唷!这里面有很多数学知识!现在,让我们看一下 sigmoid 函数的图形。
使用 Python Matplotlib 绘制 S 形图
#importing the required libraries from math import exp from matplotlib import pyplot as plt #defining the sigmoid function def sigmoid(x): return 1 / ( 1 + exp( - x)) #input input = [] for x in range ( - 5 , 5 ): input .append(x) #output output = [] for ip in input : output.append(sigmoid(ip)) #plotting the graph plt.plot( input , output) plt.title( "Sigmoid activation function" ) plt.grid() #adding labels to the axes plt.xlabel( "x" ) plt.ylabel( "sigmoid(x)" ) plt.scatter([ 0 ], [ 0.5 ], color = "red" , zorder = 5 ) plt.show() |
输出:
上图让我们了解了 sigmoid 函数的一些属性。他们是:
- S形:的图形
sigmoid
是S形的,就像激活函数的图形一样tanh
。 - 定义域:的定义域
sigmoid
是(-∞,+∞)。 - 连续:函数
sigmoid
处处连续。 - 该
sigmoid
函数是单调递增的。 - 乙状结肠(0)= 0.5
sigmoid 和 tanh 之间的关系
我们之前在教程中讨论过tanh 激活函数。
tanh 的方程为:
和,
这两个函数是相关的:
概括
让我们快速回顾一下:Sigmoid 激活函数是非线性、单调、S 形、可微且连续的。就这样!我们已经了解了 sigmoid 激活函数及其属性。
希望本教程对您有所帮助。请在此处查看更多与 Python 相关的此类教程。