Improving Deep Neural Network学习笔记
参数调整、正则化、优化
- 超参数设置
- 方差与偏差的平衡问题
- 正则化技术的一种应用
- 归一化的输入处理方法
- 基于小批量的梯度下降方法
- Adam优化方法的应用场景
本周深入研习了吴恩达老师的深度学习课程内容,在提升深度神经网络方面掌握了若干有效方法。这些方法主要包括通过超参数调节实现模型性能优化、应用正则化技术防止过拟合以及采用先进的优化算法提高训练效率。通过实践操作,我对网络优化的基本理论和具体实施路径有了透彻理解。
1 超参数
在机器学习模型中涉及的学习率、梯度下降迭代次数(iteration)、隐藏层数目(L)、每个隐藏层的人工神经元数量以及激活函数等多个超参数中, 学习率是最为重要的超参数之一. 在我们进行学习率选择测试的过程中, 不能简单地采用随机均匀取值法, 而应该采用基于对数尺度的搜索方法. 举例来说: 假设学习率α的取值范围设定为0.0001到1之间, 如果按照随机均匀分布的方法进行取值, 那么90%的数据会集中在较大的数值区间(即0.1到1之间), 而较小数值区间(即0.0001到0.1之间)仅占总资源分配量的10%. 然而, 学习率的最佳取值往往存在于这些较小数值区间内. 因此, 采用基于对数尺度的方法进行采样会更加合理. 具体而言, 我们会在对数值轴上等距选取关键点: 例如选择α= 0.0001, 0.001, 0.01, 0.1 和1等关键点作为搜索基准
2 方差、偏差
方差用于衡量基于不同训练数据集进行预测所表现出的变异性程度
偏差用来衡量预测值与真实值之间的不一致程度以及准确度
当模型分别应用于训练集与测试集时会出现以下三种情形:
- 欠拟合并表现出高偏差
- 过拟合并伴随高方差
- 适度拟合并达到最佳平衡状态
3 正则化
模型存在过拟合的情况,并非少见现象。具体而言,则可通过两种解决方案予以缓解:一是补充训练数据集;二是引入适当的正则化技术以改善模型泛化能力。其中最常用的方法包括L1范数、L2范数以及Dropout策略等。以L2范数为例,在逻辑回归模型中通常应用L2范数进行约束处理;其具体实施步骤如下:

第2节 dropout正则化
其过程表现为让神经网络中的神经元以特定概率随机断开连接

4 归一化输入
归一化与正则化分别属于两个不同的范畴,在深度学习中它们各自发挥着独特的作用。归一化的核心目标在于加速训练过程,并通过标准化的数据预处理步骤来调整输入特征的数据分布;这使得目标函数从狭长的目标空间转变为圆形的空间结构;从而有利于提升算法性能并加快计算速度

5 Mini-batch梯度下降算法
在学习初期阶段时,在整个训练过程中,则会将所有输入的数据进行向量化处理,并构造一个规模庞大的数据矩阵。通过这样的方式,在每次完整的训练循环中只会进行一次参数更新;而采用mini-batch的方法时,则是将整个训练数据集按照规定的batch size均匀划分成多个小批量,并且在每个小批量的数据被输入到模型后才会进行一次参数更新。这样一来,在完成整个数据集的一次完整遍历过程中(即一个epoch),模型会经历\frac{总样本数}{ batch\ size}次的参数更新。

mini-batch中的 batch 大小选择应避免过大或过小,在实践中通常设置在 64 到 512 之间。具体而言,在 batch 大小等于 1 的情况下——即每个 training sample 都单独构成一个 batch—— mini-batch 梯度下降法实际上等同于随机梯度下降法(SGD)。而当 batch 大小等于全部 training samples 的数量时——即每个 epoch 只执行一次完整的批量梯度下降步骤—— mini-batch 方法则退化为普通 batch 梯度下降方法。
6 Adam优化算法
动量(Momentum)梯度下降算法旨在加快梯度下降的速度。如图所示,在向红色最优解的方向上移动的过程中,纵向震荡并非必要的部分。因此我们希望横向快速地到达目标点。所以这个时候我们可以在梯度下降过程中加入一个动量项能够实现这一目标
2.RMSprop方法(Root mean square prop):在图所示的部分中所述内容为无意义的行为,在该区域上所述内容为垂直方向上的振荡没有意义。而该方法通过减少垂直方向上的振荡,在水平方向上持续推进从而加快训练速度。
Adam优化算法本质上是具体来说将动量项与RMSprop方法进行融合,在横向与纵向上的优化融合形成了一个性能卓越的有效策略。
