问题定义
(1) A x = b Ax=b \tag{1} Ax=b(1)
在实际问题中,该方程组可能不存在真正的解,这时我们就希望可以求解它的一个近似解 x ∗ x^* x∗,使得其能尽可能地接近 (1) 的真正解,其中 A ∈ R k × n , b ∈ R k A \in R^{k×n}, b \in R^k A∈Rk×n,b∈Rk 是已知的,而 x ∈ R n x \in R^n x∈Rn 是未知量。注意,这里假定 k ≥ n k \geq n k≥n 且 A T A ∈ R n × n A^TA \in R^{n×n} ATA∈Rn×n 是可逆的。
在数学上,已经给出这类问题的解了: x ∗ = ( A T A ) − 1 A T b x^*=(A^TA)^{-1}A^Tb x∗=(ATA)−1ATb。
下面就来简单的推导下该解的由来:
法一:
(2) arg min x A x ≈ b ⇒ arg min x f ( x ) = ∥ A x − b ∥ 2 \mathop{\arg\min}_x{Ax \approx b} \Rightarrow \mathop{\arg\min}_x{f(x)=\|Ax-b\|^2} \tag{2} argminxAx≈b⇒argminxf(x)=∥Ax−b∥2(2)
对于 (2) 式,将其展开:
(3) f ( x ) = ∥ A x − b ∥ 2 = ( A x − b ) T ( A x − b ) = ( x T A T − b T ) ( A x − b ) = x T A T A x − x T A T b − b T A x + b T b = x T A T A x − 2 b T A x + b T b = x T ( A T A ) 1 / 2 ⎵ y T ( A T A ) 1 / 2 x ⎵ y − 2 b T A ( A T A ) − 1 / 2 ( A T A ) 1 / 2 x ⎵ y + b T b = y T y − 2 b T A (