多元线性回归的梯度下降
符号定义
以下面这张表格为例,解释一下后面公式中出现的一些符号的含义。
eg:\(x_{j}^{(i)}\)表示表中第\(i\)行第\(j\)列的值,如\(x_{2}^{(1)}\)表示表中第\(1\)行第\(2\)列的值,即\(2\),而\(x^{(i)}\)则表示第\(i\)行(不包括y这一列)的值,如:
而\(y^{(i)}\)则表示\(y\)所在的列中第\(i\)行的值,如\(y^{(2)}=10\)。即将上角标作为行索引,下角标作为列索引
| \(x_{1}\) | \(x_{2}\) | \(x_{3}\) | ... | \(x_{n}\) | \(y\) |
|---|---|---|---|---|---|
| \(1\) | \(2\) | \(3\) | \(...\) | \(4\) | \(5\) |
| \(6\) | \(7\) | \(8\) | \(...\) | \(9\) | \(10\) |
| \(:\) | \(:\) | \(:\) | \(...\) | \(:\) | \(:\) |
| \(11\) | \(12\) | \(13\) | \(...\) | \(14\) | \(15\) |
多元线性回归函数
设多元线性回归函数\(h_{\theta}(x)=\theta_{0}+\theta_{1}x_{1}+...+\theta_{n}x_{n}\)。先来看只有一组数据的情况,添加一个数\(x_{0}=1\),则\(h_{\theta}(x)=\theta_{0}x_{0}+\theta_{1}x_{1}+...+\theta_{n}x_{n}=\sum_{j=0}^{n}\theta_{j}x_{j}\)。令
则\(h_{\theta}(x)=\theta x\)
代价函数
若只有一组数据\((x_{0},x_{1},x_{2},...x_{n},y)\),则代价函数\(J(\theta)=\frac{1}{2}(h_{\theta}(x)-y)^2\),其中\(h_{\theta}(x)\)为回归函数得到的值,\(y\)为我们观测的值,即真实值。
若有m组数据,添加一个\(m×1\)的列向量\(x_{0}\),其值全为\(1\),则代价函数\(J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2\),其中
\(h_{\theta}(x^{(i)})=\theta_{0}x_{0}^{(i)}+\theta_{1}x_{1}^{(i)}+...+\theta_{n}x_{n}^{(i)}\)
梯度下降
梯度下降的目的即找到一组数\(\theta_{0},\theta_{1},...\theta_{n}\)使代价函数\(J(\theta)\)最小,由于参数较多,若直接用多元函数求极值的方法会比较难求,因此使用梯度下降,通过计算函数在某点的梯度来不断更新参数值以使代价函数值更小。代价函数对参数\(\theta_{k}\)的偏导如下:
当\(k=0\)时,由于\(x_{0}^{(i)}=1\),故
令$$\theta_{k}=\theta_{k}-\alpha\frac{\partial J(\theta)}{\partial \theta_{k}}$$
其中\(\alpha\)为学习率,在执行足够多的迭代后,即可使代价函数收敛,从而取得我们所需的参数值。

浙公网安备 33010602011771号