简介
In order to optimize the fitting parameters of a fitting function to the best fit for some data, we need a way to define how good our fit is. This goodness of fit is called chi-squared, which we’ll first apply to fitting a straight line - linear regression. Then we’ll look at how to optimise our fitting function using chi-squared in the general case using the gradient descent method. Finally, we’ll look at how to do this easily in Python in just a few lines of code, which will wrap up the course.
学习目标
- Describe regression as minimization of errors problem.
- Distinguish appropriate from inappropriate models for particular data sets
- Create code to fit a non-linear function to data using gradient descent
线性回归
这节课是从现实中的数据出发,用函数拟合数据。这和我们之前讲到的优化方法有一点不同:在本节课中,模型的参数是我们真正关心的!因为从模型的角度来说,参数还是参数;但我们要通过损失函数优化参数的时候(这个过程才是核心!),损失函数才是是我们的研究对象,而非回归函数。因此,回归函数中的参数如: $\omega , b$ 对于损失函数来说是自变量,是我们要优化的对象。 这一点要切记,很多同学对这一点比较模糊的原因就是没有做好模型参数的 “角色转换”。
数据集
$\mathbf x_1$ | $\mathbf x_2$ | $\cdots$ | $\mathbf x_n$ | Label | |
---|---|---|---|---|---|
$y_1$ | |||||
一个关于线性回归的在线练习,link.
非线性回归
通常情况下,我们可能会遇到如下问题:
- 无法显示地写出梯度的表达式(不管什么原因)
- 写出了梯度的表达式,却无法用解析方法求解(e.g. 令梯度为0,求解出合适的参数取值。)
此时,就应该采用 gradient descent 算法通过迭代更新自变量的方式,逐步达到目标函数的最小值。
Example:
梯度下降编程练习,link.