随机失活-pytorch
pytorch
提供了多种失活函数实现
下面首先介绍Dropout
和Dropout2d
的使用,然后通过LeNet-5
模型进行cifar-10
的训练
pytorch
提供了多种失活函数实现
下面首先介绍Dropout
和Dropout2d
的使用,然后通过LeNet-5
模型进行cifar-10
的训练
使用前馈神经网络进行检测,测试集的检测率总是低于训练集,尤其是训练集数量不大的情况下,原因在于神经网络在训练过程中不断调整参数以拟合训练数据,在此过程中也学习了训练集噪声,导致泛化能力减弱
随时失活(dropout)是一种正则化方法,其动机来自于进化中的性别作用理论(a theory of the role of sex in evolution
),它通过训练多个不同网络模型,模拟模型组合的方式来提高网络性能,防止网络过拟合
主要内容如下:
Nesterov
加速梯度(Nesterov's Accelerated Gradient
,简称NAG
)是梯度下降的一种优化方法,其收敛速度比动量更新方法更快,收敛曲线更加稳定
动量(momentum
)更新是梯度下降的一种优化方法,它能够加快损失函数收敛速度(converge rate
)
在标准随机梯度下降过程中,每次更新使用固定学习率(learning rate
),迭代一定次数后损失值不再下降,一种解释是因为权重在最优点周围打转,如果能够在迭代过程中减小学习率,就能够更加接近最优点,实现更高的检测精度
学习率退火(annealing the learning rate
)属于优化策略的一种,有3
种方式实现学习率随时间下降
step decay
)exponential decay
)1/t
衰减(1/t decay
)下面介绍这3
种学习率退火实现,然后用numpy
编程进行验证