当前位置:   article > 正文

神经网络激活函数及其Katex公式代码模板合集_katex 除号

katex 除号

激活函数

| 图源1图源2

  KaTeX 是一个快速为网站呈现 Tex 科学公式的简单易用的库,通过它我们可以方便快速的书写公式。KaTeX由关键词(标签)和其作用的参数所构成,每个关键词(标签)参数的作用域都只有一个字符如果想要作用到多个字符,必须用{}将其括起来,不然只会作用到第一个字符。在书写时,代码应当放在$ $之间,如果想要公式居中,则把代码放在$$ $$之间。本文借着学习KaTeX的契机,把神经网络中激活函数都整理了一遍,包括其KaTeX代码,用途性能和曲线。文中做成的公式模板,可以直接迁移到需要类似公式的地方,只需修改一些字符,而不用重新写公式。

  主要参考资料:KaTex文档,邱锡鹏教授的《神经网络与深度学习》

copyright © 意疏:https://blog.csdn.net/sinat_35907936/article/details/114823102


Sigmoid系激活函数


  • Step函数

  起初的感知机模型用的阶跃函数做的非线性激活函数。它可以增加模型的非线性,但在0处不可导,并且其余地方导数全为零,无法通过反向传播更新权值。现在基本不使用。

$$
\tag 1
f(x) = \begin{dcases}
0&x \le 0\\
1&x>0
\end{dcases}
$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

f ( x ) = { 0 x ≤ 0 1 x > 0 (1) \tag 1 f(x) =

\begin{dcases} 0&x \le 0\\ 1&x>0 \end{dcases}
f(x)={01x0x>0(1)

  敲黑板,记笔记

  \begin{}\end{}组合是用来表示阵列,数组,分支等有几行几列的式子的,如下图所示,图源。具体什么形式,由其{}中的关键词决定,列与列之间用&连接,行与行之间用\\连接,比如 a b c d

abcd
acbd $\begin{matrix} a&b \\ c&d\end{matrix}$。公式标号用\tag。小于等于用\le

在这里插入图片描述
在这里插入图片描述

  • Sigmoid函数

  Sigmoid函数又叫Logistic函数,它来源于一个人口统计模型。它把实数域的输入映射成了(0,1),可以直接看成是概率分布,如在逻辑回归中,就直接把它的输出视为正类的概率。它形状与阶跃函数类似,但是它处处可导,能够通过反向传播由后往前传递梯度,不过它两端饱和处导数接近零,且导数最大值也只有1/4,容易出现梯度消失。最后,值得一提的是,它类似阶跃的特性可以用于门控,控制其他神经元输出信息的量,如在LSTM中就用的sigmoid来控制记忆或者遗忘的信息的多少。
Sigmoid函数及导数

$$
\tag{2}
\sigma (x)=\cfrac 1 {1+e^{-x}}
$$

$$
\tag{3}
1-\sigma (x)=\cfrac {e^{-x}} {1+e^{-x}}
$$

$$
\tag{4}
\acute{\sigma(x)}=\sigma (x)*(1-\sigma(x)) 
$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

σ ( x ) = 1 1 + e − x (2) \tag{2} \sigma (x)=\cfrac 1 {1+e^{-x}} σ(x)=1+ex1(2)

1 − σ ( x ) = e − x 1 + e − x (3) \tag{3} 1-\sigma (x)=\cfrac {e^{-x}} {1+e^{-x}} 1σ(x)=1+exex(3)

σ ( x ) ˊ = σ ( x ) ∗ ( 1 − σ ( x ) ) (4) \tag{4} \acute{\sigma(x)}=\sigma (x)*(1-\sigma(x)) σ(x)ˊ=σ(x)(1σ(x))(4)

  敲黑板,记笔记

  KaTex里的除号可以用下表中的语法表示,图源frac来自于单词Fractions,意思是分数。笔者觉得知道\frac\cfrac就基本足够了。而且从效果上来讲,后者只是字号大了一些。导数中间的'\acute\sigma表示 σ \sigma σ

在这里插入图片描述

  • tanh

  tanh函数可以通过sigmoid函数平移和伸缩而得到,因此与sigmoid函数有很相似的性质。不过它的值域在(-1,1),输出均值为零,即是零中心化的输出,会降低后一层神经元输入的偏置偏移,有利于收敛。tanh在循环神经网络中常作为激活函数。

在这里插入图片描述

$$
\tag 5
f(x) = 2\sigma(2x)-1
$$

$$
\tag 6
f(x)
=\cfrac {sinh(x)} {cosh(h)}
=\cfrac {e^x-e^{-x}} {e^x+e^{-x}}
$$


$$
\tag 7
\acute {f(x)}
=sech^2(x)=1-f(x)^2
$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

f ( x ) = 2 σ ( 2 x ) − 1 (5) \tag 5 f(x) = 2\sigma(2x)-1 f(x)=2σ(2x)1(5)

f ( x ) = s i n h ( x ) c o s h ( h ) = e x − e − x e x + e − x (6) \tag 6 f(x) =\cfrac {sinh(x)} {cosh(h)} =\cfrac {e^x-e^{-x}} {e^x+e^{-x}} f(x)=cosh(h)sinh(x)=ex+exexex(6)

f ( x ) ˊ = s e c h 2 ( x ) = 1 − f ( x ) 2 (7) \tag 7 \acute {f(x)} =sech^2(x)=1-f(x)^2 f(x)ˊ=sech2(x)=1f(x)2(7)

copyright © 意疏:https://blog.csdn.net/sinat_35907936/article/details/114823102


ReLU系激活函数


  • ReLU

  修正线性单元,最常用的激活函数之一。输入为负时,完全抑制,输入为正时,原样输出。梯度为定值,计算效率高。每次都有神经元的输出被抑制,使得网络连接稀疏的,不过在训练过程中如果某些神经元一直被抑制,会导致这些神经元“死亡”。另外,它的输出是非零中心化的,给后一层的神经元输入引入偏置偏移,影响梯度下降的效率。估计BN就是用来解决这个问题的。

在这里插入图片描述

$$ 
\tag 8
f(x) = max(0,x)
$$

$$
\tag 9
f(x)=
\begin{dcases}
   0 & x < 0 \\
   x & x \ge 0 
\end{dcases}
$$

$$
\tag 10
\acute {f(x)}=
\begin{dcases}
   0 & x < 0 \\
   1 & x \ge 0 
\end{dcases}
$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

f ( x ) = m a x ( 0 , x ) (8) \tag 8 f(x) = max(0,x) f(x)=max(0,x)(8)

f ( x ) = { 0 x < 0 x x ≥ 0 (9) \tag 9 f(x)=

\begin{dcases} 0 & x < 0 \\ x & x \ge 0 \end{dcases}
f(x)={0xx<0x0(9)

f ( x ) ˊ = { 0 x < 0 1 x ≥ 0 (10) \tag {10} \acute {f(x)}=

\begin{dcases} 0 & x < 0 \\ 1 & x \ge 0 \end{dcases}
f(x)ˊ={01x<0x0(10)

  • ReLU变种

  ReLU的变种主要是在负半轴保留了一定的斜率,这样其它在负半轴也会存在梯度,使得所有神经元都能有机会更新参数而避免“死亡”。LeakeyReLU,PReLU,RReLU三者在形式上完全相同,负半轴都是线性函数,只是斜率取值方式不相同。ELU负半轴是用一个指数函数代替,处处可导,但计算复杂度比线性函数高。softplus函数用对数和指数的复合来近似ReLU,处处可导,但计算复杂度要高不少。在ReLU变种中,用的最多的应该是LeakeyReLU

在这里插入图片描述

$$
\tag {11}
LeakyReLU(x) = \begin{dcases}
x&x>0\\
\gamma x&x \le 0
\end{dcases}
= max(x,0) + \gamma  min(x,0)
$$

$$
\tag {12}
LeakyReLU = max(x,\gamma x)
$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

L e a k y R e L U ( x ) = { x x > 0 γ x x ≤ 0 = m a x ( x , 0 ) + γ m i n ( x , 0 ) (11) \tag {11} LeakyReLU(x) =

\begin{dcases} x&x>0\\ \gamma x&x \le 0 \end{dcases}
= max(x,0) + \gamma min(x,0) LeakyReLU(x)={xγxx>0x0=max(x,0)+γmin(x,0)(11)

  由于 γ \gamma γ一般是小于1的常数,所以上式可以统一为:简单的maxout单元。最常用的激活函数之一
L e a k y R e L U = m a x ( x , γ x ) (12) \tag {12} LeakyReLU = max(x,\gamma x) LeakyReLU=max(x,γx)(12)

$$
\tag {13}
PReLU(x) = \begin{dcases}
x & x>0 \\
\alpha x & x \le 0
\end{dcases}
=max(x,0)+\alpha  min(x,0)
$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

  PReLU与LeakyReLU形式完全一样,只是 α \alpha α是一个可学习的参数, P是parameter的首字母。我们可以给每个神经元不同的 α \alpha α值,也可以让所有神经元共享一个 α \alpha α值。
P R e L U ( x ) = { x x > 0 α x x ≤ 0 = m a x ( x , 0 ) + α m i n ( x , 0 ) (13) \tag {13} PReLU(x) =

\begin{dcases} x & x>0 \\ \alpha x & x \le 0 \end{dcases}
=max(x,0)+\alpha min(x,0) PReLU(x)={xαxx>0x0=max(x,0)+αmin(x,0)(13)

$$
\tag {14}
RReLU(x) = \begin{dcases}
x & x>0\\
\beta x & x \le 0
\end{dcases}
=max(0,x) + \beta min(0,x) 
$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

  R是random的首字母。 β \beta β是一定范围内的随机数。平常用的比较少,可以了解。
R R e L U ( x ) = { x x > 0 β x x ≤ 0 = m a x ( 0 , x ) + β m i n ( 0 , x ) (14) \tag {14} RReLU(x) =

\begin{dcases} x & x>0\\ \beta x & x \le 0 \end{dcases}
=max(0,x) + \beta min(0,x) RReLU(x)={xβxx>0x0=max(0,x)+βmin(0,x)(14)

 $$
\tag {15}
ELU(x) = \begin{dcases}
x&x>0\\
\mu (e^x - 1) & x \le 0
\end{dcases}
$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

   μ \mu μ超参数,它决定了在 x ≤ 0 x \le 0 x0时的饱和曲线,我们可以通过调整 μ \mu μ来使得激活函数的输出均值在0附近,即零中心化。平常用的比较少,可以了解。
E L U ( x ) = { x x > 0 μ ( e x − 1 ) x ≤ 0 (15) \tag {15} ELU(x) =

\begin{dcases} x&x>0\\ \mu (e^x - 1) & x \le 0 \end{dcases}
ELU(x)={xμ(ex1)x>0x0(15)

$$
\tag {16}
Softplus(x) = ln(1+e^x)
$$
  • 1
  • 2
  • 3
  • 4

  Softplus是ReLU的平滑近似,从式(16)中我们可以看出,当输入趋于负无穷的时候,函数输出趋近 l n ( 1 ) = 0 ln(1)=0 ln(1)=0,当输入趋于正无穷的时候,函数输出趋近与 l n ( e x ) = x ln(e^x)=x ln(ex)=x
S o f t p l u s ( x ) = l n ( 1 + e x ) (16) \tag {16} Softplus(x) = ln(1+e^x) Softplus(x)=ln(1+ex)(16)

  敲黑板,记笔记

  上述公式中涉及到一些希腊字母,如 β α γ μ \beta \alpha \gamma \mu βαγμ$\beta \alpha \gamma \mu$,他们由\+字母名构成,如下图所示,图源
在这里插入图片描述

copyright © 意疏


其他激活函数


  • Maxout

  上述的激活函数都是对前一层单个神经元的输出做非线性映射n->n,但是Maxout是对多个输出先做线性变换Z,然后取变换后的最大值作为maxout的输出n->1,结构图如下图所示,图源。maxout的非线性体现在求最大值处。它包含很多参数,平常用的较少。

在这里插入图片描述

$$
\tag {17}
Z_i=\bold W_i^T \bold X+b_i
$$

$$
\tag {18}
maxout(x) =
\max_{i\in[1,n]} (Z_i)
$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Z i = W i T X + b i (17) \tag {17} Z_i=\bold W_i^T \bold X+b_i Zi=WiTX+bi(17)

m a x o u t ( x ) = max ⁡ i ∈ [ 1 , n ] ( Z i ) (18) \tag {18} maxout(x) = \max_{i\in[1,n]} (Z_i) maxout(x)=i[1,n]max(Zi)(18)

  maxout的每一个线性变换都有n+1个参数,表征一个n维超平面。多个超平面上方的交集是一个凸集,其下界就是maxout函数,是一个分段的凸函数。通过改变Z,它可以近似表示任何已知的凸函数。在一维时,maxout函数由多条直线分段拼接而成,如下图所示,图源,显然,这一个分成三段的凸函数。

在这里插入图片描述
  敲黑板,记笔记

  上述属于符号 ∈ \in ,在KaTex被归纳到了关系运算符中,其他的关系运算符,相似符号 ∼ \sim $\sim$、远小于号 ≪ \ll $\ll$,约等于号 ≈ \thickapprox $\thickapprox$等也可以在那里找到。

  • Swish

  Swish由线性函数 x x x和sigmoid函数构成,通过可学习参数或者超参数 β \beta β来调控函数的形态,当 β = 0 \beta=0 β=0时,Swish退变成线性函数 1 2 x \cfrac 1 2 x 21x,当 β \beta β趋近于正无穷时,Swish将非常近似ReLU,取适中的值时,就类似于ReLU变种,如下图所示,图源。由于Sigmoid函数有门控作用,所以swish是一种自门控激活函数。

$$
\tag {19}
Swish(x) = x \sigma(\beta x)
$$
  • 1
  • 2
  • 3
  • 4

S w i s h ( x ) = x σ ( β x ) (19) \tag {19} Swish(x) = x \sigma(\beta x) Swish(x)=xσ(βx)(19)

在这里插入图片描述

copyright © 意疏:https://blog.csdn.net/sinat_35907936/article/details/114823102


参考


https://katex.org/docs/supported.html

https://nndl.github.io/nndl-book.pdf

https://towardsdatascience.com/comprehensive-introduction-to-neural-network-architecture-c08c6d8e5d98

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/337006
推荐阅读
相关标签
  

闽ICP备14008679号