吴恩达老师机器学习课程笔记 07 正则化

7 正则化

7.1 过拟合的问题

过拟合的含义

欠拟合是指拟合算法具有高偏差,数据拟合效果很差。

过拟合是指拟合算法具有高方差,能拟合所有数据,但函数变量太多,没有足够的数据来约束,从而无法泛化到新的样本中。

如果有非常多的特征,而只有非常少的训练数据,通过学习得到的模型可能能够非常好地适应训练集(代
价函数可能几乎为 0),但是可能会不能推广到新的数据。

解决过拟合的方法

  • 减少特征的数量:可以手工选择保留更为重要的特征,或者用之后要讲的模型选择算法自动选择需要保留的特征。但这种方法的缺点是在舍弃一些特征的同时也舍弃掉了一些信息。
  • 正则化:保留所有的特征,但是减少参数的大小。
  • 通过绘制假设函数的图像,根据曲线是否扭曲来选择合适的多项式的次数。但是大多数时候,研究的问题都是有很多特征的,则无法可视化,从而导致这种方法失效。

总结

过拟合是指拟合算法具有高方差,能拟合所有数据,但泛化能力差。

一般可以用减少特征的数量或正则化来解决过拟合的问题。

7.2 代价函数

正则化

正是假设函数中多项式的次数过高导致了过拟合的产生,因此如果让这些高次项的系数接近于0的话,相等于假设函数仍然是次数较低的函数、更加平滑,则可以解决过拟合的问题。

假如有非常多的特征,预先并不知道其中哪些特征是高次项,因此需要修改代价函数对所有的特征进行惩罚。具体的修改方法为在原本代价函数的基础上加一个正则化项 J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2 m}\left[\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}\right] J(θ)=2m1[i=1m(hθ(x(i))y(i))2+λj=1nθj2]。需要注意的是没有对 θ 0 \theta_0 θ0进行惩罚,这是约定俗成的,但是否有这一项在实际中对结果影响不大。

λ ∑ j = 1 n θ j 2 \lambda \sum_{j=1}^{n} \theta_{j}^{2} λj=1nθj2是正则化项, λ \lambda λ是正则化参数,用于在拟合训练集和保持参数尽可能小(从而避免出现过拟合)的两个目标之间进行权衡。

并且让代价函数最优化的软件来选择这些惩罚的程度。这样的结果是得到了一个较为简单的 能防止过拟合问题的假设。

正则化参数的讨论

如果 λ \lambda λ过大,为了使得代价函数尽可能小,所有的 θ i \theta_i θi(不包括 θ 0 \theta_0 θ0)都会趋于0,最终得到的是一条平行于 x x x轴的直线,就造成了欠拟合。

所以对于正则化,需要取一个合理的 λ \lambda λ的值,这样才能更好的应用正则化。

总结

正则化项能使得参数尽可能小,从而解决过拟合的问题。

7.3 正则化线性回归

正则化线性回归的梯度下降法

正则化线性回归的代价函数为 J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2 m}\left[\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}\right] J(θ)=2m1[i=1m(hθ(x(i))y(i))2+λj=1nθj2]

进行梯度下降的过程为 θ 0 : = θ 0 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) θ j : = θ j − a [ 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) + λ m θ j ] \begin{aligned} \theta_{0}: &=\theta_{0}-a \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{0}^{(i)} \\ \theta_{j} &:=\theta_{j}-a\left[\frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)}+\frac{\lambda}{m} \theta_{j}\right] \end{aligned} θ0:θj=θ0am1i=1m(hθ(x(i))y(i))x0(i):=θja[m1i=1m(hθ(x(i))y(i))xj(i)+mλθj]

对第二个式子进行一些变换可得 θ j : = θ j ( 1 − a λ m ) − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_{j}:=\theta_{j}\left(1-a \frac{\lambda}{m}\right)-a \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)} θj:=θj(1amλ)am1i=1m(hθ(x(i))y(i))xj(i),其中 1 − a λ m 1-a \frac{\lambda}{m} 1amλ是一个比1略小的值。也就是说,正则化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的基础上令 θ \theta θ值减少了一个额外的值。

正则化线性回归的正规方程法

一般线性回归模型的正规方程法的求解方法为 θ = ( X T X ) − 1 X T y \theta=\left(X^{T} X\right)^{-1} X^{T} y θ=(XTX)1XTy

正则化线性回归模型的正规方程法的求解方法为 θ = ( X T X + λ [ 0 1 1 ⋱ 1 ] ) − 1 X T y \theta=\left(X^{T} X+\lambda\left[\begin{array}{lllll}0 & & & & \\ & 1 & & & \\ & & 1 & & \\ & & & \ddots & \\ & & & & 1\end{array}\right]\right)^{-1} X^{T} y θ= XTX+λ 0111 1XTy

总结

本节将梯度下降法和正规方程法推广到了正则化线性回归中。

7.4 正则化的逻辑回归模型

类似正则化线性回归模型的处理方式,对于逻辑回归,也给代价函数增加一个正则化的表达式,得到代价函数 J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta)=\frac{1}{m} \sum_{i=1}^{m}\left[-y^{(i)} \log \left(h_{\theta}\left(x^{(i)}\right)\right)-\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right]+\frac{\lambda}{2 m} \sum_{j=1}^{n} \theta_{j}^{2} J(θ)=m1i=1m[y(i)log(hθ(x(i)))(1y(i))log(1hθ(x(i)))]+2mλj=1nθj2

得到梯度下降法的过程为:

θ 0 : = θ 0 − a 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) ) \theta_{0}:=\theta_{0}-a \frac{1}{m} \sum_{i=1}^{m}\left(\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{0}^{(i)}\right) θ0:=θ0am1i=1m((hθ(x(i))y(i))x0(i))
θ j : = θ j − a [ 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) + λ m θ j ] \theta_{j}:=\theta_{j}-a\left[\frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)}+\frac{\lambda}{m} \theta_{j}\right] θj:=θja[m1i=1m(hθ(x(i))y(i))xj(i)+mλθj]

总结

本节将梯度下降法和正规方程法推广到了正则化逻辑回归中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值