机器学习模型之线性回归

线性回归属于回归问题。所谓回归(regression),用已知样本对未知公式参数的估计。线性回归(linear regression):回归的一种,回归函数是一次函数

linear regression

线性回归

回归问题不同于分类,回归的目的使预测目标的数值。以电影为例,内地上映几部爱情电影,小红让小明帮忙从几部电影中买电影票,小明希望买到小红满意的电影,如果已知小红对爱情电影的评分公式可能为: 分数 = 3演员颜值 + 5甜蜜程度 + 2*剧情,那么小明就可以轻松判断出小红喜欢看的是哪一部,该评分公式就是所谓的回归方程,而所乘的系数为回归系数。但现实情况往往是小明并不知道小红的评分公式,但小明可以根据以往和小红一起看电影的情况,去估计出一组回归系数,用于接下来的预测。

cost function(如何评判回归系数的好坏?)

线性回归方程可表示为:
$$\hat y=\omega^Tx+b$$
小明根据以往于小红看电影的情况估计出了小红的评分公式,此公式准确意味着用此公式给电影打分,与小红给电影打分基本一致,因此可用 cost function (损失函数)表示模型的好坏,$cost = \sum_{i=1}^{m}(y_i-\hat y_i)^2$,从函数可看出,公式越准确,cost function 越小,cost function 的几何意义为预测值到真实值之间的欧式距离。

minimize cost function

如此一来,小明的任务变成了找到一个使 cost function 最小的回归方程,即最小化 cost function,可以通过:

  1. least-square method(最小二乘法)
  2. Gradient Descent(梯度下降)

least-square method

可以将 cost function 对 $w$ 和 $b$ 求导,并令倒数等于0,得到:
$$\frac{\partial cost}{\partial w}=2(w\sum_{i=1}^{m}x_i^2-\sum_{i=1}^{m}(y_i-b)x_i)=0$$

$$\frac{\partial cost}{\partial b}=2(mb-\sum_{i=1}^{m}(y_i-wx_i))=0$$
联立求解
$$w=\frac{\sum_{i=1}^{m}y_i(x_i-\overline{x})}{\sum_{i=1}^{m}x_{i}^{2}-\frac{1}{m}(\sum_{i=1}^{m}x_i)^2}$$
$$b=\frac{1}{m}\sum_{i=1}^{m}(y_i-wx_i)$$
对于多元线性函数则有:

$$\hat{w}=arg min(\boldsymbol{y}-\mathbf{X})^T(\boldsymbol{y}-\mathbf{X}w)$$

对 $w$ 求导得(推导过程见此
$$\frac{\partial cost}{\partial w} =2\mathbf{X}^T(\mathbf{X}w-y)$$
令上式等于0,当 $\mathbf{X}^T\mathbf{X}$ 为满秩矩阵时,得
$$\hat{w}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^Ty$$
当 $\mathbf{X}^T\mathbf{X}$ 非满秩矩阵时(出现这个情况的原因可能是1.各个特征不独立、有关联;2.特征数量大于所给训练集样本个数),可以求得多个 $\hat{w}$ 使误差最小,可以引入正则化的方法。

Gradient Descent

此部分可参考刘建平Pinard

梯度下降法基本步骤:

  1. 确定当前位置的损失函数的梯度,对于 $\theta _i$ ,其梯度表达式如下:$\frac{\partial}{\partial\theta_i}J(\theta_0, \theta_1…, \theta_n)$
  2. 用步长乘以损失函数的梯度,得到当前位置下降的距离,即$\alpha\frac{\partial}{\partial\theta_i}J(\theta_0, \theta_1…, \theta_n)$对应于前面登山例子中的某一步。
  3. 确定是否所有的$\theta _i$,梯度下降的距离都小于$\varepsilon$,如果小于$\varepsilon$则算法终止,当前所有的$\theta_i(i=0,1,…n)$即为最终结果。否则进入步骤4.
  4. 更新所有的$\theta$,对于$\theta_i$,其更新表达式如下。更新完毕后继续转入步骤1.
    $\theta_i = \theta_i - \alpha\frac{\partial}{\partial\theta_i}J(\theta_0, \theta_1…, \theta_n)$

梯度下降法的直观解释

在设计域中任意选取一初始点,从该点开始寻找下山方向,每走一步,便计算一下该点导数,并继续沿负梯度方向(梯度下降最快方向)走,直到达到极值点为止。

参考资料

http://chuansong.me/n/1100393

http://wiki.jikexueyuan.com/project/deep-learning/getting-start.html

https://zhuanlan.zhihu.com/p/22474562

https://blog.csdn.net/xiazdong/article/details/7950084

https://blog.csdn.net/XieNaoban/article/details/55004149

https://blog.csdn.net/lixianjun913/article/details/52191721

本文标题:机器学习模型之线性回归

文章作者:微石

发布时间:2018年05月24日 - 15:05

最后更新:2018年07月19日 - 17:07

原始链接:akihoo.github.io/posts/b8c5a83b.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。