什么是线性回归?
线性回归是在假设特征满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。其函数形式为:
向量的表达形式为:
线性回归模型是如何进行训练?
首先我们已经确定好了线性回归模型的形式了,训练的时候提供给我们的是数据,为了能够去拟合提供的数据,模型需要去改变参数
的值,通过一定次数的迭代优化,最终找到了最优参数
使得
,一次次的迭代优化的过程便是模型的训练。
模型是根据什么进行训练?
目标函数,模型训练的目的是要最小化损失函数或者最大化预测概率。线性回归模型一般是最小化损失函数,它所用的损失函数可能是平方误差,即:
![](https://img.haomeiwen.com/i14205016/002cbf03e9bfc8b0.png)
如何使这个目标函数最小呢?
可以对这个函数进行求导,首先我们需要将模型公式代入目标函数中:
![](https://img.haomeiwen.com/i14205016/c3d6bc931a500de9.png)
我们希望这个函数在
![](https://img.haomeiwen.com/i14205016/06297df63e6ea0b0.png)
![](https://img.haomeiwen.com/i14205016/135049710e809279.png)
很明显,公式中的参数m,b,w都与i无关,简化时可以直接提出来。
令这两个偏导等于0,求解方程组,解得:
![](https://img.haomeiwen.com/i14205016/b2eb3ae0fff4fcbf.png)
![](https://img.haomeiwen.com/i14205016/a68b0b99a35f8364.png)
这样我们通过提供的数据求出
![](https://img.haomeiwen.com/i14205016/5bda929566e18e19.png)
那么标签矩阵可以用mx1来表示:
![](https://img.haomeiwen.com/i14205016/dd6656f571a788e3.png)
为了构建线性模型,我们还需要1xn的参数矩阵:
![](https://img.haomeiwen.com/i14205016/055ee838fe9bb93d.png)
(当然还需要有bias,为了推导方便没有加)
所以我们的线性模型为:
![](https://img.haomeiwen.com/i14205016/1dfcdac83b8a4fab.png)
h(x)表示假设,即hypothesis。通过矩阵乘法,我们知道结果是一个n×1的矩阵。 跟前面推导单变量的线性回归模型时一样,列出目标函数:
![](https://img.haomeiwen.com/i14205016/1e04d4210c746253.png)
这里的1/2并无太大意义,只是为了求导时能将参数正好消掉而加上。目标函数代表了误差,我们希望它尽可能地小,所以要对它求偏导并令偏导数为0,求解方程。
在求偏导之前先展开一下:
![](https://img.haomeiwen.com/i14205016/f3de8bb7e037956a.png)
![](https://img.haomeiwen.com/i14205016/e85fbb39b86cd885.png)
在求导之前,提供几个常见的矩阵求导公式:
![](https://img.haomeiwen.com/i14205016/5cf0aba6128481ea.png)
![](https://img.haomeiwen.com/i14205016/d5029609786c02f7.png)
![](https://img.haomeiwen.com/i14205016/d797350211dfc88b.png)
接下来开始对目标函数求关于参数的偏导:
![](https://img.haomeiwen.com/i14205016/48f2d8334c0efa6b.png)
![](https://img.haomeiwen.com/i14205016/3e96ad81d5aa1e71.png)
最后简化为:
![](https://img.haomeiwen.com/i14205016/b3cd0f705dcb7335.png)
令偏导为0:
![](https://img.haomeiwen.com/i14205016/87bb2d14149f638c.png)
最后求出参数解:
![](https://img.haomeiwen.com/i14205016/1b0dc567bccbbdb2.png)
好的,大功告成
网友评论