六.回归

简介

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.

学习目标

  1. Describe regression as minimization of errors problem.
  2. Distinguish appropriate from inappropriate models for particular data sets
  3. 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.

坚持原创分享,您的支持是我继续创作的动力!