7.1 过拟合问题(The problem of overfitting)
变量个数不同的情况下,拟合的程度不同。过度拟合问题将会在变量过多的时候出现。过拟合的时候代价函数值会非常接近0甚至为0。
第三张图是过拟合状态,这个曲线千方百计地拟合训练集,导致他无法泛化到新样本中。
提问:为什么这三条曲线拟合程度不一样?
答:与高阶特征有关。特征的次越高,拟合程度越高。
泛化:一个假设模型应用到新样本的能力
每一个变量看上去都与房价有关,但是当特征变量过多而训练数据过少时,就会出现过拟合问题。
提问:数理统计和机器学习的差别?
数理统计是对数据进行统计分析,获得这些数据的性质(方差等)。只要得到足够多的统计数据,将来加入新的数据不会对已有数据的性质产生很大的影响;机器学习在已有数据上学习到的模型,将其用在新有数据,检测这个模型的好坏。
解决过拟合的办法:
- 减少特征变量的数量
- 人工挑选
- 模型选择算法(Model selection algorithm)
- 正则化
也许每个特征变量都或多或少对预测产生影响,我们可以通过正则化来减少量级或参数 θ j \theta_j θj的大小,而保留每个变量。
7.2 代价函数(Cost function)
当最小化代价函数时,需要使
θ
3
和
θ
4
\theta_3 和 \theta_4
θ3和θ4尽量接近0,因为他们的系数都特别大,会使得整个函数变得很大。既然
θ
3
和
θ
4
\theta_3 和 \theta_4
θ3和θ4接近与0,那么这个函数相当于二次函数,是一个更好的假设模型。
这里并没有直接去除变量
x
3
和
x
4
x^3 和 x^4
x3和x4,而是弱化这两个特征对拟合模型的影响。
正则化
对参数加入惩罚项使得参数接近0,我们会得到一个更简单的假设模型。对参数加入惩罚项就是去简化假设模型,参数值越小,我们得到的函数就会越平滑和越简单,就越不会出现过拟合问题。
当特征变量非常多的时候,我们不知道缩小哪些参数,所以需要改变代价函数。新加入的项是从
θ
1
\theta_1
θ1开始求和,习惯上不对
θ
0
\theta_0
θ0惩罚。
提问:新加入的
θ
j
\theta_j
θj为什么是平方项?可不可以直接写成
θ
\theta
θ或者加绝对值?
答:为了求导方便,同时由于是平方项,使
θ
j
\theta_j
θj下降的速度加快。可以,加绝对值会导致参数的稀疏性,可以带来很多好的性质。稀疏性能够对特征进行选择。
提问:应不应该对
θ
0
\theta_0
θ0进行惩罚?
答:不应该。
θ
0
\theta_0
θ0在这里只是一个偏置量,对其进行约束没有作用。
正则化的第一个目标:与目标函数的第一项有关,就是我们想更好地拟合训练集;第二个目标:与目标函数的第二项(正则化项)有关,保持参数尽量地小。
λ
\lambda
λ是正则化参数,用来控制两个不同目标之间的平衡关系。
如果正则化参数
λ
\lambda
λ被设得太大的话,会导致
θ
j
\theta_j
θj都接近于0,这样相当于把假设函数的全部项忽略掉了,只剩下
θ
0
\theta_0
θ0, 也就是预测结果直接与
θ
0
\theta_0
θ0相关,变成了一条直线,成了欠拟合的情况。
提问:为了简化模型,为什么
λ
\lambda
λ需要大一些?
答:
λ
\lambda
λ值越大,惩罚力度越大,最终会导致
θ
j
\theta_j
θj都要尽量地小,从而使模型变简单。
为什么需要正则化:(个人理解)当假设模型过拟合时,需要对某些参数 θ j \theta_j θj进行缩小,从而简化模型。越复杂的模型对训练集拟合地越好。正则化是什么:选择需要惩罚的 θ j \theta_j θj
7.3 线性回归的正则化(Regularized linear regression)
1
−
α
λ
m
1 - \alpha\frac{\lambda}{m}
1−αmλ略小于1,因为
α
\alpha
α非常小,而m非常大。可以把他想成0.99那样的数。
可以这样理解,当我们进行正则化线性回归时,每次迭代都将
θ
j
\theta_j
θj乘以一个比1略小的数,然后像之前的梯度函数一样减去第二项。
当
λ
\lambda
λ值越大时,对参数的惩罚力度越大,使得参数更快地变小。
梯度下降是拟合线性回归模型的算法之一,第二种算法是用正规方程来解决。
设计一个矩阵X,每一行都代表一个单独的训练样本;建立一个向量y,向量y是一个m维向量,它包含了训练集里的所有标签,所以X是一个m x (n+1)维的矩阵。
为了让代价函数J最小,需要加一个
λ
\lambda
λ项来使用正则化。
λ
\lambda
λ后面(L)的矩阵是(n+1) x (n+1)维,这个矩阵的正对角线上除了
θ
0
\theta_0
θ0,其他参数
θ
j
\theta_j
θj都是1
n是特征数量
如果样本总数m小于特征数量n,那么
X
T
X
X^TX
XTX的矩阵是不可逆的(奇异矩阵)。正则化考虑到了这个问题,只要正则化参数
λ
\lambda
λ是严格大于0的,我们就可以确信
X
T
X
X^TX
XTX加上
λ
\lambda
λ乘上后面那个矩阵,一定不是奇异矩阵。所以正则化还可以解决矩阵不可逆的问题。
7.4 逻辑回归的正则化(Regularized logistic regression)
本节中主要讲如何改进梯度下降算法和另一种高级优化算法,使他们应用到正则化逻辑回归中。
为了对逻辑回归代价函数正则化,需要在原代价函数后面增加一项(下图的中括号标错地方了)。添加的项是为了惩罚
θ
j
\theta_j
θj,防止他们过大。
正则化之后的函数为:
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[y^{(i)}\log(h_\theta(x^{(i)})) + (1-y^{(i)})\log(1-h_\theta(x^{(i)}))] + \frac{\lambda}{2m}\sum_{j=1}^n\theta^2_j
J(θ)=−m1∑i=1m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]+2mλ∑j=1nθj2
对梯度下降函数进行正则化:需要注意的是,这里的梯度下降函数看似与线性回归的一致,但他们的假设函数不同。因为没有对
θ
0
\theta_0
θ0正则化,所以在梯度下降中,
θ
0
\theta_0
θ0和其他的
θ
j
\theta_j
θj迭代不一样。
为什么对梯度下降函数正则化后,新添加的项的求和没有了?:因为是对每个 θ \theta θ求偏导,其他的 θ \theta θ项没有了。