线性代数|机器学习-P11方程Ax=b求解研究

2024-06-10 02:52

本文主要是介绍线性代数|机器学习-P11方程Ax=b求解研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 变量数和约束条件数大小分类
  • 2. 最小二乘法和Gram-schmidt变换
    • 2.1 Gram-schmidt变换
    • 2.2 最小二乘法
      • 2.2.1 损失函数-Lasso 和regression
      • 2.2.2 损失函数-Lasso
      • 2.2.3 损失函数-regression
      • 2.2.4 Regression岭回归-矩阵验证
      • 2.2.5 Regression岭回归-导数验证
  • 3. 迭代和随机采样
    • 3.1 迭代
    • 3.2 随机采样

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^=ATbx^=(ATA)1ATb
  • 3 当矩阵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 a11a2,这样我们就用新的正交向量 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} A1逆矩阵,就是会得到很多的解,我们的目的是从这么多的解中找到一个最好的解,目前加 L 1 L_1 L1项,即加 λ ∣ ∣ x ∣ ∣ 1 \lambda||x||_1 λ∣∣x1,即是我们的LASSO模型;加 L 2 L_2 L2项目,即加 δ 2 ∣ ∣ x ∣ ∣ 2 2 \delta^2||x||_2^2 δ2∣∣x22,即是我们的岭回归模型,是不是很神奇!!!,后面还有的是两个都加,后续会学习到的!!!

2.2.2 损失函数-Lasso

  • Lasso 模型
    arg ⁡ m i n 1 2 ∣ ∣ A x − b ∣ ∣ 2 2 + λ ∣ ∣ x ∣ ∣ 1 \begin{equation} \arg\limits_{min}\frac{1}{2}||Ax-b||_2^2+\lambda||x||_1 \end{equation} minarg21∣∣Axb22+λ∣∣x1
  • Redge 模型,在 δ \delta δ较小的时候 1 2 δ 2 \frac{1}{2}\delta^2 21δ2 δ 2 \delta^2 δ2无区别

2.2.3 损失函数-regression

z = arg ⁡ m i n 1 2 ∣ ∣ A x − b ∣ ∣ 2 2 + 1 2 δ 2 ∣ x ∣ ∣ 1 2 \begin{equation} z=\arg\limits_{min}\frac{1}{2}||Ax-b||_2^2+\frac{1}{2}\delta^2|x||_1^2 \end{equation} z=minarg21∣∣Axb22+21δ2x12

  • z的矩阵表达式
    z = arg ⁡ m i n 1 2 ∣ ∣ A x − b ∣ ∣ 2 2 + 1 2 ∣ ∣ δ I x − 0 ∣ ∣ 1 2 \begin{equation} z=\arg\limits_{min}\frac{1}{2}||Ax-b||_2^2+\frac{1}{2}||\delta Ix-0||_1^2 \end{equation} z=minarg21∣∣Axb22+21∣∣δIx0∣12
  • 也就是说惩罚项重新构成了增广矩阵 A ∗ , b ∗ A^*,b^* A,b
    [ A σ I ] [ x ] = [ b 0 ] → A ∗ x = b ∗ → ( A T A + σ 2 I ) x = A T b \begin{equation} \begin{bmatrix}A\\\\ \sigma I\end{bmatrix}\begin{bmatrix}x\end{bmatrix}=\begin{bmatrix}b\\\\0\end{bmatrix}\rightarrow A^*x=b^*\rightarrow (A^TA+\sigma^2 I)x=A^Tb \end{equation} AσI [x]= b0 Ax=b(ATA+σ2I)x=ATb
  • 对于一般矩阵A,不是特别大的矩阵A,解如下:
    ( A T A + σ 2 I ) x = A T b → x ^ = ( A T A + σ 2 I ) − 1 A T b \begin{equation} (A^TA+\sigma^2 I)x=A^Tb\rightarrow \hat{x}=(A^TA+\sigma^2I)^{-1}A^Tb \end{equation} (ATA+σ2I)x=ATbx^=(ATA+σ2I)1ATb

2.2.4 Regression岭回归-矩阵验证

  • 验证上述是否正确,假设矩阵A为[a],整理可得如下:
    ( A T A + σ 2 I ) x = A T b → ( a 2 + σ 2 ) x = a b \begin{equation} (A^TA+\sigma^2 I)x=A^Tb\rightarrow (a^2+\sigma^2)x=ab \end{equation} (ATA+σ2I)x=ATb(a2+σ2)x=ab
    – 当 a 2 + σ 2 ≠ 0 a^2+\sigma^2 \neq 0 a2+σ2=0:
    ( a 2 + σ 2 ) x = a b → x ^ = a a 2 + σ 2 b \begin{equation} (a^2+\sigma^2)x=ab\rightarrow \hat{x}=\frac{a}{a^2+\sigma^2}b \end{equation} (a2+σ2)x=abx^=a2+σ2ab
  • σ = 0 , a ≠ 0 \sigma=0,a\ne 0 σ=0,a=0时,可得:
    ( a 2 + σ 2 ) x = a b → x ^ = a a 2 + σ 2 b → x ^ = b a \begin{equation} (a^2+\sigma^2)x=ab\rightarrow \hat{x}=\frac{a}{a^2+\sigma^2}b\rightarrow \hat{x}=\frac{b}{a} \end{equation} (a2+σ2)x=abx^=a2+σ2abx^=ab
    – 当 a 2 + σ 2 = 0 → a = σ = 0 a^2+\sigma^2 =0\rightarrow a=\sigma=0 a2+σ2=0a=σ=0:
    z = arg ⁡ m i n 1 2 ∣ ∣ A x − b ∣ ∣ 2 2 + 1 2 δ 2 ∣ x ∣ ∣ 1 2 → z = 1 2 ( a x − b ) 2 \begin{equation} z=\arg\limits_{min}\frac{1}{2}||Ax-b||_2^2+\frac{1}{2}\delta^2|x||_1^2\rightarrow z=\frac{1}{2}(ax-b)^2 \end{equation} z=minarg21∣∣Axb22+21δ2x12z=21(axb)2
    此时的z是向上的抛物线,那么可得最小值就一定在x=0处。

2.2.5 Regression岭回归-导数验证

z = arg ⁡ m i n 1 2 ∣ ∣ A x − b ∣ ∣ 2 2 + 1 2 δ 2 ∣ x ∣ ∣ 1 2 = 1 2 ( a x − b ) 2 + 1 2 δ 2 x 2 \begin{equation} z=\arg\limits_{min}\frac{1}{2}||Ax-b||_2^2+\frac{1}{2}\delta^2|x||_1^2=\frac{1}{2}(ax-b)^2+\frac{1}{2}\delta^2x^2 \end{equation} z=minarg21∣∣Axb22+21δ2x12=21(axb)2+21δ2x2

  • 求导可得:
    ∂ z ∂ x = a ( a x − b ) + σ 2 x = 0 → ( a 2 + σ 2 ) x ^ = a b → 居然跟矩阵表达式一样 \begin{equation} \frac{\partial z}{\partial x}=a(ax-b)+\sigma^2x=0\rightarrow (a^2+\sigma^2)\hat{x}=ab\rightarrow 居然跟矩阵表达式一样 \end{equation} xz=a(axb)+σ2x=0(a2+σ2)x^=ab居然跟矩阵表达式一样
    所以我们暂时简单验证我们在最小二乘法中加二范数惩罚项是对的!!!

  • 以上是损失函数的设计,也就是我们通过添加损失函数的约束条件来明确我们的目标,那么目标有了,现在缺少怎么找到目标的方法,常见的有随机梯度下降等方法,里面设计到学习率,迭代次数等,目的是怎么快速的找到最小的损失函数值,并根据结果来更新权重参数,这样矩阵就和深度学习联系上啦!

  • 好的解指的是我们的解不仅对已知的数据集有好的损失函数值,同时我们的解还能对未知的数据有好的结果!有效性和泛化性都要有!!!

3. 迭代和随机采样

3.1 迭代

  • 6 迭代
    当矩阵很大的时候,但是不是超级巨大,我们可以用迭代的方法处理,将矩阵A分解为
    A = S − T → A x = b → S x = T x + b \begin{equation} A=S-T\rightarrow Ax=b\rightarrow Sx=Tx+b \end{equation} A=STAx=bSx=Tx+b
  • 迭代可得:
    S x k + 1 = T x k + b ; S x k = T x k − 1 + b ; → S ( x − x k + 1 ) = T ( x − x k ) \begin{equation} Sx_{k+1}=Tx_k + b;Sx_{k}=Tx_{k-1} + b;\rightarrow S(x-x_{k+1})=T(x-x_k) \end{equation} Sxk+1=Txk+b;Sxk=Txk1+b;S(xxk+1)=T(xxk)
  • 误差比可得:
    x − x k + 1 x − x k = S − 1 T \begin{equation} \frac{x-x_{k+1}}{x-x_k}=S^{-1}T \end{equation} xxkxxk+1=S1T
  • S − 1 T S^{-1}T S1T<1时,随着 S − 1 T S^{-1}T S1T越小, x k x_k xk收敛的快。

3.2 随机采样

  • 7 随机采样
    当矩阵A超级大的时候,我们用电脑计算已经无法直接计算 A T A A^TA ATA的时候,我们就需要用到神奇的概率采样技术了,我们通过一定的概率去采样得到新的矩阵 A s A_s As时,用 A s A_s As近似替代A。
    我们知道矩阵A左乘行变换,右乘列变换,当我们用x来采样A列向量时,得到 A x = A s l Ax=A_{sl} Ax=Asl,实现列采样,当我们用x来采样A行向量时,得到 A T x = A s r A^Tx=A_{sr} ATx=Asr,实现行采样,这样我们就可以用采样的小样本来代替大样本矩阵A了。

这篇关于线性代数|机器学习-P11方程Ax=b求解研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047027

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个