引言
上一篇笔记中已经记录了,如何对一个无解的线性方程组(Ax=b)求近似解。在这里,我们先来回顾两个知识点:
- 如何判断一个线性方程组无解:如果拿上面那个方程组(Ax=b)举例,那就是向量(b)不在矩阵A对应的列空间中,至于列空间的概念,可以参考
四个基本子空间
那篇笔记 - 如何对无解的方程组求近似解:根据上一篇笔记
如何寻找一个投影矩阵
可以有这么一个思路,将向量(b)往矩阵(A)所在的列空间投影得到向量(f),得到新的方程组(Ahat{x}=f),这个(hat{x})便为近似解了。如果仅仅为了求近似解可以直接在(Ax=b)等式左右两侧同时左乘(A^{mathrm{T}}),即(A^{mathrm{T}}Ax=A^{mathrm{T}}b)。这个和上面先求投影向量再求解是一样的。
这篇笔记将会探究在机器学习的线性回归如何求解损失函数。
(Ax=b)无解时求近似解
今天我们需要求一个线性方程组,长成这样$$
egin{equation}
left {
egin{array}{lr}
2 * w_1 + 2 * w_2 + b = 14
4 * w_1 - 1 * w_2 + b = 5
4 * w_1 + 0 * w_2 + b = 4
4 * w_1 - 2 * w_2 + b = 3
0 * w_1 - 3 * w_2 + b = -20
end{array}
ight.
end{equation}
egin{equation}
left [
egin{matrix}
2 & 2 & 1
4 & -1 & 1
4 & 0 & 1
4 & -2 & 1
0 & -3 & 1
end{matrix}
ight]
left [
egin{matrix}
w_1
w_2
b
end{matrix}
ight]=
left [
egin{matrix}
14
5
4
3
-20
end{matrix}
ight]
end{equation}
egin{equation}
left [
egin{matrix}
2 & 4 & 4 & 4 & 0
2 & -1 & 0 & -2 & -3
1 & 1 & 1 & 1 & 1
end{matrix}
ight]
left [
egin{matrix}
2 & 2 & 1
4 & -1 & 1
4 & 0 & 1
4 & -2 & 1
0 & -3 & 1
end{matrix}
ight]
left [
egin{matrix}
hat{w_1}
hat{w_2}
hat{b}
end{matrix}
ight]=
left [
egin{matrix}
2 & 4 & 4 & 4 & 0
2 & -1 & 0 & -2 & -3
1 & 1 & 1 & 1 & 1
end{matrix}
ight]
left [
egin{matrix}
14
5
4
3
-20
end{matrix}
ight]
end{equation}
egin{equation}
left [
egin{matrix}
52 & -8 & 14
-8 & 18 & -4
14 & -4 & 5
end{matrix}
ight]
left [
egin{matrix}
hat{w_1}
hat{w_2}
hat{b}
end{matrix}
ight]=
left [
egin{matrix}
72
73
6
end{matrix}
ight]
end{equation}
egin{equation}
price = w_1 * x_1 + w_2 * x_2 + b
end{equation}
egin{equation}
J(w_1, w_2, b) = sum_{i=1}{n}(price_i-y_i)2
end{equation}
egin{equation}
J(w_1, w_2, b) = (price-y)^{mathrm{T}}(price-y)
end{equation}
egin{equation}
J(w) = (Xw-y)^{mathrm{T}}(Xw-y)
end{equation}
X=left[
egin{matrix}
第一笔数据的 x1 & x2 & 1
第二笔数据的 x1 & x2 & 1
.
.
.
第n笔数据的 x1 & x2 & 1
end{matrix}
ight]
w =left[
egin{matrix}
w_1
w_2
b
end{matrix}
ight]
egin{equation}
J(w) = (w{mathrm{T}}X{mathrm{T}}-y^{mathrm{T}})(Xw-y)
end{equation}
egin{equation}
J(w) = w{mathrm{T}}X{mathrm{T}}Xw-y{mathrm{T}}Xw-w{mathrm{T}}X{mathrm{T}}y+y{mathrm{T}}y
end{equation}
egin{equation}
J(w) = w{mathrm{T}}X{mathrm{T}}Xw-2w{mathrm{T}}X{mathrm{T}}y+y^{mathrm{T}}y
end{equation}
egin{equation}
J(x) = w^{mathrm{T}}Aw - 2w^{mathrm{T}}b + c subject to A = X^{mathrm{T}}X
b=X^{mathrm{T}}y
c=y^{mathrm{T}}y
end{equation}
egin{equation}
2X^{mathrm{T}}Xw - 2X^{mathrm{T}}y = 0
end{equation}
egin{equation}
w = (X{mathrm{T}}X){-1}X^{mathrm{T}}y
end{equation}
left[
egin{matrix}
第一笔数据的 x1 & x2 & 1
第二笔数据的 x1 & x2 & 1
.
.
.
第n笔数据的 x1 & x2 & 1
end{matrix}
ight]
left[
egin{matrix}
w_1
w_2
b
end{matrix}
ight]=left[
egin{matrix}
第一笔数据的 price
第二笔数据的 price
.
.
.
第n笔数据的 price
end{matrix}
ight]