当前位置: 首页 > news >正文

LoRA微调大模型 - 从主元 pivot 的角度看矩阵的秩

LoRA微调大模型 - 从主元 pivot 的角度看矩阵的秩

flyfish

LoRA微调大模型 - 从方程组的角度看矩阵的秩

主元 (pivot )是经过一系列初等行变换将矩阵化为行阶梯形(row echelon form)或行最简形(reduced row echelon form)后,每行中第一个非零元素。

每个矩阵中的主元是什么

例1:简单的行阶梯形矩阵

考虑以下矩阵 A A A

A = ( 1 2 3 0 4 5 0 0 6 ) A = \begin{pmatrix} 1 & 2 & 3 \\ 0 & 4 & 5 \\ 0 & 0 & 6 \end{pmatrix} A= 100240356

在这个矩阵中:

  • 第一行的第一个非零元素是 1。
  • 第二行的第一个非零元素是 4。
  • 第三行的第一个非零元素是 6。

因此,主元分别是 1, 4, 和 6

例2:包含全零行的矩阵

考虑以下矩阵 B B B

B = ( 1 2 3 0 0 0 0 5 6 ) B = \begin{pmatrix} 1 & 2 & 3 \\ 0 & 0 & 0 \\ 0 & 5 & 6 \end{pmatrix} B= 100205306

在这个矩阵中:

  • 第一行的第一个非零元素是 1。
  • 第二行是全零行,没有主元。
  • 第三行的第一个非零元素是 5。

因此,主元分别是 1 和 5。注意,第二行没有主元,因为它是全零行。

例3:更复杂的矩阵

考虑以下矩阵 C C C

C = ( 0 2 3 1 4 5 0 0 6 ) C = \begin{pmatrix} 0 & 2 & 3 \\ 1 & 4 & 5 \\ 0 & 0 & 6 \end{pmatrix} C= 010240356

为了将其化为行阶梯形,我们首先交换第一行和第二行:

C ′ = ( 1 4 5 0 2 3 0 0 6 ) C' = \begin{pmatrix} 1 & 4 & 5 \\ 0 & 2 & 3 \\ 0 & 0 & 6 \end{pmatrix} C= 100420536

在这个矩阵中:

  • 第一行的第一个非零元素是 1。
  • 第二行的第一个非零元素是 2。
  • 第三行的第一个非零元素是 6。

因此,主元分别是 1, 2, 和 6

例4:需要进一步变换的矩阵

考虑以下矩阵 D D D

D = ( 1 2 3 2 4 6 3 6 9 ) D = \begin{pmatrix} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 3 & 6 & 9 \end{pmatrix} D= 123246369

为了将其化为行阶梯形,我们进行以下变换:

  • 将第二行减去第一行的 2 倍:
    R 2 ← R 2 − 2 ⋅ R 1 R_2 \leftarrow R_2 - 2 \cdot R_1 R2R22R1
    ( 1 2 3 0 0 0 3 6 9 ) \begin{pmatrix} 1 & 2 & 3 \\ 0 & 0 & 0 \\ 3 & 6 & 9 \end{pmatrix} 103206309
  • 将第三行减去第一行的 3 倍:
    R 3 ← R 3 − 3 ⋅ R 1 R_3 \leftarrow R_3 - 3 \cdot R_1 R3R33R1
    ( 1 2 3 0 0 0 0 0 0 ) \begin{pmatrix} 1 & 2 & 3 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix} 100200300

在这个矩阵中:

  • 第一行的第一个非零元素是 1。
  • 第二行和第三行都是全零行,没有主元。

因此,主元只有 1

例5:已经处于简化行阶梯形的矩阵

考虑以下矩阵 E E E

E = ( 1 0 0 0 1 0 0 0 1 ) E = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} E= 100010001

在这个矩阵中:

  • 第一行的第一个非零元素是 1。
  • 第二行的第一个非零元素是 1。
  • 第三行的第一个非零元素是 1。

因此,主元分别是 1, 1, 和 1

引用Gilbert Strang《Introduction to Linear Algebra》的说法

数字 m m m n n n给出了矩阵的大小,但不一定给出线性系统的真实大小。像 0 = 0 0 = 0 0=0这样的方程不应该被计算在内。如果在矩阵 A A A中有两行完全相同,那么在消元过程中第二行将会消失。同样,如果第三行是第一行和第二行的组合,那么在三角矩阵 U U U以及行最简形 R R R中,第三行将变为全零行。我们不希望计算零行。矩阵 A A A的真实大小由它的秩给出。

秩的定义:矩阵 A A A的秩是主元的数量。这个数量用 r r r表示。

这个定义是从计算的角度给出的,我想对秩 r r r再多说一些。最终的矩阵 R R R将有 r r r个非零行。从一个 3 × 4 3\times4 3×4且秩 r = 2 r = 2 r=2的例子开始:有四列的矩阵 A = [ 1 1 2 4 1 2 2 5 1 3 2 6 ] A=\begin{bmatrix}1&1&2&4\\1&2&2&5\\1&3&2&6\end{bmatrix} A= 111123222456 ,它的行最简形为 R = [ 1 0 2 3 0 1 0 1 0 0 0 0 ] R=\begin{bmatrix}1&0&2&3\\0&1&0&1\\0&0&0&0\end{bmatrix} R= 100010200310

矩阵 A A A R R R的秩是 2 2 2


http://www.mrgr.cn/news/62842.html

相关文章:

  • 布隆过滤器:极简存储,高效检索
  • 工作软件推荐
  • C++ 模板专题 - 静态多态(CRTP)
  • 【论文分享】是时候挑战15分钟城市了:可持续发展、公平性、宜居和空间分析的七个缺陷
  • 用Spring Boot实现的在线厨艺学习平台
  • 零售EDI:HornBach EDI 项目案例
  • 前端如何解决浏览器input输入框密码自动填充的问题
  • 【C/C++】字符/字符串函数(1)——由string.h提供
  • DBeaver如何插入一行新数据或者复制一行新数据,真方便
  • selenium无头浏览器截图并以邮件发送
  • 【设计模式】如何用C++实现依赖倒置
  • AcWing 1069 凸多边形的划分 区间dp + 高精度
  • 普通人的核心竞争力
  • Vim的配置
  • 杭州E类人才认定流程
  • C++设计模式结构型模式———桥接模式
  • 排序
  • 第十五章数据管理成熟度评估
  • 新160个crackme - 088-[KFC]fish‘s CrackMe
  • Telegram bot教程:通过BotFather设置Telegram bot的命令菜单
  • Java Executor ScheduledThreadPoolExecutor 总结
  • DBeaver如何查看ER图
  • Python定义与调用函数
  • 【AI时代】普通程序员想投身AI大模型行业,该如何快速入局
  • DAY67WEB 攻防-Java 安全JNDIRMILDAP五大不安全组件RCE 执行不出网
  • 服务器宝塔安装哪吒监控