教材
https://www.bilibili.com/video/BV13b4y1177W
符号 | 含义 |
---|---|
\(d\) | 维数 |
\(b\) | 偏置项 |
1.神经元模型
\(z=\sum_{i=1}^{d}w_ix_i +b = w^T x +b\)
2.激活函数
性质
连续并可导(允许少数点上不可导)的非线性函数。
可导的激活函数可以直接利用数值优化的方法来学习网络参数。
激活函数及其导函数要尽可能的简单
有利于提高网络计算效率。
激活函数的导函数的值域要在一个合适的区间内
不能太大也不能太小,否则会影响训练的效率和稳定性。
单调递增
常见激活函数
S型函数
logistic函数
\(\sigma(x)=\frac{1}{1+e^{-x}}\)
tanh函数
\(tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} ,值域[-1,1]\)
\(tanh(x)=2\sigma(2x)-1\)
性质:
都是饱和函数-两端导数接近于0,中间是类似线性的直线
Tanh函数是零中心化的,而logistic函数的输出恒大于0
\(\color{red}{非零中心化的输出会使得其后一层的神经元的输入发生偏置偏移(bias\ shift),并进一步使得梯度下降的收敛速度变慢。}\)
\(比如y=f(w\cdot \sigma(x))\)
\(求导\frac{\partial y}{\partial w}=f^{'}\cdot \sigma(x),f^{'}是标量,而sigma(x)是高维的,意味着所有分量都要么一起>0.要么一起<0,优化的时候会变成之字形的优化路线,优化效率差\)
\(方法1.归一化到0中心,2.增加偏置项\sigma(x)+b\)
斜坡函数
ReLU函数-修正的线性单元
\(ReLU(x)=max(0,x)\)
性质
计算上更加高效
生物学合理性
单侧抑制、宽兴奋边界
在一定程度上缓解梯度消失问题
死亡ReLU问题(Dying ReLU Problem)
函数的左边输出都是0,如果参数的Relu=0,那么梯度=0,没法更新参数了,一直处于不激活状态
解决方法,初始化的时候尽量小心,或者用LeakyRelu
Leaky Relu
\(LeakyRelu(x)=\begin{cases} x & x >0\\ \gamma x & x\le 0\\ \end{cases}=max(0,x)+\gamma min(0,x)\)
ELU-近似的零中心化的非线性函数
\(ELU(x)=\begin{cases} x & x >0\\ \gamma(e^x-1) & x\le 0\\ \end{cases}=max(0,x)+min(0,\gamma(e^x-1) )\)
softplus
\(Softplus(x)=log(1+e^x)\)
复合函数
Swish函数:张一红自门控(Self-Gated)激活函数
\(swish(x)=x\sigma(\beta x),\beta 允许多少信息通过,\beta越大,越逼近Relu,\beta=0就是线性函数\)
高斯误差线性单元 (Gaussina Error Linear Unit,GELU)
和Swish函数比较类似
\(GELU(x)=xP(X\le x)\)
\(其中P(X \le x)是高斯分布N(\mu,\sigma^2 )的累积分布函数\)
\(其中\mu,\sigma为超参数,一般设\mu = 0,\sigma = 1即可\)
没有解析函数,用其他函数近似
由于高斯分布的累积分布函数为S型函数,因此GELU可以用Tanh函数或Logistic函数来近似
\(GELU(x)\approx 0.5 x(1+tanh(\sqrt{\frac{2}{\pi}}(x+0.044715 x^3)))\)
\(GELU(x)\approx x\sigma(1.702 x)\)
简单总结
激活函数 | 函数 | 导数 |
---|---|---|
Logistic函数 | \(f(x)=\frac{1}{1+e^{-x}}\) | \(f'(x)=f(x)(1-f(x))\) |
Tanh函数 | \(f(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}\) | \(f'(x)=1-f(x)^2\) |
ReLU函数 | \(max(0,x)\) | \(f'(x)=I(x>0)\) |
ELU函数 | \(max(0,x)+min(0,\gamma(e^x-1) )\) | \(f'(x)=I(x>0)+I(x\le 0)\cdot \gamma e^x\) |
SoftPlus | \(f(x)=log(1+e^x)\) | \(f'(x)=\frac{1}{1+e^{-x}}\) |