Sigmoid,tanh,Relu,Leaky ReLu,ELU,GeLu 激活函数理解
目录
- 1 神经网络为什么需要非线性激活函数?
- 2 Sigmoid
- 2.1缺陷
- 2.1.1 梯度消失
- 2.2.2 Output非zero-centered
- 3 Tanh
- 3.1 缺陷
- 4 ReLu
- 4.1 缺陷
- 5 Leaky ReLu
- 6 ELU
- 7 GeLu
- 7.1 基础知识回顾
- 7.1.1 正态分布
- 7.1.2 概率密度函数
- 7.1.3 累积分布函数
- 7.1.4 Φ(x)与erf(x)函数关系公式推导
- 8 GeLu激活函数
- 8.1 GeLu激活函数的直观理解
- 8.2 GeLu函数的公式推导
1 神经网络为什么需要非线性激活函数?
首先我们来看下线性和非线性函数
线性变换函数,比如:y=2xy=2xy=2x y=xy =x y=x
非线性变换函数,比如:y=2x2y=2x^2 y=2x2 y=cosxy=cosx y=cosx
非线性函数是指的一阶导数不为常数的函数
如果神经网络激活函数用线性函数,则网络的输出yyy还是xxx输入的一个线性函数,则模型无法表征非线性函数的输出
比如在第一层神经元:a1=w1x+b1a_1=w_1x+b_1a1=w1x+b1
第二层神经元:a2=w2a1+b2=w2(w1x+b1)+b2a_2=w_2a_1+b_2=w_2(w_1x+b_1)+b_2a2=w2a1+b2=w2(w1x+b1)+b2
=(w2w1)x+(w2b1+b2)=w′x+b′=(w_2w_1)x+(w_2b_1+b_2)=w^{'}x+b^{'}=(w2w1)x+(w2b1+b2)=w′x+b′
…
yyy的输出是xxx的线性关系,线性函数的组合还是线性函数,所以网络再深,最后输出的yyy还是xxx的线性函数。所以用非线性激活函数,神经网络理论上可以逼近任意函数。
那么对于我们常见的非线性激活函数,他们各自又有什么特点和缺陷?
2 Sigmoid
数学表达式:
f(x)=11+e−xf(x)= \frac {1}{1+e^{-x}} f(x)=1+e−x1
函数图形:
f(x)f(x)f(x)的导数数学表达式:f(x)′=f(x)(1−f(x))f(x)^{'}=f(x)(1-f(x)) f(x)′=f(x)(1−f(x))函数导数图形:
python实现如下:
import numpy as np
def sigmoid(x,derivative=False):if derivative == True:return x * (1 - x)return 1 / (1+np.exp(-x))
2.1缺陷
2.1.1 梯度消失
我们知道f(x)=sigmoid(x)f(x)=sigmoid(x)f(x)=sigmoid(x)其中maxf(x)′=1/4max f(x)^{'}=1/4maxf(x)′=1/4,根据BP算法中的链式法则,当网络很深的时候,小于1的数(1/4)累乘会趋向于0,如下图所示:
我们令θu(t)\theta_u(t)θu(t)表示第ttt层神经元uuu的残差,fv(x)f_v(x)fv(x)表示为神经元v经过激活函数f(x)f(x)f(x)的输出,则有如下公式:
∂θv(t−q)∂θu(t)={fv′(netv(t−1))wuvifq=1fv′(netv(t−q))∑l=1n∂θl(t−q+1)∂θ(t)wlvelse\frac{\partial\theta_v(t-q)}{\partial\theta_u(t)}=\begin{cases} f^{'}_v(net_v(t-1))w_{uv} \quad if \text{ }q=1 \\ f^{'}_v(net_v(t-q))\sum_{l=1}^n\frac{\partial\theta_l(t-q+1)}{\partial\theta(t)}w_{lv} \quad else \end{cases}∂θu(t)∂θv(t−q)={fv′(netv(t−1))wuvif q=1fv′(netv(t−q))∑l=1n∂θ(t)∂θl(t−q+1)wlvelse
则 ∣∂θ(t−q)∂θ(t)∣=∣∏m=1qWF(Net(t−m))∣≤(∣W∣maxNet{∣F′(Net)∣})q\begin{vmatrix} \frac{\partial\theta(t-q)}{\partial\theta(t)}\end{vmatrix}=\begin{vmatrix}\prod_{m=1}^qWF(Net(t-m))\end{vmatrix} \le (\begin{vmatrix}W\end{vmatrix}max_{Net}\{\begin{vmatrix}F^{'}(Net)\end{vmatrix}\})^q ∣∣∣∂θ(t)∂θ(t−q)∣∣∣=∣∣∏m=1qWF(Net(t−m))∣∣≤(∣∣W∣∣maxNet{∣∣F′(Net)∣∣})q
其中maxf′=1/4maxf^{'}=1/4maxf′=1/4;则当∣W∣<4\begin{vmatrix}W\end{vmatrix} < 4∣∣W∣∣<4时候,上式子将会是一个小于1的值的qqq次乘方,则模型越往前传播,梯度会越来越小,甚至接近0,出现梯度消失现象,网络中的参数没法学习更新的情况。
2.2.2 Output非zero-centered
sigmoid函数,将输出值映射到 (0,1)之间,都是正数,没有负数,这导致网络的学习表达能力将会受到限制。
3 Tanh
数学表达式:
f(x)=ex−e−xex+e−x=21+e−2x−1=2sigmoid(2x)−1f(x)= \frac {e^x-e^{-x}} {e^x+e^{-x}} = \frac {2}{1+e^{-2x}} -1=2sigmoid(2x)-1 f(x)=ex+e−xex−e−x=1+e−2x2−1=2sigmoid(2x)−1
从公式可以看出,tanh函数就是sigmoid函数的一个简单缩放,输出值在(-1,1)之间,输出是以0为中心的。
函数图形:
f(x)f(x)f(x)的导数数学表达式:
f(x)′=1−f(x)2f(x)^{'} = 1-f(x)^2 f(x)′=1−f(x)2
函数导数图形:
python实现如下:
def tanh(x, derivative=False):if devivative == True:return (1 - (x ** 2))return np.tanh(x)
3.1 缺陷
修正了sigmoid函数输出非0为中心的问题,但是还是不能解决梯度消失的问题
4 ReLu
ReLu(Rectified Linear Unit)数学表达式:
f(x)=max(0,x)f(x) = max(0,x) f(x)=max(0,x)
函数图形:
函数导数数学表达式:
f(x)′={1x>00x≤0f(x)^{'} = \begin {cases} 1 \quad x>0 \\ 0 \quad x \le 0 \end {cases} f(x)′={1x>00x≤0
函数导数图形:
这里需要说明的一点是,ReLu是非线性函数,因为导数不是一个常数,虽然看着简单,但是ReLu函数是分段函数,组合可以逼近任意函数。
ReLu函数,时间和空间复杂度最低,也不需要更高的指数运算,而且能够缓解梯度消失问题。
4.1 缺陷
ReLu函数的一个缺陷是会引入死亡问题。什么叫“死亡问题”?
首先让我们来回顾下网络模型更新过程中的BP算法:
如上图所示,假设我们用平方和损失函数: E=12∑j=1M(yj−tj)2E = \frac {1}{2} \sum_{j=1}^{M}(y_j-t_j)^2 E=21j=1∑M(yj−tj)2 其中t={t1,...,tm}t =\{t_1,...,t_m\}t={t1,...,tm}是一个M维度的向量,代表的是每个样本的真实label标签。yjy_jyj是输出预测的第jjj个输出label值。BP反向传播更新参数梯度如下公式:
step1 :计算神经元输出值的导数
∂E∂yj=yj−tj\frac {\partial E} {\partial y_j} = y_j-t_j∂yj∂E=yj−tj
step2: 计算神经元输入值的导数(通常称为“残差”)
∂E∂uj=∂E∂yj.∂yj∂uj=(yj−tj).f(x)′=(yj−tj).yj(1−yj)=ej\frac {\partial E}{\partial u_j}=\frac {\partial E} {\partial y_j}. \frac {\partial y_j} {\partial u_j}=(y_j-t_j).f(x)^{'}=(y_j-t_j).y_j(1-y_j)= e_j ∂uj∂E=∂yj∂E.∂uj∂yj=(yj−tj).f(x)′=(yj−tj).yj(1−yj)=ej
若f(x)f(x)f(x)为sigmoid激活函数
step3: 计算权重梯度
∂E∂wij′=∂E∂uj.∂uj∂wij′=ej.hi\frac {\partial E}{\partial w_{ij}^{'}}=\frac {\partial E} {\partial u_j}. \frac {\partial u_j} {\partial w_{ij}^{'}}=e_j.h_i ∂wij′∂E=∂uj∂E.∂wij′∂uj=ej.hi也就是第nnn层的第iii个神经元与第n+1n+1n+1层的第jjj个神经元连接的权重wij′w_{ij}^{'}wij′的每一次更新的梯度Δwij′\Delta w_{ij}^{'}Δwij′就是第n层的第iii个神经元的输出值乘以第n+1层的第jjj个神经元的残差
若输入x≤0x \le 0x≤0则经过ReLu激活函数后,神经元的输出为0,所谓的“死忙问题”,那么连接的该神经元的权重梯度为0,导致权重无法更新问题,神经元处于死忙状态。
5 Leaky ReLu
Rectifier Nonlinearities Improve Neural Network Acoustic Models
数学表达式如下:
f(x)={xx>0axx≤0f(x)= \begin {cases} x \quad x>0 \\ ax \quad x \le 0 \end {cases} f(x)={xx>0axx≤0
函数图形如下:
函数导数数学表达式:f(x)′={1x>0ax≤0f(x)^{'}=\begin {cases} 1 \quad x>0 \\ a \quad x \le 0 \end {cases} f(x)′={1x>0ax≤0
图像如下:
其中aaa,是一个很小的常数,避免神经元输出为0,缓解了ReLu的“死忙问题”,但是aaa是一个人工定的参数,不够灵活,所以,有一些工作,比如像Parametric ReLu把aaa当做一个参数进行训练,网络自适应学习得来。
6 ELU
FAST AND ACCURATE DEEP NETWORK LEARNING BY
EXPONENTIAL LINEAR UNITS
数学表达式:
f(x)={xx>0a(ex−1)x≤0f(x)= \begin {cases} x \quad x>0 \\ a(e^x-1) \quad x \le 0 \end {cases} f(x)={xx>0a(ex−1)x≤0
函数图形:
导数数学表达式:
f(x)′={1x>0a+f(x)x≤0f(x)^{'}= \begin {cases} 1 \quad x>0 \\ a+f(x) \quad x \le 0 \end {cases} f(x)′={1x>0a+f(x)x≤0
导数图形:
其中aaa是一个很小的常数。整体来看,Leaky ReLu,ELU以及其它的一些变体,都是在保证ReLu激活函数优势的情况下,缓解神经元"死忙"问题,从ELU公式可以看出,xxx小于0的部分,用一个指数变化形式,相对复杂一些,计算开销比Leaky ReLu要高,但输出更加平滑。
7 GeLu
7.1 基础知识回顾
7.1.1 正态分布
正态分布又名高斯分布,是一个非常常见的连续概率分布。若随机变量XXX服从一个位置参数μ\muμ、尺度参数σ\sigmaσ的正态分布,记为:X∼N(μ,σ2)X ∼ N(\mu,\sigma^2)X∼N(μ,σ2)则其概率密度函数为f(x)=1σ2πe−(x−μ)22σ2f(x)=\frac{1}{\sigma \sqrt{2\pi}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}f(x)=σ2π1e−2σ2(x−μ)2
正态分布的数学期望值μ\muμ等于位置参数,决定了分布的位置,其方差σ2\sigma^2σ2的开平方或标准差σ\sigmaσ等于尺度参数,决定了分布的幅度。我们通常说的标准正态分布是位置参数μ=0\mu=0μ=0,尺度参数σ2=1\sigma^2=1σ2=1的正态分布,下图展示了不同μ\muμ和σ\sigmaσ的正态分布图
拉普拉斯在误差分析实验中使用了正态分布,勒让德于1805年引入最小二乘法这一重要方法,而高斯则宣传在1794年就使用了该方法,并通过假设误差服从正态分布。
有几种不同的方法用来说明一个随机变量,最直观的方法是概率密度函数,这种方法能够表示随机变量每个取值多大的可能性。
7.1.2 概率密度函数
正态分布的概率密度函数均值为μ\muμ,方差为σ\sigmaσ是高斯函数的一个实例:
f(x;μ,σ)=1σ2πexp(−(x−μ)22σ2)f(x;\mu,\sigma)=\frac{1}{\sigma\sqrt{2\pi}}exp(-\frac{(x-\mu)^2}{2\sigma^2})f(x;μ,σ)=σ2π1exp(−2σ2(x−μ)2)如果一个随机变量XXX服从这个分布,我们写作X∼N(μ,σ2)X∼ N(\mu,\sigma^2)X∼N(μ,σ2)。如果μ=0\mu=0μ=0并且σ=1\sigma=1σ=1,这个分布被称为标准正态分布,这个分布简化为:f(x)=12πexp(−x22)f(x)=\frac{1}{\sqrt{2\pi}}exp(-\frac{x^2}{2})f(x)=2π1exp(−2x2),下图给出了不同参数的正态分布的函数图:
7.1.3 累积分布函数
累积分布函数是指随机变量XXX小于或等于xxx的概率,用概率密度函数表示为F(x;μ,σ)=1σ2π∫−∞xexp(−(t−μ)22σ2)dtF(x;\mu,\sigma)=\frac{1}{\sigma\sqrt{2\pi}}\int^x_{-\infty} exp(-\frac{{(t-\mu)}^2}{2\sigma^2})dtF(x;μ,σ)=σ2π1∫−∞xexp(−2σ2(t−μ)2)dt
标准正态分布的累积分布函数习惯上记为ΦΦΦ,它仅仅是μ=0\mu=0μ=0, σ=1\sigma=1σ=1时的值,
Φ(x)=F(x;0,1)=12π∫−∞xexp(−t22)dtΦ(x)=F(x;0,1)=\frac{1}{\sqrt{2\pi}}\int^x_{-\infty} exp(-\frac{{t}^2}{2})dtΦ(x)=F(x;0,1)=2π1∫−∞xexp(−2t2)dt
正态分布的累积分布函数能够由一个叫做误差函数的特殊函数表示:
Φ(z)=12[1+erf(z−μσ2)]Φ(z)=\frac{1}{2}\begin{bmatrix}1+erf(\frac{z-\mu}{\sigma\sqrt{2}}) \end{bmatrix}Φ(z)=21[1+erf(σ2z−μ)]
标准正态分布的累积分布函数习惯上记为Φ,它仅仅是指μ=0,σ=1\mu=0,\sigma=1μ=0,σ=1时的值,用误差函数表示的公式简化为:
Φ(z)=12[1+erf(z2)]Φ(z)=\frac{1}{2}\begin{bmatrix}1+erf(\frac{z}{\sqrt{2}}) \end{bmatrix}Φ(z)=21[1+erf(2z)]
其中erf(x)erf(x)erf(x),称为误差函数(也称为高斯误差函数),它的定义如下:
erf(x)=1π∫−xxe−t2dt=2π∫0xe−t2dterf(x)=\frac{1}{\sqrt\pi}\int^x_{-x}e^{-t^2}dt=\frac{2}{\sqrt\pi}\int_0^xe^{-t^2}dterf(x)=π1∫−xxe−t2dt=π2∫0xe−t2dt
累积分布函数图形如下:
7.1.4 Φ(x)与erf(x)函数关系公式推导
Φ(x)=12π∑−∞xe−t22dt=22π∑−∞xe−(t2)2dt2Φ(x)=\frac{1}{\sqrt{2\pi}}\sum_{-\infty}^xe^{-\frac{t^2}{2}}dt=\frac{\sqrt{2}}{\sqrt{2\pi}}\sum_{-\infty}^{x}e^{-(\frac{t}{\sqrt{2}})^2}d\frac{t}{\sqrt{2}}Φ(x)=2π1∑−∞xe−2t2dt=2π2∑−∞xe−(2t)2d2t
=1π∑−∞x2e−z2dz=1π∑−∞0e−z2dz+1π∑0x2e−z2dz=\frac{1}{\pi}\sum_{-\infty}^{\frac{x}{\sqrt{2}}}e^{-z^2}dz=\frac{1}{\pi}\sum_{-\infty}^0e^{-z^2}dz+\frac{1}{\pi}\sum_{0}^{\frac{x}{\sqrt{2}}}e^{-z^2}dz=π1∑−∞2xe−z2dz=π1∑−∞0e−z2dz+π1∑02xe−z2dz
=12+12erf(xπ)=12[1+erf(x2)]=\frac{1}{2}+\frac{1}{2}erf(\frac{x}{\sqrt{\pi}})=\frac{1}{2}\begin{bmatrix}1+erf(\frac{x}{\sqrt{2}})\end{bmatrix}=21+21erf(πx)=21[1+erf(2x)]
8 GeLu激活函数
GAUSSIAN ERROR LINEAR UNITS (GELUS)
论文中对比了GeLu激活函数在试验效果比ReLu,ELU都好,加上在bert中的应用,最近引起了广泛的关注。
函数数学公式:
f(x)=xP(X≤x)=xΦ(x)f(x)= xP(X \le x) = xΦ(x) f(x)=xP(X≤x)=xΦ(x)
其中 Φ(x)=12[1+erf(x2)](1)Φ(x)=\frac{1}{2}\begin{bmatrix}1+erf(\frac{x}{\sqrt{2}}) \end{bmatrix} { (1)}Φ(x)=21[1+erf(2x)](1)
X∼N(0,1),Φ(x)X∼N(0,1){,}Φ(x)X∼N(0,1),Φ(x)是标准正态分布的累积分布函数,论文提供的近似求解公式:
f(x)=xΦ(x)=0.5x(1+tanh[2/π(x+0.044715x3)])(2)f(x)=xΦ(x)=0.5x(1+tanh[ \sqrt{2/\pi}(x+0.044715x^3)]) {(2)} f(x)=xΦ(x)=0.5x(1+tanh[2/π(x+0.044715x3)])(2)
函数图形:
函数导数图形:
8.1 GeLu激活函数的直观理解
GeLu函数综合了dropout和ReLu的特色,从上面公式我们也可以看出,从ReLu, Leakly ReLu,ELU等,都是在对输入神经元乘以1或者0或者一个aaa常量进行变化,当x≥0x \ge 0x≥0的时候,以上三个函数都是乘以1作为神经元的输出,当x≤0x \le 0x≤0的时候,则乘以0或者aaa作为神经元的输出。
但GeLu是对xxx乘以标准正态分布的累积分布函数,根据xxx的输入,平滑的进行变化,随着x变小,Φ(x)Φ(x)Φ(x)变小,则神经元的输入xxx会以大概率的情况下“丢弃",整个过程相对ReLu激活函数更smooth
8.2 GeLu函数的公式推导
误差函数与标准正态分布的积分累积分布函数的关系为:Φ(x)=12[1+erf(x2)]Φ(x)=\frac{1}{2}\begin{bmatrix}1+erf(\frac{x}{\sqrt{2}}) \end{bmatrix}Φ(x)=21[1+erf(2x)]
从上述(1)和(2)公式可以看出,需要证明:
erf(x2)≈tanh(2π(x+ax3))erf(\frac{x}{\sqrt2}) \approx tanh(\sqrt{\frac{2}{\pi}}(x+ax^3))erf(2x)≈tanh(π2(x+ax3))其中a≈0.044715a \approx 0.044715a≈0.044715
证明如下:
泰勒级数
在数学上,对于一个实数或复数aaa领域上,以实数作为变量或以复数作为变量的函数,并且是无穷可微的函数f(x)f(x)f(x),它的泰勒级数是以下这种形式的幂级数:
f(x)=∑n=0∞f(n)(a)n!(x−a)nf(x)=\sum_{n=0}^{\infty}\frac{f^{(n)}(a)}{n!}(x-a)^nf(x)=n=0∑∞n!f(n)(a)(x−a)n这里n!n!n!表示nnn的阶乘,而f(n)(a)f^{(n)}(a)f(n)(a)表示函数fff在点aaa处的nnn阶导数,如果a=0a=0a=0,也可以把这个级数称为麦克劳林级数。
指数函数exe^xex的等价幂级数:
ex=1+∑n=1∞xnn!=1+x+x22!+x33!+x44!+...e^x=1+\sum_{n=1}^{\infty}\frac{x^n}{n!}=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\frac{x^4}{4!}+...ex=1+n=1∑∞n!xn=1+x+2!x2+3!x3+4!x4+...
tanh(x)tanh(x)tanh(x)的泰勒级数:tanh(x)=x−x33+o(x3)tanh(x)=x-\frac{x^3}{3}+o(x^3)tanh(x)=x−3x3+o(x3)
erf(x)erf(x)erf(x)的泰勒级数:erf(x)=2π(x−x33)+o(x3)erf(x)=\frac{2}{\sqrt{\pi}}(x-\frac{x^3}{3})+o(x^3) erf(x)=π2(x−3x3)+o(x3)
tanh(2π(x+ax3))=2π(x+(a−23π)x3)+o(x3)(3) tanh(\sqrt{\frac{2}{\pi}}(x+ax^3)) = \sqrt{\frac{2}{\pi}}(x+(a-\frac{2}{3\pi})x^3)+o(x^3) \text{ }\text{ }\text{(3) }tanh(π2(x+ax3))=π2(x+(a−3π2)x3)+o(x3) (3)
erf(x2)=2π(x−x36)+o(x3)(4) erf(\frac{x}{\sqrt{2}})=\sqrt{\frac{2}{\pi}}(x-\frac{x^3}{6})+o(x^3) \text{ }\text{ }\text{(4) }erf(2x)=π2(x−6x3)+o(x3) (4)
令公式(3)和公式(4)相等,则a≈0.04553992412a \approx 0.04553992412a≈0.04553992412,与论文中aaa为0.044715十分接近。
bert中的glue函数实现如下:
def gelu(x):cdf = 0.5 * (1.0 + tf.tanh((np.sqrt(2 / np.pi) * (x + 0.044715 * tf.pow(x,3))))return x * cdf
说明:本文图片素材来源Casper Hansen博文以及wikipedia
Sigmoid,tanh,Relu,Leaky ReLu,ELU,GeLu 激活函数理解相关推荐
- 激活函数总结sigmoid,tanh,relu,Leaky ReLU,RRelu,ELU,PRelu,SELU,swish
本文总结深度学习的损失函数及其优缺点. 激活函数是深度学习模型的重要成分,目的是将线性输入转换为非线性.常见的激活函数有sigmoid,tanh,ReLU等 1.sigmoid Sigmoid 非线性 ...
- [Pytorch 常用函数] 激活函数Relu, Leaky Relu
修正线性单元(Rectified linear unit,ReLU)是神经网络中最常用的激活函数.它保留了 step 函数的生物学启发(只有输入超出阈值时神经元才激活),不过当输入为正的时候,导数不为 ...
- 【卷积神经网络】12、激活函数 | Tanh / Sigmoid / ReLU / Leaky ReLU / ELU / SiLU / Mish
文章目录 一.Tanh 二.Sigmoid 三.ReLU 四.Leaky ReLU 五.ELU 六.SiLU 七.Mish 本文主要介绍卷积神经网络中常用的激活函数及其各自的优缺点 最简单的激活函数被 ...
- 激活函数详解(ReLU/Leaky ReLU/ELU/SELU/Swish/Maxout/Sigmoid/tanh)
神经网络中使用激活函数来加入非线性因素,提高模型的表达能力. ReLU(Rectified Linear Unit,修正线性单元) 形式如下: ReLU公式近似推导:: 下面解释上述公式中的softp ...
- 【深度学习】激活函数:原理+常见激活函数(Sigmoid\Tanh\ReLU\Leaky ReLU\Softmax)
首先需要知道为什么要引入激活函数:激活函数是用来加入非线性因素的,因为线性模型的表达能力不够.引入非线性激活函数,可使深层神经网络的表达能力更加强大. 在深度学习中,线性模型只需要简单的全连接层就能实 ...
- 深度学习中的一些常见的激活函数集合(含公式与导数的推导)sigmoid, relu, leaky relu, elu, numpy实现
文章目录 Sigmoid(x) 双曲正切 线性整流函数 rectified linear unit (ReLu) PReLU(Parametric Rectified Linear Unit) Lea ...
- Python画Sigmoid、Relu、Softmax、Tanh、Leaky relu等函数(1)
看鱼书有感,记录一下: 批处理的好处及小批量概念(2) Python(Numpy)实现均方差.交叉熵损失函数等(3) 纯Python实现:函数求导切线图.求偏导.梯度下降法(4) 纯Python实现反 ...
- Relu函数,sigmoid函数,leaky Relu
Relu函数: y=max(0,x) 蓝色为Relu函数,红色曲线为Relu函数的导数. 优点: 1.在正区间内不会发生梯度消失问题, 2. 函数比较简单,求导计算复杂度较低. 3. 梯度能维持在不错 ...
- 深度学习- 激活函数总结(Sigmoid, Tanh, Relu, leaky Relu, PReLU, Maxout, ELU, Softmax,交叉熵函数)
激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题 激活函数通常有以下性质 – 非线性 – 可微性 – 单调性 –
最新文章
- C Implement a string class with basic functionality
- 用Fiddler抓取手机APP数据包
- JSP EL表达式 格式化日期
- 到底什么是hash partition?
- 如何处理 Hybris Accelerator css style 显示不正确的问题
- poj3050 穷竭搜索 挑战程序设计竞赛
- CSP-S/J2019认证相关内容
- 怎么处理table 与 form绑定的问题(现象:点击取消后 修改的值还是在table显示)
- 【Proteus仿真8086】往8086 内存中写入数据
- 在HP-UX上安装Oracle11.2.0.3修改maxfiles
- sun的java认证考试_Sun Java认证考试科目
- 梦幻古龙 服务器名称修改,【鬼族大话西游】(梦幻古龙改版)虚拟机镜像服务端+配套客户端+GM工具+启动教程...
- 拼多多砍价小程序源码-带搭建教程-可开流量主
- (转)交替方向乘子法(ADMM)的原理和流程的白话总结
- ddos应急处理_来看看DDoS攻击应急预案
- 第三方平台可以通过微信公众平台素材管理接口实现同步了
- [附源码]计算机毕业设计JAVA停车场管理系统
- OPC UA IO模块对工业物联网的影响
- matlab画图颜色属性
- 解决IE不能上网,火狐能上网 谷歌和IE浏览器都上不了网只能火狐上怎么办?