数学之路(3)-机器学习(3)-机器学习算法-最小二乘法与回归[1]

一、范数

被选择的参数,应该使算出的函数曲线与观测值之差的平方和最小。用函数表示为:

 \min_{\vec{x}} { \sum_{i=1}^{n}(y_m - y_i)^2} .

用欧几里得度量表达为:

 \min_{ \vec{x} } \| \vec{y}_{m} ( \vec{x} ) - \vec{y} \|_{2} \ .



1-范数:是指向量(矩阵)里面非零元素的个数。类似于求棋盘上两个点间的沿方

格边缘的距离。
              ||x||1 = sum(abs(xi));
2-范数(或Euclid范数):是指空间上两个向量矩阵的直线距离。类似于求棋盘上两点见的直线距离   (无需只沿方格边缘)。
               ||x||2 = sqrt(sum(xi.^2));
∞-范数(或最大值范数):顾名思义,求出向量矩阵中其中模最大的向量。

               ||x||∞ = max(abs(xi));


矩阵范数:矩阵A的2范数就是 A的转置乘以A矩阵特征根 最大值的开根号;
函数范数:函数f(x)的2范数是x在区间(a,b)上f(x)的平方的积分再开根号。







二、简单线性回归

被选择的参数,应该使算出的函数曲线与观测值之差的平方和最小。用函数表示为:

 \min_{\vec{x}} { \sum_{i=1}^{n}(y_m - y_i)^2} .

欧几里得度量表达为:

 \min_{ \vec{x} } \| \vec{y}_{m} ( \vec{x} ) - \vec{y} \|_{2} \ .


线性函数模型。最简单的线性式是y = x_0 + x_1 t,写成行列式,为

 \min_{x_0,x_1}\left\|\begin{pmatrix}1 & t_1 \\ \vdots & \vdots \\ 1 & t_n  \end{pmatrix} \begin{pmatrix} x_0\\ x_1\end{pmatrix} - \begin{pmatrix} y_1 \\ \vdots \\ y_{n}\end{pmatrix}\right\|_{2} = \min_x\|Ax-b\|_2.

直接给出该式的参数解:

x_1 = \frac{\sum_{i=1}^n t_iy_i - n \cdot \bar t \bar y}{\sum_{i=1}^n t_i^2- n \cdot (\bar t)^2} 和 x_0 = \bar y - x_1 \bar t

其中\bar t = \frac{1}{n} \sum_{i=1}^n t_i,为t值的算术平均值。也可解得如下形式:

x_1 = \frac{\sum_{i=1}^n (t_i - \bar t)(y_i - \bar y)}{\sum_{i=1}^n (t_i - \bar t)^2}

简单线性模型 y = x0 + x1t 的例子

随机选定10艘战舰,并分析它们的长度与宽度,寻找它们长度与宽度之间的关系。由下面的描点图可以直观地看出,一艘战舰的长度(t)与宽度(y)基本呈线性关系。散点图如下: 散点图

以下图表列出了各战舰的数据,随后步骤是采用最小二乘法确定两变量间的线性关系。

编号 长度 (m) 宽度 (m) ti - t yi - y


i ti yi ti* yi* ti*yi* ti*ti* yi*yi*
120821.640.23.19128.2381616.0410.1761
215215.5-15.8-2.9145.978249.648.4681
311310.4-54.8-8.01438.9483003.0464.1601
422731.059.212.59745.3283504.64158.5081
513713.0-30.8-5.41166.628948.6429.2681
623832.470.213.99982.0984928.04195.7201
717819.010.20.596.018104.040.3481
810410.4-63.8-8.01511.0384070.4464.1601
919119.023.20.5913.688538.240.3481
1013011.8-37.8-6.61249.8581428.8443.6921
总和(Σ) 1678 184.1 0.0 0.00 3287.820 20391.60 574.8490


仿照上面给出的例子

\bar t = \frac {\sum_{i=1}^n t_i}{n} = \frac {1678}{10} = 167{.}8 并得到相应的\bar y = 18{.}41.

然后确定x1

x_1 = \frac{\sum_{i=1}^n (t_i- \bar {t})(y_i - \bar y)}{\sum_{i=1}^n (t_i- \bar t)^2}
 = \frac{3287{.}820} {20391{.}60} = 0{.}1612 \;,

可以看出,战舰的长度每变化1m,相对应的宽度便要变化16cm。并由下式得到常数项x0

x_0 = \bar y - x_1 \bar t = 18{.}41 - 0{.}1612 \cdot 167{.}8 = -8{.}6394\;,


三、一般线性情况 

含有更多不相关模型变量t_1, ..., t_q,可如组成线性函数的形式

y(t_1,\dots,t_q;x_0, x_1, \dots, x_q )= x_0 + x_1 t_1 + \cdots + x_q t_q

即线性方程组

 \begin{matrix}x_0 + x_1 t_{11} + \cdots + x_j t_{1j}+ \cdots +x_q t_{1q} = y_1\\x_0 + x_1 t_{21} + \cdots + x_j t_{2j}+ \cdots +x_q t_{2q} = y_2\\\vdots \\x_0 + x_1 t_{i1} + \cdots + x_j t_{ij}+ \cdots +x_q t_{iq}= y_i\\\vdots\\x_0 + x_1 t_{n1} + \cdots + x_j t_{nj}+ \cdots +x_q t_{nq}= y_n\end{matrix}

通常人们将tij记作数据矩阵 A,参数xj记做参数矢量x,观测值yi记作b,则线性方程组又可写成:

 \begin{pmatrix}1 & t_{11} & \cdots & t_{1j} \cdots & t_{1q}\\1 & t_{21} & \cdots & t_{2j} \cdots & t_{2q}\\\vdots \\1 & t_{i1} & \cdots & t_{ij} \cdots & t_{iq}\\\vdots\\1 & t_{n1} & \cdots & t_{nj} \cdots & t_{nq}\end{pmatrix}\cdot\begin{pmatrix}x_0\\x_1\\x_2\\\vdots \\x_j\\\vdots\\x_q\end{pmatrix}=\begin{pmatrix}y_1\\y_2\\\vdots \\y_i\\\vdots\\y_n\end{pmatrix} 即 Ax = b

上述方程运用最小二乘法导出为线性平差计算的形式为:

\min_x\|Ax-b\|_2

最小二乘法的解

\min_x \left \|\boldsymbol{Ax}- \boldsymbol{b} \right \|_2,\boldsymbol{A}\in\mathbf{C}^{m\times n},\boldsymbol{b}\in\mathbf{C}^{n}

的特解为A的广义逆矩阵与b的乘积,这同时也是二范数极小的解,其通解为特解加上A的零空间。证明如下:

先将b拆成A的值域及其正交补两部分

\boldsymbol{b}=\boldsymbol{b}_{1}+\boldsymbol{b}_{2}
\boldsymbol{b}_{1}=\boldsymbol{A}\boldsymbol{A}^\dagger\boldsymbol{b}\in R\left(\boldsymbol{A} \right)
\boldsymbol{b}_{2}=\left(\boldsymbol{I}- \boldsymbol{A}\boldsymbol{A}^\dagger \right)\boldsymbol{b}\in R\left(\boldsymbol{A} \right)^{\bot}

所以\boldsymbol{Ax}-\boldsymbol{b}_{1}\in R\left(\boldsymbol{A} \right),可得

\left \| \boldsymbol{Ax}- \boldsymbol{b} \right \|^{2}=\left \| \boldsymbol{Ax}- \boldsymbol{b}_{1} +\left(-\boldsymbol{b}_{2}\right) \right \|^{2}=\left \| \boldsymbol{Ax}- \boldsymbol{b}_{1} \right \|^{2}+\left \|\boldsymbol{b}_{2} \right \|^{2}

故当且仅当\boldsymbol{x}\boldsymbol{Ax}= \boldsymbol{b}_{1} =\boldsymbol{A}\boldsymbol{A}^\dagger\boldsymbol{b}解时,\boldsymbol{x}即为最小二乘解,即\boldsymbol{x}=\boldsymbol{A}^\dagger \boldsymbol{b}

又因为

N\left(\boldsymbol{A}\right)=N\left(\boldsymbol{A}^\dagger \boldsymbol{A}\right)=R\left(\boldsymbol{I}-\boldsymbol{A}^\dagger \boldsymbol{A}\right)=\left\{ \left(\boldsymbol{I}-\boldsymbol{A}^\dagger \boldsymbol{A} \right) \boldsymbol{h}:\boldsymbol{h}\in\mathbf{C}^{n}  \right\}

\boldsymbol{Ax}=\boldsymbol{A}\boldsymbol{A}^\dagger\boldsymbol{b}的通解为

\boldsymbol{x}=\boldsymbol{A}^\dagger\boldsymbol{b}+\left(\boldsymbol{I}-\boldsymbol{A}^\dagger \boldsymbol{A} \right) \boldsymbol{h}:\boldsymbol{h}\in\mathbf{C}^{n}

因为

\begin{align}\left \| \boldsymbol{A}^\dagger\boldsymbol{b}\right \|^{2} & < \left \| \boldsymbol{A}^\dagger\boldsymbol{b} \right \|^{2}+ \left \| \left(\boldsymbol{I}-\boldsymbol{A}^\dagger \boldsymbol{A} \right) \boldsymbol{h} \right \|^{2} \\& = \left \| \boldsymbol{A}^\dagger\boldsymbol{b} + \left(\boldsymbol{I}-\boldsymbol{A}^\dagger \boldsymbol{A} \right) \boldsymbol{h} \right \|^{2},\left(\boldsymbol{I}-\boldsymbol{A}^\dagger \boldsymbol{A} \right) \boldsymbol{h}\neq\boldsymbol{0} \\\end{align}

所以\boldsymbol{A}^\dagger \boldsymbol{b}又是二范数极小的最小二乘解。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值