什么是过拟合 (Overfitting)
来看三张图:分别是 【Underfit (High bias)】 【Pretty well】【Overfitting】

如果有太多特征features会导致它想法设法去适应我们的训练集,甚至会出现cost=0或者很接近0的情况。
如果我们想摆脱这种overfitting的状况,就必须简化Hypothesis的模型,对后面无关的x3,x4进行一定的惩罚。

我们对损失函数进行一定的改造,在后面加上1000∗θ32+1000∗θ421000*{\theta_3}^2+1000*{\theta_4}^21000∗θ32+1000∗θ42,这样一来可以让θ3{\theta_3}θ3和θ4{\theta_4}θ4的值变得非常小。
但在实际上操作中,我们并不知道谁的相关性比较大谁比较小,这时候,我们就需要正则化来控制这个度了。
正则化 (Regularization)
我们对之前的损失函数进行改造,引入一个正则化参数 λ\lambdaλ。
我们在原有的损失函数上面增加:
λ∑j=1nθj2\lambda\sum_{j=1}^n\theta_j^2λj=1∑nθj2
最新的损失函数变成:
J(θ)=12m[∑i=1m(hθ(x)−y)2+λ∑j=1nθj2]J(\theta)=\frac{1}{2m} [\sum^m_{i=1}(h_{\theta}(x)-y)^2+\lambda\sum_{j=1}^n\theta_j^2]J(θ)=2m1[i=1∑m(hθ(x)−y)2+λj=1∑nθj2]
λ\lambdaλ 起到两个作用:
- 让 Hypothesis 更好的拟合
- 让参数尽量的小
λ\lambdaλ 越大,结果参数越小,所以 λ\lambdaλ 不能取得过大,导致除了 θ0\theta_0θ0 外的参数都很小,趋近于0的话就变成一条扁平的直线了。

在梯度迭代中体会正则化的意义
我们之前的梯度迭代公式:
θj:=θj−α∂J(θ0,θ1,θ2,...,θn)∂θj\theta_j:=\theta_j-\alpha\frac{\partial J(\theta_0,\theta_1,\theta_2,...,\theta_n)}{\partial\theta_j}θj:=θj−α∂θj∂J(θ0,θ1,θ2,...,θn)
使用正则化之后:
θj:=θj(1−αλm)−α∂J(θ0,θ1,θ2,...,θn)∂θj\theta_j:=\theta_j(1-\alpha\frac{\lambda}{m})-\alpha\frac{\partial J(\theta_0,\theta_1,\theta_2,...,\theta_n)}{\partial\theta_j}θj:=θj(1−αmλ)−α∂θj∂J(θ0,θ1,θ2,...,θn)
我们已知 1−αλm≤11-\alpha\frac{\lambda}{m} \leq 11−αmλ≤1,所以它的意义就相当于:θj∗0.95\theta_j*0.95θj∗0.95,(假如是0.95),大概这样的放缩作用,这样的好处是能让θ\thetaθ在梯度变化中能够取到更多可能的数值。
正则方程解法中的正则化
Set ∂J(θ0,θ1,θ2,...,θn)∂θj=0\frac{\partial J(\theta_0,\theta_1,\theta_2,...,\theta_n)}{\partial\theta_j}=0∂θj∂J(θ0,θ1,θ2,...,θn)=0 to solve θ\thetaθ
θ=(XTX)XTY\theta=(X^TX)X^TYθ=(XTX)XTY
使用正则化之后:
θ=(XTX+λ[0⋯0⋮1⋮0⋯1])XTY\theta=(X^TX+\lambda\begin{bmatrix} 0 & \cdots & 0 \\ \vdots & 1 & \vdots \\ 0 & \cdots & 1 \end{bmatrix}
)X^TYθ=(XTX+λ⎣⎢⎡0⋮0⋯1⋯0⋮1⎦⎥⎤)XTY
除了对角线(除第一个是0外)是1,其余都是0,矩阵满足Rn∗nR^{n*n}Rn∗n
分类问题(逻辑回归 Logistic regression)中的正则化

本文通过对比Underfit、Pretty well与Overfitting三种情况,深入解析过拟合现象,介绍了如何通过正则化避免过拟合,包括修改损失函数、调整参数以及在梯度迭代和正则方程解法中的应用。
409

被折叠的 条评论
为什么被折叠?



