文章目录
1. 变量数和约束条件数大小分类
0
用伪逆矩阵 x = A + b x=A^{+}b x=A+b直接求解,[上一节已讲]1
当矩阵A大小适中,条件数 σ 1 σ r < 1000 时 \frac{\sigma_1}{\sigma_r}<1000时 σrσ1<1000时, 用 x = A \ b x=A\backslash b x=A\b;2
当矩阵A列满秩m>n=r
时,方程数多于变量数,无法求解,只能择中找近似解,将b投影到矩阵A的列空间中后,再找到近似解 x ^ \hat{x} x^ 用 A T A x ^ = A T b → x ^ = ( A T A ) − 1 A T b A^TA\hat{x}=A^Tb\rightarrow \hat{x}=(A^TA)^{-1}A^Tb ATAx^=ATb→x^=(ATA)−1ATb3
当矩阵m < n
时,方程数小于变量数,有无穷多的解,约束不够,所以我们增加 L 1 , L 2 L_1,L2 L1,L2约束来在众多的解中拿到一个好的解,这是深度学习中最重要的损失函数解决思路。
2. 最小二乘法和Gram-schmidt变换
2.1 Gram-schmidt变换
4
列向量情况很差,条件数 σ 1 σ r > 1000 \frac{\sigma_1}{\sigma_r}>1000 σrσ1>1000,就是病态矩阵,简单理解就是矩阵A的列向量之间相关性太大,导致无法用相关性的列表示其他向量;
当我们矩阵A的列向量为 a 1 , a 2 a_1,a_2 a1,a2时候,我们用 a 1 , a 2 a_1,a_2 a1,a2表示 v 3 v_3 v3时候,特别不方便, a 1 , a 2 a_1,a_2 a1,a2越相近,越不方便,就是所说的列向量相关性太大,那gram-schmidt的方式就是,既然 a 1 , a 2 a_1,a_2 a1,a2太接近,那就改造其中一个,我们把 a 1 a_1 a1经过投影和相减后得到 a 11 a_{11} a11,那么 a 11 ⊥ a 2 a_{11}\perp a_2 a11⊥a2,这样我们就用新的正交向量 a 11 , a 3 a_{11},a_3 a11,a3来表示 v 3 v_3 v3. 将A分解为QR后就可以得到最优解 x ^ \hat{x} x^,具体推导可以看上一节内容。另外一种是通过将列进行旋转,原理和行的交换一样,主要是关于数值稳定性的问题,保证不要出现大数吃小数的现象发生。
2.2 最小二乘法
2.2.1 损失函数-Lasso 和regression
5
矩阵A接近奇异矩阵,该矩阵的值不是满秩,无法进行直接求逆得到 A − 1 A^{-1} A−1逆矩阵,就是会得到很多的解,我们的目的是从这么多的解中找到一个最好的解,目前加 L 1 L_1 L1项,即加 λ ∣ ∣ x ∣ ∣ 1 \lambda||x||_1 λ∣∣x∣∣1