天天看点

吴恩达机器学习笔记(七)

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 θ项没有了。