Leaky ReLU是为解决“ReLU死亡”问题的尝试。ReLU中当x<0时,函数值为0。而Leaky ReLU则是给出一个很小的负数梯度值,比如0.01。所以其函数公式为 有些研究者的论文指出这个激活函数表现很不错,但是其效果并不是很稳定。Kaiming He等人在2015年发布的论文Delving Deep into Rectifiers中介绍了一种新方法PReLU,把负区间上的斜率当做每个神经元中的一个参数。然而该激活函数在在不同任务中均有益处的一致性并没有特别清晰。
常用的梯度下降方法有以下3种:
(1).批量梯度下降法(Batch Gradient Descent)
批量梯度下降法,是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新,假设一共有N组样本,即每个迭代周期中进行N次前向预测、梯度计算及参数更新的迭代,也是上一小节中用到的方法。在训练数据比较多时,这个过程比较慢。
(2).随机梯度下降法(Stochastic Gradient Descent)
随机梯度下降法与批量梯度下降法类似,只是在一个迭代周期中没有遍历所有训练数据,而是随机选取一个样本来计算,即每个迭代周期只进行一次前向预测、梯度计算及参数更新的迭代。
通常而言,批量梯度下降法训练速度慢,但收敛速度快;而随机梯度下降法训练速度快,但收敛速度慢,且很不能不是最优解。而小批量梯度下降法是对这两个方法的折中。
(3).小批量梯度下降法(Mini-batch Gradient Descent)
小批量梯度下降法中,假设有N组样本,将其分为m个小批量样本,对每组小批量样本,有多少样本就进行多少次前向预测及梯度计算,但参数更新只进行一次。将上一下节中的批量梯度下降改为小批量梯度下降,小批量数据大小设为30,改进后的计算结果如下。
02/23/18 09:35:52 after epoch 1, precision ratio is 89.810000
02/23/18 09:36:32 after epoch 2, precision ratio is 91.190000
……
02/23/18 09:53:13 after epoch 26, precision ratio is 95.480000
02/23/18 09:53:53 after epoch 27, precision ratio is 95.450000
编程实现
python版本:https://pan.baidu.com/s/1qZLJ7Gg, 04ModifyFullConnectNeuralNetwork\Python gai02