线性代数基础——矩阵

矩阵

\[ A= \left[\begin{matrix} 1402 & 191 \\ 1371 & 821 \\ 949 & 1437 \\ 147 & 1448 \\ \end{matrix}\right] \]

上述\(A\)是一个\(4\times2\)矩阵。(n行乘m列)

向量

即一个\(n\times1\)矩阵,如

\[ y= \left[\begin{matrix} 460 \\ 232 \\ 315 \\ 178 \\ \end{matrix}\right] \]

注意上面的表示方式,
一般大写字母表示矩阵,小写字母表示向量。

矩阵运算

矩阵乘法

注意左右顺序不能调换

\(3\times2\)矩阵乘\(2\times5\)矩阵,变成\(3\times5\)矩阵

简单的例子

02_p1
02_p1

逆矩阵

\[ AA^{-1}=A^{-1}A=1 \]

不存在逆矩阵的矩阵称为奇异矩阵或退化矩阵

转置

\[ A\rightarrow A^T \]

横纵互换

多元变量问题

找最值的几种常规方法:
梯度下降法
牛顿法
正规方程(最小二乘法)

多元变量梯度下降

\[ \begin{aligned} &h_\theta\left(x\right)=h_\theta\left(x_1,x_2,\cdots,x_n\right)=\theta_0+\theta_1x_1+\theta_2x_2+⋯+\theta_nx_n  \left(x_0=1\right) \\ &J\left(\theta_1,\cdots,\theta_n\right)=\frac{1}{2m}\sum\left[h\left(x_1^{\left(i\right)},x_2^{\left(i\right)},\cdots,x_n^{\left(i\right)}\right)-y^{\left(i\right)}\right]^2 \\ \end{aligned} \]

特征缩放(归一化)

\(x_i\)的数量级可能不一样,会导致梯度下降路径变长

02_p2
02_p2

所以可以作类似归一化处理,进行特征缩放,保持\(x_i∈\left[-1,1\right]\)

\[ x→\frac{x-\mu}{s} \]

均值\(\mu\)
范围\(s=max{\left(x^{\left(i\right)}\right)}−min{\left(x^{\left(i\right)}\right)}\)
有时也可以将标准差作为\(s\)

学习率选取

\(\alpha\)可以视情况变化

多项式回归

\[ h\left(x\right)=\theta_0+\theta_1x+\theta_2x^2+\cdots \]

看起来有\(x\)的高次项,实际上仍然是线性回归问题。
因为\(x\)是已知量,无所谓,我们求的参数\(\theta_i\)仍然是线性关系。
其实不妨看作\(x_1=x,x_2=x^2,\cdots\)

大数据机器学习

“批量”梯度下降(Batch)

梯度下降的每一步都使用了全部的训练样本。
上面说的一直就是这样。

随机梯度下降

梯度下降的每一步都使用一个训练样本。
速度更快,但更可能振荡、不收敛。

“小批量”梯度下降

梯度下降的每一步都使用一小批训练样本(部分的\(\left(x^{\left(i\right)},y^{\left(i\right)}\right)\))。
有时把这种也统称为随机梯度下降。

正规方程法

即直接用矩阵乘法求解(与最小二乘法等效)

\[ X= \left[\begin{matrix} 1&x_1^{\left(1\right)}&x_2^{\left(1\right)}&\cdots&x_n^{\left(1\right)} \\ \vdots&&&&\vdots \\ 1&x_1^{\left(m\right)}&x_2^{\left(m\right)}&\cdots&x_n^{\left(m\right)} \\ \end{matrix}\right] \]

\(X\)\(m\times\left(n+1\right)\)矩阵

\[ \theta= \left[\begin{matrix} \theta_0 \\ \theta_1 \\ \theta_2 \\ \vdots \\ \theta_n \\ \end{matrix}\right] \]

\(\theta\)\(\left(n+1\right)\times1\)矩阵

\[ y=\left[\begin{matrix} y^{\left(1\right)} \\ \vdots\\y^{\left(m\right)} \\ \end{matrix}\right] \]

\(y\)\(m\times1\)向量

那么三者关系可以表示为

\[ X\theta=y \]

用线性代数方法求解。

\(X\)很可能不可逆,因此转化一下

\[ \begin{aligned} &X^TX\theta=X^Ty \\ &\theta=\left(X^TX\right)^{-1}X^Ty \\ \end{aligned} \]

当然,\(X^TX\)也可能不可逆,
用广义逆矩阵就行。
matlab里inv是逆矩阵,pinv是广义逆矩阵。