过拟合、归一化、正则化、鞍点
过拟合
过拟合的本质原因往往是因为模型具备方差很大的权重参数。
定义一个有4个特征的输入
,特征向量为
,定义一个模型,其只有4个参数,表示为
。当模型过拟合时,这四个权重参数的方差会很大,可以假设为
。当
经过这个模型后,产生输出
,由输出可知,这个模型过分地强调了特征
的影响,从而导致模型的输出结果由
主导,因为其对应的权重参数
很大。这样会使得模型的容错很小,即泛化很差,只要特征
稍有波动,模型的输出结果就会产生很大地变化。这就是过拟合的本质现象。
归一化
归一化是从特征本身出发,解决过拟合现象。
同样考虑输入
,模型参数
。在进行梯度下降时,模型输出
对模型参数的梯度分别为,
,很容易发现,
对应的权重参数
的梯度最大,在梯度更新时,输出
偏向于沿
方向更新,从而导致模型收敛后,
与其它参数的差异较大,进而发生过拟合。同时整个梯度方向大幅度偏向
方向,使得梯度下降的路线成“之”字形,到达收敛点的迭代次数会变多。
这种现象是由于
的特征方差过大,特征之间的分布差异过大。为了解决这种现象,就需要将
的特征分布转化成方差为1,均值为0的分布,减小特征分布差异。
当被归一化处理后的
作为模型输入时,每个权重参数的梯度相差不大,使得每个权重参数的更新步幅基本一致,当模型收敛后,权重参数的方差就会很小。
正则化
为了防止模型权重参数的方差过大,从而引起过拟合。正则化是从权重参数出发,解决过拟合现象。
不管模型有多复杂,输入的每个特征值在模型中都会与特定的权重参数相乘或相加,这就使得每个权重参数在前向传播或反向传播时,只与输入的部分特征值有关。如果权重参数分布差异大,就会导致对输入的每个特征产生不平衡的注意力倾斜,最终的输出结果就会由权值较大的参数主导,那些权值较小的参数就将变得毫无作用,因为有无它们都对输出结果产生不了影响。正则化就是要消除这种差异性,使得所有权重参数都同样重要(也会存在差异,只是这种差异被转化到了一个很小的量纲中了,被削弱了),且尽可能小。
常用的L2正则化会使得每个权重参数趋近于0,使得输入的所有特征值都显得同样重要,这时如果输入中存在异常的特征值(值很大),由于其对应的权重参数都很小,接近于0,它也不会对模型的输出造成太大的影响。
另外,L2正则化能够减小数据分布不同带来的影响。假设存在数据集A和B,A和B的分布不同。当模型在A数据集上训练好后,模型的权重参数将匹配A的特征分布。如果不用正则化进行训练,模型在B数据集上的表现会很差,这是因为权重参数的分布已经匹配上了A的特征分布,如果模型接受一个与A分布差异太大的B,就会使得模型输出结果产生很大的偏差。如果使用了L2正则化,每个权重参数都很小,就会使得这种偏差不那么大,从而提高泛化能力
鞍点
鞍点(Saddle point)在微分方程中,沿着某一方向是稳定的,另一条方向是不稳定的奇点,叫做鞍点。在泛函中,既不是极大值点也不是极小值点的临界点,叫做鞍点。在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点。在物理上要广泛一些,指在一个方向是极大值,另一个方向是极小值的点。
模型越复杂(参数量越多),鞍点就越多,训练时收敛在鞍点的可能性就越大。因为鞍点既不是局部最优点,更不是全局最优点,所以越复杂的模型达到最优点的速度越慢,因为它们很大可能被困于鞍点。