标签:针对 表达式 通过 设置 Alexnet 算法 学习 rac 开放
Sigmoid
Sigmoid 函数也叫 Logistic 函数,定义为
它的一个优良特性就是能够把 ?? ∈ ?? 的输入压缩到 ??∈[0,1]区间,这个区间的数值在机器学习常用来表示以下含义:
Sigmoid 函数连续可导,其函数图如下,相对于阶跃函数,可以直接利用梯度下降算法优化网络参数,应用广泛。
阶跃函数:
不足:在输入值较大或较小时,易出现梯度值接近于 0 的现象,称为梯度弥散现象,网络参数长时间得不到更新,很难训练较深层次的网络模型。
在 TensorFlow 中,可以通过 tf.nn.sigmoid 实现 Sigmoid 函数
ReLU(Rectified Linear Unit,修正线性单元)
ReLU 针对 sigmoid 的不足做出了改进。2012 年提出的 8 层 AlexNet 首次采用了 ReLU 作为激活函数,使得网络参数达到了 8 层。它的定义为:
函数图如下:
可以看到其对于小于 0 的值全部抑制为0,对于正数则直接输出,这种单边抑制来源于生物学。
不足:ReLU 函数在 x < 0 时梯度值恒为 0 ,也可能会造成梯度弥散现象
在 TensorFlow 中,可以通过 tf.nn.relu 实现 ReLU 函数
LeakyReLU
为了克服 ReLU 的问题,提出了 LeakyReLU 函数,其表达式为:
其中 p 为用户自行设置的某较小数值的超参数,如 0.02 等。当 p = 0 时,LeakyReLU 函数退化为 ReLU 函数;当 p ≠ 0时,x < 0 能够获得较小的梯度值 p,从而避免出现梯度弥散现象。
函数图如下:
在 TensorFlow 中,可以通过 tf.nn.leaky_relu 实现 LeakyReLU 函数
Tanh
Tanh 函数能够将 x ∈ R 的输入压缩到 [-1,1] 区间,定义为:
可以看到 tanh 激活函数可通过 Sigmoid 函数缩放平移后实现,函数图如下:
在 TensorFlow 中,可以通过 tf.nn.tanh 实现 tanh 函数
标签:针对 表达式 通过 设置 Alexnet 算法 学习 rac 开放
原文地址:https://www.cnblogs.com/alivinfer/p/12818917.html