上面把机器学习中重要的两类问题进行了一个概念式的说明,主要是为了能明白它的主要工作机理。在这个部分,我将说明一下在建立这些模型时所涉及到的一些技巧性的东西,比如梯度下降,学习率,正则化等内容,以帮助更好地训练模型。那么下面我们就来慢慢聊,细细说吧:)
一、梯度下降
梯度下降是在我们“三要素”中的迭代优化中所需涉及到的内容,利用这种方法是为了更新参数来达到优化目标函数的目的。这种方法对所有的机器学习方法均适用,之所以称之为梯度下降是因为梯度的方向是使函数取值增加的方向,而在我们的优化问题总大部分是希望最小化损失函数,故需沿着梯度的反方向进行参数值的更新。(除:利用最大似然的目标函数除外,其需最大化其概率值,故需沿着梯度的方向进行参数值的更新)
当在进行到逐步收敛的过程中,随着梯度值的逐渐减小,其参数迭代更新的步伐将自动变小。
为了能更好地使其快速收敛,在进行梯度下降之前可做一些处理
1、梯度下降运算中的使用技巧之【特征缩放】
在面对多为特征问题时,保证这些数据具有相似的尺度,以帮助梯度下降算法更快地收敛。例如对于房屋价格的预测问题,其影响的特征量假设为房屋尺寸(0~200),房间数(0~5),对于这样的数据显然直接利用的话,则每个参数更新的步伐差异较大,将影响收敛的速度。如下图1说明:
故需对各个参数数据进行归一化处理,使变量的取值范围都比较相近。常用的特征缩放方法是如图2:
1、梯度下降运算中的使用技巧之【学习率】:
在迭代优化的过程中还涉及到学习率的选取,这是一个很关键的超参数(区别于建立模型中的训练的参数),太小则收敛过程太慢,太大,则可能越过损失函数的最低点,甚至可能无法收敛,如下图3所示:
故选取合适的学习率,以及在学习的过程中使其进行变化(如随迭代次数进行变化或设置一个函数来改变其值等)来使其更好的收敛是在训练模型的过程中常采取的方式,具体说明如下图4所示:
二、正则化
在模型训练的时候,还有一个很重要的问题便是模型的过拟合或欠拟合。所谓过拟合,即高方差,是指对于训练数据,模型有很好的拟合效果,即损失小,但对于一批新的测试集数据,则会造成很大的损失,即不不能很好地拟合新的数据。欠拟合,即高偏差,指对于训练集的数据,模型的拟合效果不佳,这一般是模型选择的问题。
正则化则是为了减小或改善过拟合而采取的一种方式。下面我将附上我的手写笔记,以方便表述,如图5,6所示:
在这儿需要注意的是,应为theta0是作为常数项存在于特征量没有联系,故对其没有进行正则化的处理,在进行参数更新时应该对theta0和其他参数更新进行区别。
笔记中的问号处,对所有的参数选择同样的正则化系数的原因在于,首先可以便于计算处理,不必去分析哪些特征量较强哪些特征量较弱而对应设置不同的正则化系数,另外假设对于不同的参数采用不同的惩罚力度,即使用不同的正则化系数lambda,其最终影响的只是参数更新有不同的步伐,而且我们所希望的是尽可能地使不同的参数更新有近似的步伐,这样可以提升收敛的速度,但设置不同的lambda对最终的损失值并无直接影响,故设置成相同的正则化系数即可。