学校网站建设考评办法,特色专业建设展示网站,上海校园兼职网站建设,曲阜市住房和城乡建设局网站激活函数已经成为神经网络中非常重要的一部分#xff0c;随着各种类型的神经网络模型被人们开发出来#xff0c;各种激活函数也应运而生#xff0c;在不同的场景中#xff0c;取得良好的效果。本文跟据著名的YOLO系列目标检测模型的源码 AlexeyAB Darknet#xff0c;整理出… 激活函数已经成为神经网络中非常重要的一部分随着各种类型的神经网络模型被人们开发出来各种激活函数也应运而生在不同的场景中取得良好的效果。本文跟据著名的YOLO系列目标检测模型的源码 AlexeyAB Darknet整理出目前神经网络模型中应用最广泛的20种激活函数对它们的计算公式、图像特点进行介绍并使用python代码实现这些激活函数的计算。
1、stair激活函数 如图1所示stair激活函数的图像就像阶梯一样。它的计算公式如下 式子中,表示不大于x的整数表示对2取余数。 图1 stair激活函数代码实现如下 def stair(x):nmath.floor(x)if n%20:return math.floor(x/2.0)else:return (x-n)math.floor(x/2.0)
2、hardtan激活函数 如图2所示hardtan激活函数是通过以直代曲近似实现tan函数其计算公式如下 图2 hardtan激活函数代码实现如下
def hardtan(x):if x-1.0:return -1.0elif x1.0:return 1.0else:return x
3、linear激活函数 linear激活函数是线性激活函数输入x输出也是x其函数图像如图3所示。 图3 线性激活函数代码实现
def linear(x):return x
4、logistic激活函数 logistic激活函数又叫sigmoid激活函数如图4所示logistic函数可以结果映射到0到1之间。其计算公式如下 图4 logistic激活函数代码实现如下
def logistic(x):return 1.0/(1.0math.exp(-x))
5、loggy激活函数 如图5所示loggy的函数图像跟logistic有点相似也是把输出映射到0到1之间。其计算公式如下 图5 loggy激活函数代码实现
def loggy(x):return 2.0/(1.0math.exp(-x))-1.0
6、relu激活函数 relu激活函数为线性整流函数目的是把小于0的数截取掉其函数图像如图6所示其计算公式如下 图6 relu激活函数代码实现如下
def relu(x):return x*(x0)
7、relu6激活函数 relu6和relu一样也是线性整流函数不同的是他对大于6的数进行了截断其函数图像如图7所示其计算公式如下 图7 relu6激活函数代码实现如下
def relu6(x):if x0:return 0.0elif x6:return 6.0else:return x
8、elu激活函数 elu激活函数的图像如图8所示其计算公式如下 图8 elu激活函数代码实现
def elu(x):return (x0)*x(x0)*(math.exp(x)-1.0)
9、selu激活函数 selu激活函数如图9所示其计算公式如下 图9 selu激活函数代码实现
def selu(x):return (x0)*1.0507*x(x0)*1.0507*1.6732*(math.exp(x)-1.0)
10、relie激活函数 相比于relu激活函数relie激活函数对于小于零的数据并不会直接截取为0二是乘以一个小的系数这个系数为0.01。其函数图像如图10所示其计算公式如下 图10 relie激活函数代码实现
def relie(x):if x0:return xelse:return 0.01*x
11、ramp激活函数 如图11所示为ramp激活函数其计算公式如下 图11 ramp激活函数代码实现
def ramp(x):return x*(x0)0.1*x
12、leaky激活函数 如图12所示为leaky激活函数的图像它与relie函数有点像它的斜率系数要比relie激活函数要大其计算公式如下 图12 leaky激活函数代码实现如下
def leaky(x):if x0:return 0.1*xelse:return x
13、tanh激活函数 tanh激活函数的图像如图13所示它的取值范围是[-1,1]其计算公式如下 图13 tanh激活函数代码实现
def tanh(x):return 2.0/(1.0math.exp(-2.0*x))-1.0
14、gelu激活函数 gelu激活函数的图像如图14所示其计算公式如下 式中tanh为上文提到过的激活函数。 图14 gelu激活函数代码实现如下
def gelu(x):return 0.5*x*(1.0math.tanh(0.797885*x0.035677*math.pow(x,3.0)))
15、softplus激活函数 softplus激活函数的图像如图15所示其计算公式如下 图15 softplus激活函数代码实现
def softplus(x,threshold):if xthreshold:return xelif x-threshold:return math.exp(x)else:return math.log(math.exp(x)1.0) 16、plse激活函数 图16位plse激活函数的图像其计算公式如下 图16 plse激活函数代码实现
def plse(x):if x-4:return 0.01*(x4.0)elif x4:return 0.01*(x-4.0)1.0else:return 0.125*x0.5
17、lhtan激活函数 图17是lhtan激活函数的图像其计算公式为 图17 lhtan激活函数代码实现
def lhtan(x):if x0:return 0.001*xelif x1:return 0.001*(x-1.0)1.0else:return x
18、swish激活函数 图18是swish激活函数的图像其计算公式如下 式中,logistic为上文所提到的激活函数也叫sigmoid激活函数。 图18 swish激活函数代码实现
def logistic(x):return 1.0/(1.0math.exp(-x))def swish(x):return x*logistic(x)
19、mish激活函数 mish激活函数的图像如图19所示其计算公式如下 式中tanhsoftplus均为上文描述过的激活函数。 图19 mish激活函数代码实现如下
def softplus(x,threshold):if xthreshold:return xelif x-threshold:return math.exp(x)else:return math.log(math.exp(x)1.0)def tanh(x):return 2.0/(1.0math.exp(-2.0*x))-1.0def mish(x):return x*tanh(softplus(x,20.0))
20、hardmish激活函数 hardmish激活函数为mish激活函数的近似形式它的图像如图20所示其计算公式如下 图20 hardmish激活函数代码实现
def hardmish(x):if x0:return xelif x-2:return x*x*0.5xelse:return 0