线性代数基础——矩阵
矩阵
\[ 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\)矩阵
简单的例子
逆矩阵
\[ 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\)的数量级可能不一样,会导致梯度下降路径变长
所以可以作类似归一化处理,进行特征缩放,保持\(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是广义逆矩阵。