7.1 过拟合
欠拟合:模型没有很好的拟合数据集。或称高偏差。
过拟合:高阶多项式,变量太多,数据集不够约束这些变量。或称高方差。
过拟合在参数过多时发生,假设训练出的模型能很好的拟合训练集,误差函数非常接近0,但这样的曲线无法泛化到新样本。
泛化:一个假设模型应用到新样本的能力
调试和诊断
过拟合解决办法:
- 减少选取变量的数量,人工选择保留重要的变量,使用算法选择变量
- 保留所有变量,减少量级,或参数 θ j \theta_j θj的大小
7.2 正则化损失函数
变量过多出现过拟合后,引入惩罚项。训练使损失函数趋于0,使得部分变量取值约等于0.
模型参数越小,模型’越简单‘,曲线更加平滑
不知道选出哪些模型参数添加惩罚函数时,缩小所有模型参数:
正则化项,正则化参数
当正则化参数过大,即对所有模型参数的惩罚系数都很大,导致所有的参数项都约等于0,只剩下一个
θ
0
\theta_0
θ0,模型最后约等于
y
=
θ
0
y=\theta_0
y=θ0的直线,导致欠拟合。
应选择合适的正则化参数。
7.3 线性回归的正则化
梯度解法
损失函数:
J
(
Θ
)
=
1
2
m
[
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
+
λ
∑
j
=
1
n
θ
j
2
]
J(\Theta)={1\over 2m}[\sum^m_{i=1}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda \sum^n_{j=1}\theta^2_j]
J(Θ)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2]
优化函数(加入正则化项的梯度下降):
θ
j
:
=
θ
j
(
1
−
α
λ
m
)
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
\theta_j:=\theta_j(1-\alpha{\lambda \over m})-\alpha {1\over m}\sum^m_{i=1}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
θj:=θj(1−αmλ)−αm1i=1∑m(hθ(x(i))−y(i))xj(i)
正则化解法
矩阵解法中加入
λ
[
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
]
\lambda \begin{bmatrix}0&0&0&0 \\ 0&1&0&0 \\ 0&0&1&0 \\ 0&0&0&1\end{bmatrix}
λ⎣⎢⎢⎡0000010000100001⎦⎥⎥⎤正则化项
在样本个数小于特征数时m<=n,会出现
(
X
T
X
)
(X^TX)
(XTX)不可逆的情况,如果使用pinv求伪逆的话,能求出来但是求出来最后的假设模型不能很好的拟合数据。
在加入正则化项后,只要正则参数大于0,括号内一定是可逆的。
7.4 逻辑回归的正则化
在原本逻辑回归的基础上加入正则化项:
损失函数:
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
+
λ
∑
j
=
1
n
θ
j
2
]
J(\theta)=-{1\over m}\sum^m_{i=1}[y^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))]+\lambda \sum^n_{j=1}\theta^2_j]
J(θ)=−m1i=1∑m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]+λj=1∑nθj2]
优化函数:加入正则化项的梯度下降:
θ
j
:
=
θ
j
(
1
−
α
λ
m
)
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
\theta_j:=\theta_j(1-\alpha{\lambda \over m})-\alpha {1\over m}\sum^m_{i=1}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
θj:=θj(1−αmλ)−αm1i=1∑m(hθ(x(i))−y(i))xj(i)
注意:
- θ 0 \theta_0 θ0项不需要加入正则化项,特殊处理
- 逻辑回归的:
h
θ
(
x
)
=
1
1
+
e
−
Θ
T
x
=
1
1
+
e
−
(
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
⋯
)
h_\theta(x)={1\over 1+e^{-\Theta^Tx}}={1\over 1+e^{-(\theta_0+\theta_1x_1+\theta_2x_2+\cdots)}}
hθ(x)=1+e−ΘTx1=1+e−(θ0+θ1x1+θ2x2+⋯)1