深度学习
常见的几种激活函数及python实现 ...
激活函数
- 深度学习
- 前言
- 一、激活函数作用
- 二、常见的四种激活函数
- 2.1 Sigmoid函数
- 2.2 Tanh(双曲正切)函数
- 2.3 ReLU-修正线性单元
- 2.3 Softmax函数
- 总结
前言
在这篇文章中我将介绍几种常见的激活函数及作用
一、激活函数作用
激活函数的作用在于提供网络的非线性建模能力。如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机(Perceptron)。
如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
二、常见的四种激活函数
2.1 Sigmoid函数
Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间 。公式如下:
其python代码为:
import numpy as np
def sigmoid(z):
return 1 / (1 + np.exp(-z))
函数图像为:
2.2 Tanh(双曲正切)函数
Tanh是双曲函数中的一个,Tanh()为双曲正切。在数学中,双曲正切"Tanh"是由基本双曲函数双曲正弦和双曲余弦推导而来。公式如下:
优点:
1)比Sigmoid函数收敛速度更快。
2)输出以0为中心。
缺点:
1)由于饱和性产生的梯度消失
其python代码为:
import math
import numpy as np
def tanh(x):
return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))
函数图像为:
2.3 ReLU-修正线性单元
线性整流函数,又称为修正性线性单元,ReLU是一个分段函数,其公式:为:f(x)=max(0,x),
优点:
1)比Sigmoid函数收敛速度更快。
2)输出以0为中心。
缺点:
1)由于饱和性产生的梯度消失
其python代码为:
def relu(x):
return np.maximum(0,x)
其函数图像为:
2.3 Softmax函数
softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。
其公
式为:
其python代码为:
def softmax(z):
c=np.max(z)
exp_z=np.exp(z-c)
return exp_z/np.sum(exp_z)
其函数图像为:
总结
期待大家和我交流,留言或者私信,一起学习,一起进步!