1. 列举几个梯度下降的方法
2. dropout为何能防止过拟合?
3. dropout 是否用在测试集上
4. BN解决了什么问题?
5. 请简述BN的实现流程
1. 列举几个梯度下降的方法
(1)Batch Gradient Descent、Stochastic Gradient Descent、 Mini-batch Gradient Descent
Batch Gradient Descent:对所有样本计算梯度后求平均,更新权重参数,计算效率低,受显存、内存限制
Stochastic Gradient Descent:对每个样本计算梯度,更新权重参数,更新速度快,梯度下降方向和大小出现剧烈的波动
Mini-batch Gradient Descent:小批量样本计算更新梯度,综合以上两种策略的优点,符合工程实际。然而小批量下降还是会有抖动情况
Momentum动量算法、Nesterov Accelerated Gradient(NAG):每次更新带有历史梯度的影响
学习率的优化:Adagrad、RMSprop,训练前期正则化项很小,放大梯度;训练后期正则化项很大,缩减梯度。学习率除以f(累计梯度)
结合历史梯度与学习率结合:RMSprop + Momentum = Adam
2. dropout为何能防止过拟合?
训练时神经元随机消失,训练时很多子网络在学习更新参数,等于训练得到的网络是多个网络结果的集成
3. dropout 是否用在测试集上
不用,训练时采用dropout,推理(测试)时不使用
4. BN解决了什么问题?
一层特征上面特征数值分布不统一的问题(Internal Covariate Shift)
BN可以缓解梯度消失问题,将数据归一化到(0,1)之间;且加快训练速度加速收敛
使得网络参数初始化、学习率等超参数更容易调节
5. 请简述BN的实现流程
(1)按batch计算数值期望和方差
(2)对整体数据进行标准化
(3)对标准化数据进行线性变换,变换系数需要学习