优化器
模型训练的目的是搜索使得损失函数最小的权值向量,也就是我们希望从100等高线到0等高线位置。但是如何能使模型更好且更快的达到效果,就需要优化器。通常会把不同的梯度下降算法封装成一个对象。称为优化器
常见的优化器如:普通梯度下降优化器、动量优化器、Nesterov、Adagrad、Adadelta、
RMSProp、Adam、AdaMax、Nadam。
梯度下降法(1)
梯度下降实则就是求损失值对所有参数的偏导(梯度),梯度的意义是变化最快的方向,因此可以沿着梯度的负方向更新所有参数。学习率LR(Learning Rate,LR)是梯度下降中重要的超参数,根据误差梯度调整权重数值的系数。
梯度下降法(2)
批量梯度下降(BGD):每次更新使用所有的训练数据,最小化损失函数,如果只有一个极小值,那么批量梯度下降是考虑了训练集所有数据,但如果样本数量过多,更新速度会很慢。
随机梯度下降(SGD):每次更新的时候只考虑了一个样本点,这样会大大加快训练速度,但是函数不一定是朝着极小值方向更新,且SGD对噪声也更加敏感。
小批量梯度下降(MBGD):MBGD每次更新的时候会考虑一定数量(batch size)的样本,解决了批量梯度下降法的训练速度慢问题,以及随机梯度下降对噪声敏感的问题。
正则化
正则化是机器学习中非常重要并且有效的减少泛化误差的技术,特别是在深度学习模型中,由于其模型参数多且容易产生过拟合。导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。防止过拟合,比较常用的技术包括:
1.数据增强 2. L1/L2正则化 3.Dropout 4.提前终止 5.BN
数据增强
数据增强:即增加训练数据样本。防止过拟合最有效的方法是增加训练样本,足够多的数据可以让模型看见
尽可能多的例外情况并不断修正自己,从而效果更好。数据增强是一个省时有效的方法,在不同领域有不同
的实现方法:
1.在目标识别领域常用的方法是将图片进行旋转、平移、缩放等(图片变换的前提是通过变换不能改变图片所属类别,
例如手写数字识别,类别6和9进行旋转后容易改变类目)。
2.语音识别中对输入数据添加随机噪声。
3.NLP中常用思路是进行近义词替换。