目录
三、正则化代价函数(Cost Function with Regularization)
1、用于线性回归的正则方法(Regularized Linear Regression)
2、用于逻辑回归的正则方法(Regularized Logistic Regression)
一、过拟合
1、定义
过拟合(Overfitting),也称为高方差(High variance),具体表现为模型在测试数据上泛化不佳。过拟合其实就是为了得到一致假设而使得假设过于地严格,使得其在训练集上的表现非常地完美,但是在训练集以外的数据集却表现不好。模型在训练数据上过于拟合了数据的细节和噪声,导致无法泛化到新的数据上。解决过拟合的方法包括:增加训练数据、简化模型(如减少参数、增加正则化)、使用 dropout 和 early stopping 等。
过拟合原因:
- 模型复杂度过高:模型参数过多,容易导致模型过度拟合训练数据中的噪声。
- 训练数据量较小:数据量不足以支持复杂数学公式,容易导致模型过拟合。
- 数据噪声较大:模型可能学习到数据中的噪声,而非真实的数据分布。
欠拟合(Underfitting),也称为高偏差(High bias)是指模型在训练数据和测试数据上都表现较差的现象。这是因为模型的复杂度过低,无法拟合训练数据中的真实关系,导致不能泛化到新的数据上。解决欠拟合的方法包括:增加模型的复杂度(如增加层数、增加参数)、调整超参数、改进数据预处理等。
欠拟合原因:
- 模型复杂数学公式度过低:模型过于简单,无法捕捉到数据中的关键特征和模式。
- 特征选择不当:选取的特征无法反映数据的真实分布,导致模型性能较差
机器学习的目的是找到一个既不欠拟合也不过拟合的模型,希望模型既没有高偏差也没有高方差。
2、线性回归中的过拟合
3、分类问题中的过拟合
二、解决过拟合
1、扩充训练数据集
假设拟合了一个模型,如图所示,显然该模型具有很高的方差,是过拟合的。解决这种问题的方法之一是收集更多的训练数据。通过收集更多的数据之后,通过更大的训练集,学习算法将学会适应一个波动较小的函数。如果有足够的训练样本,依然可以继续拟合一个高阶多项式或者一些特征很多的函数。
2、使用更少特征
解决过度拟合的第二个选择是使用更少的特征。
为了解决这个问题,我们可以通过使用较少的,那些对输出结果影响较大的特征,不使用不重要的特征。
如果有很多特征但是没有足够的训练数据,那么学习算法也可能过度适应训练集。选择最合适的一组特征有时候也称为特征选择。特征选择的缺点之一是,通过仅使用特征的一个子集,该算法会丢弃一些样本信息。
3、正则化(Regularization)
当我们要消除一些特征时,则可以将其对应的参数设置成0,相当于消除了一个特征。正则化是一种更温和地减少某些特征影响的方法,不用像彻底消除特征那样极端。
正则化的作用是鼓励学习算法缩小参数值,而不必要求参数正好设置成0。保留所有特征,防止特征产生过大的影响从而造成过拟合。
事实证明,即使拟合更高阶的多项式,只要能让算法使用更小的参数值,最终得到的曲线可以更好地拟合训练数据。
notes:
按照惯例,通常只减小参数的大小,即到,是否对参数b进行正则化并没有太大的区别。
三、正则化代价函数(Cost Function with Regularization)
1、正则化代价函数定义
正则化代价函数是一种用于训练机器学习模型的代价函数,它通过向模型的权重参数添加惩罚项来防止过拟合。正则化代价函数可以分为L1正则化和L2正则化两种类型。
L1正则化代价函数是指对模型的权重参数进行L1范数惩罚,公式如下:
J(w) = J0(w) + λ||w||1
其中,J0(w)是无惩罚项的代价函数,w是权重参数,λ是正则化系数。L1范数 ||w||1是指权重参数绝对值的和。L1正则化可以使得部分权重参数变为0,因此可以用于特征选择。
L2正则化代价函数是指对模型的权重参数进行L2范数惩罚,公式如下:
J(w) = J0(w) + λ||w||2^2
其中,J0(w)是无惩罚项的代价函数,w是权重参数,λ是正则化系数。L2范数 ||w||2是指权重参数平方和的平方根。L2正则化可以使得权重参数接近于0,但不为0,因此可以用于减少模型复杂度,避免过拟合。
正则化代价函数的作用是在保持模型复杂度的同时提高模型泛化能力,防止过拟合。通过调节正则化系数,可以控制惩罚项的强度,使模型在训练集和测试集上都能达到较好的表现。
2、什么是正则化
图中左边,当我们有两个特征时,发现可以很好的拟合数据,如果我们继续添加特征
如图中的右边,拟合的是一条曲线,很明显这属于过拟合或高方差,为了解决这个问题,我们可以使用正则化。
正则化就是不改变特征的数量,通过改变参数的大小,来使得曲线更好的拟合数据。图中,如果使得参数w3, w4 接近于0 ,那么拟合的曲线就会接近二次函数了,但因为特征数量没变,它可能比二次函数更适合。
3、正则化参数lambda
前面我们只是使得参数w3, w4 较小,接近于0 ,从而使得模型更加的拟合数据,但是事实上,如果我们有100个特征,我们不知道哪些是重要特征,哪些是要惩罚的特征,所以通常实现正则化的方式是惩罚所有的特征,准确来说是惩罚所有的参数,这会导致拟合更加平滑,简单,不容易过度拟合。
我们通常会惩罚所有的100个特征,使用一个新的值 (lambda) , 它被称为正则化参数 (regularization parameter)。
与学习速率一样,我们必须给 lambda 选择一个数字 λ > 0。
notes:
一般情况下,我们不会因为参数 b 太大而惩罚它,因为是否这样做,我们在实际中得到的结果都是差不多的,当然你也可以选择惩罚参数 b 。
将除以2m,即,这样使代价函数的第一项和正则化项都在2m上按比例缩放,通过以相同的方式缩放两项,为选择一个好的值变得更容易了。即使训练集规模增加,m的值变大,将此额外缩放2m,则之前选择的相同值现在也更有可能继续适用。
总结一下:
修改之后的代价函数,成为了均方差代价加上额外的正则化项(regularization term)。
新的代价函数权衡了我们的目标,我们希望最小化原始成本时的两个目标:
1)、尝试最小化第一项会鼓励算法通过最小化预测值和实际值的平方差来很好地拟合训练数据。
2)、尽量减少第二项,使得参数w 保持较小,这会有助于减少过拟合。
选择的指定了在两个目标之间取得相对重要性或相对权衡。
4、lambda取值的原则
如果设置为0,则根本没有使用正则化项,最终会拟合一条过于摇摆过于复杂的曲线,并且会过度拟合。为一个极端。
如果设置一个非常大的数,那么在正则化项上赋予了非常大的权重,最小化这种情况的代价函数的唯一方法是确保的所有值都非常接近与0,则此时f(x)的值基本上等于b,因此学习算法拟合水平直线,为欠拟合。
四、正则化的应用
1、用于线性回归的正则方法(Regularized Linear Regression)
对于正则化的线性回归代价函数,目的依然是找到使正则化代价函数最小的参数和b。
对于正则化代价函数的梯度下降算法,根据此公式重复更新参数和b。
事实上,正则化线性回归与之前的较为相似,只不过代价函数J的定义有所不同,改变的是J对w的求导,还多了一项正则化项的求导,由于没有正则化b,则J对b的求导不变。
注意的是,和b的更新依然是同步的。
2、用于逻辑回归的正则方法(Regularized Logistic Regression)
当你用很多特征训练逻辑回归时,无论是多项式特征还是其它一些特征,都可能存在更高的过拟合风险。
当使用如图的代价函数作为w和b的最小化时,正则化项具有惩罚参数的效果,防止参数太大。
为了实现梯度下降,对和b进行同步更新。
计算这些导数项时,较之前唯一改变的是的导数得到了额外的正则化项。