假设 n−1n - 1n−1 维空间变量点为 x⃗=(x1,x2,⋯ ,xn−1)T\vec{x}= (x_1, x_2,
\cdots, x_{n-1})^Tx=(x1​,x2​,⋯,xn−1​)T , 并假设有 mmm 个这样的样本点 记为 x⃗(1),x⃗(2),⋯
 ,x⃗(m)\vec{x}^{(1)}, \vec{x}^{(2)}, \cdots ,\vec{x}^{(m)}x(1),x(2),⋯,
x(m),我们希望找到一个这样的超平面,来使得尽可能的拟合这些样本点,形式化表示等价于我们希望找到这样的系数 w⃗\vec{w}w 和 bbb 使得 w⃗Tx⃗
+b≈y{\vec{w}}^T\vec{x}+b \approx ywTx+b≈y ,为了简化上述表达式,我们将 w⃗\vec{w}w 和 bbb
放到一起简记为(w⃗T,b)=w⃗T({\vec{w}}^T,b) = {\vec{w}}^T(wT,b)=wT,并令 x⃗n(i)=1
\vec{x}^{(i)}_{n} = 1xn(i)​=1,于是上述表达式等价于找到 w⃗\vec{w}w 使得 w⃗Tx⃗≈y
{\vec{w}}^T\vec{x}\approx ywTx≈y

我们记样本点集为矩阵 XXX,则有 X=(x⃗(1)Tx⃗(2)T⋮x⃗(m)T)=(x1(1)x2(1)⋯xn(1)x1(2)x2(2)⋯xn(2)⋮⋮⋱⋮
x1(m)x2(m)⋯xn(m))X = \begin{pmatrix} {\vec{x}^{(1)}}^{T} \\ {\vec{x}^{(2)}}^{T}
\\ \vdots \\ {\vec{x}^{(m)}}^{T} \end{pmatrix} = \begin{pmatrix} x_1^{(1)}
& x_2^{(1)} & \cdots & x_n^{(1)}\\ x_1^{(2)} & x_2^{(2)} &
\cdots & x_n^{(2)}\\ \vdots & \vdots & \ddots & \vdots \\
x_1^{(m)} & x_2^{(m)} & \cdots & x_n^{(m)}\\ \end{pmatrix}X=⎝⎜⎜⎜⎜⎛​x
(1)Tx(2)T⋮x(m)T​⎠⎟⎟⎟⎟⎞​=⎝⎜⎜⎜⎜⎛​x1(1)​x1(2)​⋮x1(m)​​x2(1)​x2(2)​⋮x2(m)​​⋯⋯⋱⋯​xn(1
)​xn(2)​⋮xn(m)​​⎠⎟⎟⎟⎟⎞​

于是上述表述等价于找到 w⃗\vec{w}w 使得 Xw⃗≈y⃗X\vec{w} \approx \vec{y}Xw≈y​.

考虑这样的一个特殊情形:假设所有的样本点正好在一个超平面,且样本点所张成的空间(Span SpaceSpan\ SpaceSpan Space)为该 nnn
维空间,意味着m≥nm \ge nm≥n 且 rank(X)=nrank(X) = nrank(X)=n
此时方程 Xw⃗=y⃗X\vec{w} = \vec{y}Xw=y​ 恰好有唯一解(即为该超平面) ,推导如下:Xw⃗=y⃗⇔XTXw⃗=XTy⃗⇔w⃗=(
XTX)−1XTy⃗X\vec{w} = \vec{y} \Leftrightarrow X^TX\vec{w}=X^T\vec{y}
\Leftrightarrow \vec{w} = (X^TX)^{-1}X^T\vec{y}Xw=y​⇔XTXw=XTy​⇔w=(XTX)−1XTy​

(注:因为 XXX 为列满秩,所以 rank(XTX)=rank(X)=nrank(X^TX)= rank(X) = nrank(XTX)=rank(X)=n
,即XTXX^TXXTX 为可逆方阵)

而对于一般情形,所有的样本点一般不会在同一个超平面中,所以方程 Xw⃗=y⃗X\vec{w} = \vec{y}Xw=y​
此时是无解的,这个方程组也称之为超定方程组(Overdetermined SystemOverdetermined\ SystemOverdetermined 
System),即方程数量超过未知数个数,此时我们希望找到一个超平面使得 Xw⃗≈y⃗X\vec{w} \approx \vec{y}Xw≈y​ 且误差 ∥Xw
⃗−y⃗∥\Vert X\vec{w} - \vec{y}\Vert∥Xw−y​∥ 尽可能的小(这里符号∥ ∥\Vert\ \Vert∥ ∥ 为 L2L_2L2
​范数,利用度量欧几里得距离来衡量误差大小是比较符合常识的)。形式化表达等价于 w^⃗=arg⁡min⁡w⃗∥Xw⃗−y⃗∥\vec{\hat{{w}}} =
\arg\min_{\vec{w}}\Vert X\vec{w} - \vec{y}\Vertw^=argwmin​∥Xw−y​∥

为了便于计算,我们不妨令 w^⃗=arg⁡min⁡w⃗∥Xw⃗−y⃗∥=arg⁡min⁡w⃗∥Xw⃗−y⃗∥2\vec{\hat{{w}}} =
\arg\min_{\vec{w}}\Vert X\vec{w} - \vec{y}\Vert = {\arg\min_{\vec{w}}\Vert
X\vec{w} - \vec{y}\Vert}^2w^=argwmin​∥Xw−y​∥=argwmin​∥Xw−y​∥2

且令 L(w1,w2,⋯ ,wn)=∥Xw⃗−y⃗∥2L(w_1,w_2,\cdots,w_n)={\Vert X\vec{w} -
\vec{y}\Vert}^2L(w1​,w2​,⋯,wn​)=∥Xw−y​∥2

仍不妨假设此时 XXX 是列满秩的
上述问题转化为了求极值问题,我们很自然的想到了利用导数来寻找极值。
于是对 wiw_iwi​ 求偏导且令其为零 ∂L∂wi=2(xi(1),xi(2),⋯ ,xi(m))(Xw⃗−y⃗)=0
\frac{\partial{L}}{\partial{w_i}}=2(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(m)})(X\vec{w}-\vec{y})=0
∂wi​∂L​=2(xi(1)​,xi(2)​,⋯,xi(m)​)(Xw−y​)=0

于是 (∂L∂w1,∂L∂w2,⋯ ,∂L∂wn)T=0⃗T⇔2XT(Xw⃗−y⃗)=0⃗⇔XTXw⃗−XTy⃗=0⃗
(\frac{\partial{L}}{\partial{w_1}}, \frac{\partial{L}}{\partial{w_2}},
\cdots,\frac{\partial{L}}{\partial{w_n}})^T=\vec{0}^T \Leftrightarrow
2X^T(X\vec{w}-\vec{y})=\vec{0} \Leftrightarrow X^TX\vec{w}-X^T\vec{y}=\vec{0}(∂w
1​∂L​,∂w2​∂L​,⋯,∂wn​∂L​)T=0T⇔2XT(Xw−y​)=0⇔XTXw−XTy​=0

即推出 w⃗=(XTX)−1XTy⃗\vec{w}=(X^TX)^{-1}X^T \vec{y}w=(XTX)−1XTy​

上述就是众所周知的线性最小二乘法的基本思想
然而,这里会有两个问题
(1) 为什么在这个情况下我们找到的是极小值?
(2) 为什么这个极小值就是我们需要的最小值?

技术
©2019-2020 Toolsou All rights reserved,
Qt学习2——.pro文件和.h文件介绍LinkedHashMap基本用法&使用实现简单缓存pytorch之ResNet18(对cifar10数据进行分类准确度达到94%)华为Mate 40 Pro+ 5G曝光:徕卡电影镜头、陶瓷机身统计字母个数(java语言实现)JavaScript中的 Call 和 Apply1190 反转每对括号间的子串 leetcode记一次EventBus内存泄露导致的项目问题浅谈uni-app页面传值问题 Chrome OS,对程序员和Windows意味着什么?,互联网营销