python与Tensorflow

Tensorflow——tensorflow的激活函数

2018-10-30  本文已影响106人  SpareNoEfforts

目录

  1. sigmoid 函数
  2. tanh函数
  3. relu 函数
  4. softplus 函数
  5. leakrelu 函数
  6. ELU 函数
  7. SELU函数

1.sigmoid 函数

这是传统的神经网络中常用的激活函数之一。
公式:
S(x) = \frac{1}{{1 + {e^{ - x}}}}
图像:

2. tanh函数

tanh也是传统神经网络中比较常用的激活函数。
公式:
\tanh (x) = \frac{{\sinh x}}{{\cosh x}} = \frac{{{e^x} - {e^{ - x}}}}{{{e^x} + {e^{ - x}}}} = \frac{{1 - {e^{ - 2x}}}}{{1 + {e^{ - 2x}}}}
图像:

3. relu 函数

relu函数是目前用的最多也是最受欢迎的激活函数。
公式:
f(x) = \max (x,0)
图像:


由上图的函数图像可以知道,

5. leakrelu 函数

leakrelu函数是relu激活函数的改进版本,解决部分输入会落到硬饱和区,导致对应的权重无法更新的问题。

公式:
f(x) = \max (x,leak*x)
图像:


左边缩小方差,右边保持方差;方差整体还是缩小的,而均值得不到保障。

6. ELU 函数

公式:
ELU(x) = \left\{ {\begin{array}{*{20}{c}} x&{if(x > 0)}\\ {\alpha ({e^x} - 1)}&{if(x \le 0)} \end{array}} \right.
图像:

7. SELU函数

最近的自归一化网络中提出,函数和图像如下

公式:
SELU(x) = \lambda \left\{ {\begin{array}{*{20}{c}} x&{if(x > 0)}\\ {\alpha ({e^x} - 1)}&{if(x \le 0)} \end{array}} \right.\begin{array}{*{20}{c}} {}&{\lambda > 1} \end{array}
图像:
蓝色是:selu,橙色是:elu


左边缩小方差,右边放大方差,适当选取参数alpha和lambda,使得整体上保持方差与期望。如果选取:
lambda=1.0506,alpha=1.67326,那么可以验证如果输入的x是服从标准正态分布,那么SELU(x)的期望为0,方差为1.
上一篇下一篇

猜你喜欢

热点阅读