# 多元线性回归梯度下降法
$f_{\vec{w}, b}(\vec{x})=\vec{w} \cdot \vec{x}+b=w_1 x_1+w_2 x_2+w_3 x_3+\cdots+w_n x_n+b$
成本函数:$$J(\mathbf{w},b) = \frac{1}{2m} \sum\limits_{i = 0}^{m-1} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})^2$$
更新参数:$$\begin{align*} \; \newline\;
& w_j = w_j - \alpha \frac{\partial J(\mathbf{w},b)}{\partial w_j} \; & \text{for j = 0..n-1}\newline
&b\ \ = b - \alpha \frac{\partial J(\mathbf{w},b)}{\partial b} \newline
\end{align*}$$
其中
$$
\begin{align}
\frac{\partial J(\mathbf{w},b)}{\partial w_j} &= \frac{1}{m} \sum\limits_{i = 0}^{m-1} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})x_{j}^{(i)} \\
\frac{\partial J(\mathbf{w},b)}{\partial b} &= \frac{1}{m} \sum\limits_{i = 0}^{m-1} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})
\end{align}
$$
各符号表示的含义:
$x^{(i)}$:第i个例子,$x^{(i)}_{j}$:第i个例子下的第j个数据
为了便于编写代码,将上面公式改写成矩阵形式,有$m$组数据,每组数据有$n$个变量:
$\vec{f}=\mathbf{x}\vec{w}+\vec{b}$,其中,$\mathbf{x}=\begin{equation*}
\begin{bmatrix} {x_{11}} &{x_{12}}&\cdots&{x_{1n}} \\
{x_{21}}&{x_{22}}&\cdots & {x_{2n}}\\
\vdots&\vdots& \ddots&\vdots \\
{x_{m1}}&{x_{m2}}&\cdots&{x_{mn}}
\end{bmatrix}
\end{equation*}_{m\times n}$,$\vec{w}=\begin{equation*}\begin{bmatrix} {w_1}\\{w_2}\\\vdots\\{w_n}\end{bmatrix}\end{equation*}_{n\times 1}$,$\vec{b}=\begin{equation*}\begin{bmatrix} {b_1}\\{b_2}\\\vdots\\{b_m}\end{bmatrix}\end{equation*}_{m\times 1}$,预测值$\vec{f}=\begin{equation*}\begin{bmatrix} {f_1}\\{f_2}\\\vdots\\{f_m}\end{bmatrix}\end{equation*}_{m\times 1}$,实际值$\vec{y}=\begin{equation*}\begin{bmatrix} {y_1}\\{y_2}\\\vdots\\{y_m}\end{bmatrix}\end{equation*}_{m\times 1}$
成本函数:$$J(\mathbf{w},b) = \frac{1}{2m} \sum\limits_{i = 0}^{m-1} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})^2$$ 对应的矩阵形式:$J(\mathbf{w},b) = \frac{1}{2m}(\vec{f} - \vec{y})^T(\vec{f} - \vec{y})$
更新变量:$\vec{w}^T=\vec{w}^T-\alpha\cdot\frac{1}{m}\cdot (\vec{f} - \vec{y})^T \mathbf{x} \\ \vec{b}=\vec{b}-\alpha\cdot\frac{1}{m}\cdot np.sum((\vec{f} - \vec{y}))$
原稿: