多元线性回归的梯度下降

符号定义

以下面这张表格为例,解释一下后面公式中出现的一些符号的含义。
eg:\(x_{j}^{(i)}\)表示表中第\(i\)行第\(j\)列的值,如\(x_{2}^{(1)}\)表示表中第\(1\)行第\(2\)列的值,即\(2\),而\(x^{(i)}\)则表示第\(i\)行(不包括y这一列)的值,如:

\[x^{(2)}=\begin{bmatrix} 6\\ 7\\ 8\\ :\\ 9\\ \end{bmatrix}\]

\(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}\)。令

\[x=\begin{bmatrix} x_{0}\\ x_{1}\\ x_{2}\\ :\\ x_{n}\\ \end{bmatrix},\theta^T=\begin{bmatrix} \theta_{0}\\ \theta_{1}\\ \theta_{2}\\ :\\ \theta_{n}\\ \end{bmatrix}\]

\(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}\)的偏导如下:

\[\frac{\partial J(\theta)}{\partial \theta_{k}}=\frac{1}{m}\sum_{i=1}^{m}x_{k}^{(i)}(h_{\theta}(x^{(i)})-y^{(i)}) \]

\[其中k=0,1,2,...,n \]

\(k=0\)时,由于\(x_{0}^{(i)}=1\),故

\[\frac{\partial J(\theta)}{\partial \theta_{0}}=\frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)}) \]

令$$\theta_{k}=\theta_{k}-\alpha\frac{\partial J(\theta)}{\partial \theta_{k}}$$
其中\(\alpha\)为学习率,在执行足够多的迭代后,即可使代价函数收敛,从而取得我们所需的参数值。

posted @ 2022-07-28 14:07  kris-phl  阅读(60)  评论(0)    收藏  举报