机器学习入门之----线性回归

Posted qizhien

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习入门之----线性回归相关的知识,希望对你有一定的参考价值。

2019年9月22日18:22:52-2019年9月22日18:59:51

对于给定居住面积和卧室数量预测房价的问题。我们可以建立一个线性回归模型。假设具有如下形式,
\[ h(x)=\sum_i=0^n \theta_i x_i=\theta^T x \]
其中\(\theta_i\) 叫做参数(parameters),也叫权重(weights)。\(x_0=1\)截距项(intercept)。
注意,这里的记法是上标表示一个样例下标表示样例的某一个分量,\(n\)变量个数。
对于训练集中的数据,我们希望假设在输入上的预测值与输出偏差的平方和最小,所以有如下损失函数(ecost function)来衡量某个假设在训练集上的表现,
\[ \beginequation J(\theta)=\frac12 \sum_i=1^m\left(h_\theta\left(x^(i)\right)-y^(i)\right)^2 \endequation \]

最小均方算法(least mean square)

我们用梯度下降法(gradient descent)来最小化这个损失,定义了损失函数\(J(\theta)\) 之后,函数梯度下降法给以下面的规则同时更新各个参数,
\[ \beginequation \theta_j :=\theta_j-\alpha \frac\partial\partial \theta_j J(\theta) \endequation \]

现在我们来具体求出在线性回归问题上的更新公式,先假设有一个样例$\left(x^, y^\right) $ ,
\[ \beginaligned \frac\partial\partial \theta_j J(\theta) &=\frac\partial\partial \theta_j \frac12\left(h_\theta(x)-y\right)^2 \\ &=2 \cdot \frac12\left(h_\theta(x)-y\right) \cdot \frac\partial\partial \theta_j\left(h_\theta(x)-y\right) \&=\left(h_\theta(x)-y\right) \cdot \frac\partial\partial \theta_j\left(\sum_i=0^n \theta_i x_i-y\right) \\ &=\left(h_\theta(x)-y\right) x_j \endaligned \]
因此对一个样本有更新规则(对\(n\) 个变量同时进行,\(j=1,2,\ldots,n\) ),
\[ \theta_j :=\theta_j+\alpha\left(y^(i)-h_\theta\left(x^(i)\right)\right) x_j^(i) \]
上面的更新规则又叫做最小均方误差更新规则(least mean square),或者 Widrow-Hoff学习规则,来一个样本更新一次,又叫随机梯度下降或增量梯度下降(stochastic gradient descent)。随机梯度下降法,震荡比较猛一点,不过一般情况下也还好。当数据集很大时,这种方法比后面的方法更讨喜。

对于全体样例,有类似的更新规则,
\[ \beginequation \theta_j :=\theta_j+\alpha \sum_i=1^m\left(y^(i)-h_\theta\left(x^(i)\right)\right) x_j^(i) \endequation \]
这个方法在每一步会用到所有的训练样本,所以又叫做批梯度下降(batch gradient descent)。
梯度下降法可能收敛到局部最小值,但对于线性回归问题的损失函数,一个凸二次函数,只有一个全局最小值,一定收敛到全局最小值。

以上是关于机器学习入门之----线性回归的主要内容,如果未能解决你的问题,请参考以下文章

机器学习入门之----线性回归(正规方程)

机器学习入门:线性回归及梯度下降

机器学习入门 ----线性回归模型及其Python代码解析

机器学习入门:线性回归及梯度下降

Andrew Ng机器学习入门——线性回归

机器学习线性回归api快速入门