基本概念

欠拟合指模型不佳,不足以准确对 train 分类。

过拟合是指对 train 非常好,但是泛华能力很差,一般来说,当特征数 n 大于样本数 n 时,容易出现过拟合,即需要求解的参数个数 n 也比较多时。

如何解决过拟合问题?

  1. 特征选择,筛选去掉无用特征. 如何筛选?.. 算法来筛选特征

  2. 正则化

参考理解

正则化就是代价函数再加一个惩罚项,不合适的参数将惩罚增加代价,从而迫使选择更合理的参数是代价最小。一般用到的思路是 L1/L2 正则化。

注意正则化并不减少参数个数,而是让参数更合理。

L1 正则后的解是稀疏解,意味着很多$\theta$为 0。

L2 正则后意味着很多$\theta$值会比较小.因为大的值容易造成扰动

正则参数过大,问题将变成欠拟合问题,因为过大的参数导致$\theta$趋于 0,才能保证代价函数不过大,$\theta$都为 0 了,那就是欠拟合了,压根没用。

回归问题的正则化

  • 梯度下降法

对于 linear 和 logistic, gradient descent 形式几乎是一样的,只是假设函数$h_{\theta}(x)$不同,

增加 L2 正则化后,梯度下降法为:

\[\theta_{j} &=\theta_{j} - \frac{\alpha}{m}\sum_{i=1}^{m}(\left ( h_{\theta}(x^{(i)} - y^{(i)}) \right )\cdot x^{(i)}_{j} +\frac{\lambda}{m}\theta_{j}) \\ &=\theta_{j}(1-\frac{\alpha\lambda}{m}) - \frac{\alpha}{m}\sum_{i=1}^{m}(\left ( h_{\theta}(x^{(i)} - y^{(i)}) \right )\cdot x^{(i)}_{j} \end{align*}\]

可以看出随着迭代,我们希望$\theta_{j}$是在减少的. 因为有约束: $$

编程时间时,对 costFunction 的代价函数和梯度做对应修改即可。

直观上,希望一点点的减少$\theta$.

  • 线性回归的正规方程

最终求解为:

\[\theta = (X^{T}X+I\lambda)^{-1}X^{T}y ,\ where \ I \ as\ a \ (n+1)x(n+1) \ unit \ matrix\]

很神奇的加了正则项后,原不可逆的$(X^{T}X)^{-1}$变为$(X^{T}X)^{-1}+I\lambda$后,将变得可逆.

线性的理解

常碰到线性两字, 比如线性回归,也就是尽量用直线拟合数据.

更多的是:

某个样本集线性可分,在三维以下很直观,即是通过直线,平面可将样本区分开来。要分类这样的样本有很多算法,感知机logistic 回归SVM等。

当然,对线性不可分的数据,也有很多更复杂的算法。(神经网络..)

但是也可以从简单的线性回归通过feature mapping到非线性回归.

如果训练集无法线性划分,可以考虑将特征的映射成为更复杂的函数。 如:

$x^{T}\theta=x_{0}theta_{0}+x_{1}\theta_{1} + x_{2}\theta_{2}$

无法做到的,可以使用:

$x^{T}\theta=x_{0}theta_{0}+x_{1}\theta_{1} + x_{2}\theta_{2} + x_{2}^{2}\theta_{3} + x_{1}^{2}\theta_{4}$

新的特征由原特征构造,需要求解新的参数.即求解更复杂的多项式解。

如何选择特征映射?这是个好问题…

SVM是通过核函数来实现内集运算从低维到高维的映射。

  • 由决策边界想到的

决策边界就是$X^{T}\theta=0$的地方.这是 ex2 最后的结果:

2018-04-12-16-29-22

难道也可以用来做图像的识别?马上打脸了..特征太多 没法算