多项式回归
前面对于已知的数据点,我们一直使用一次函数来进行拟合,一次函数的图形为一条直线。
f_{\theta}(x) = \theta_0 + \theta_1x
不过,对于这些添加的数据点,曲线可能比直线的拟合效果更好。
f_{\theta}(x) = \theta_0 + \theta_1x+\theta_2x^2
如果想要表示更加复杂的曲线,还可以使用更高的次数。
f_{\theta}(x) = \theta_0 + \theta_1x + \theta_2x^2 + \cdots+ \theta_nx^n
我们可以随便决定
f_{\theta}(x) 是什么样的函数,不过对于要解决的问题,找到合适的表达式之前,需要不断地去尝试。更高次数的曲线能够更好的拟合所有数据点,甚至能够完全拟合所有的数据点,但是数据点中包含很多的噪声。
类比于考试,我们平时练习的题目对应到机器学习中的学习阶段(找到合适的参数),而考试对应到机器学习中的测试阶段(验证找到的参数是否能够解决实际的问题),更高次数的曲线相当于我们将平时练习的题目死记硬背了下来,没有学习到题目中的规律和技巧,虽然平时练习能够得到好成绩,但是我们的目的是为了和平时练习题目不同的考试,自然考试的成绩不会太高,相对应的找到的参数并不能解决实际的问题。这也是机器学习中非常重要的 过拟合问题。
\frac{\partial E}{\partial \theta_2} = \frac{\partial E}{\partial f_{\theta}(x)}\frac{\partial f_{\theta}(x)}{\partial\theta_2}
前文已知
\frac{\partial E}{\partial f_{\theta}(x)} = \sum_{i=1}^{n}(y^{(i)} - f_{\theta}(x^{(i)})),只需要求出
\frac{\partial f_{\theta}(x)}{\partial \theta_2}。
\begin{split}
\frac{\partial f_{\theta}(x)}{\partial \theta_2} &= \frac{\partial}{\partial \theta_2}(\theta_0 + \theta_1x + \theta_2x^2)\\
&=x^2
\end{split}
对于
f_{\theta}(x) = \theta_0 + \theta_1x+\theta_2x^2 的参数更新表达式为:
\begin{split}
\theta_0 &:= \theta_0 - \eta\sum_{i=1}^{n}(f_{\theta}(x^{(i)}) - y^{(i)})\\
\theta_1 &:= \theta_1 - \eta\sum_{i=1}^{n}(f_{\theta}(x^{(i)}) - y^{(i)})x^{(i)}\\
\theta_2 &:= \theta_2 - \eta\sum_{i=1}^{n}(f_{\theta}(x^{(i)}) - y^{(i)})x^{(i)^2}
\end{split}
References:
《白话机器学习的数学》