奇异值分解(SVD)关键概念以及物理意义

本文主要用来讨论奇异值分解(SVD)的一些核心概念以及它的物理意义和实际意义,说到底就是:

这东西有什么用?是怎么起作用的?

我们按顺序一步步来拆解这些问题并且分析。


引言

之前也只是模棱两可地了解过SVD的功能,但一直没深入,这次恰好看到一篇论文用SVD作为主要创新点,机缘巧合之下就想完全弄明白,所以这就是这篇文章诞生的原因。

论文信息如下:
在这里插入图片描述

这篇paper所研究的问题

Transformer模型在自然语言处理和其他领域的应用已成为主流。然而,这些模型通常需要大量的计算资源进行训练和推理。本研究发现,通过选择性地移除Transformer模型中某些层的高阶权重成分,可以显著提升模型的性能。这一方法被称为LAyer-SElective Rank reduction (LASER),可以在模型训练完成后进行,无需额外的参数或数据。

这篇文章的作者如何得到这个idea的?

由实验驱动的,而不是从理论开始。

本文中提出的LASER方法主要是基于实验发现,即通过对大型语言模型(LLMs)的特定层进行低秩近似可以改善模型性能。文章中并没有详细描述理论推导来证明为何这种低秩近似会有效,而是通过广泛的实验来展示这种方法在多种情况下的有效性。

实验结果表明,在某些情况下,低秩近似可以提高模型在特定任务上的表现,尤其是在处理训练数据中不常见的信息时。文章中对这种现象进行了一些初步的分析和假设,比如提出高阶分量可能捕获了模型训练过程中的噪声,而去除这些噪声成分可以通过“去噪”来提高模型的准确性。

然而,对于为何特定层的低秩近似能够导致性能提升,以及为何这种现象在后层更为常见等问题,文章承认需要进一步的研究来深入理解背后的机制。因此,可以认为文章的发现主要是实验驱动的,而不是由理论推导所引导。

那么,什么是“低秩近似”?为何需要它?

Q: 为什么需要低秩近似
A:为了减少计算消耗,提高效率。

Q:什么是“低秩近似”?
A:低秩近似(low-rank approximation)是一种通过保留矩阵中最重要的特征分量,来减少矩阵维度和复杂度的方法。

为什么要保留矩阵中最重要的特征分量?

其实很简单,直观来说,我们舍弃了一些不重要的特征分量,那么就会减少模型中的一些数据(在这里,这些特征分量其实就是模型参数),所以保留最重要的那些,就会把模型的大部分能力保留下来,尽管舍弃了一些特征分量,对模型能力的影响也不会很大,因为最重要的数据(最重要的特征分量即最重要的参数)是被保留了的。

接下来,如何计算出特征分量?如何挑选最重要的特征分量?

这时候我们就要用到我们的主角:奇异值分解(SVD)

详细谈谈SVD

在奇异值分解(Singular Value Decomposition, SVD)中,我们将一个矩阵 W W W 分解为三个矩阵的乘积:

W = U Σ V T W = U \Sigma V^T W=UΣVT

其中, U U U V V V 是正交矩阵, Σ \Sigma Σ 是对角矩阵,包含了 W W W 的奇异值,且这些奇异值按从大到小的顺序排列。具体来说, Σ \Sigma Σ 的对角线元素 σ i \sigma_i σi 满足:

σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r ≥ 0 \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r \geq 0 σ1σ2σr0

这里, r r r 是矩阵 W W W 的秩。

高阶和低阶分量的判定

“高阶”和“低阶”分量的判定是基于奇异值的大小。通常,较大的奇异值对应的奇异向量组合起来的分量被称为“低阶”分量,而较小的奇异值对应的分量则被称为“高阶”分量。这样的命名是基于以下原因:

  1. 信息贡献:较大的奇异值 σ i \sigma_i σi 对应的奇异向量组合(即 u i v i T u_i v_i^T uiviT)通常包含了更多的原始矩阵 W W W 的信息。这些成分在重构矩阵时起到了主要作用。

  2. 噪声贡献:较小的奇异值 σ i \sigma_i σi 对应的奇异向量组合包含的信息较少,往往更多地体现为噪声和细节,而不是主要信息。因此,在很多应用中,这些较小的奇异值和对应的分量可以被忽略,从而得到一个低秩的近似。

高阶和低阶分量的命名原因
频率域解释:
在傅里叶变换中,一个信号可以分解为不同频率的正弦波和余弦波的叠加。低频分量(低阶分量)通常包含信号的主要结构和重要信息,而高频分量(高阶分量)通常包含细节和噪声。
类比到奇异值分解,较大的奇异值对应的分量被认为是低频分量,包含了数据的主要信息和结构,而较小的奇异值对应的分量则包含了高频噪声和细节。

具体描述

假设 W W W 是一个 m × n m \times n m×n 的矩阵,通过 SVD 分解后,我们有:

W = ∑ i = 1 r σ i u i v i T W = \sum_{i=1}^{r} \sigma_i u_i v_i^T W=i=1rσiuiviT

其中, σ i \sigma_i σi 是奇异值, u i u_i ui v i v_i vi 分别是 U U U V V V 矩阵的列向量。对于一个秩为 k k k 的近似矩阵 W k W_k Wk,我们只保留前 k k k 个最大的奇异值及其对应的奇异向量:

W k = ∑ i = 1 k σ i u i v i T W_k = \sum_{i=1}^{k} \sigma_i u_i v_i^T Wk=i=1kσiuiviT

这里,保留的 σ i \sigma_i σi 较大,贡献了主要的信息量。这些成分被认为是“低阶”成分。

而被舍弃的部分:

W r − k = ∑ i = k + 1 r σ i u i v i T W_{r-k} = \sum_{i=k+1}^{r} \sigma_i u_i v_i^T Wrk=i=k+1rσiuiviT

这些成分对应于较小的奇异值,往往包含了较多的噪声信息,被称为“高阶”成分。

例子

假设矩阵 ( W ) 的奇异值分解结果为:
W = U ( σ 1 0 … 0 0 σ 2 … 0 ⋮ ⋮ ⋱ ⋮ 0 0 … σ n ) V T W = U \begin{pmatrix} \sigma_1 & 0 & \ldots & 0 \\ 0 & \sigma_2 & \ldots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \ldots & \sigma_n \end{pmatrix} V^T W=U σ1000σ2000σn VT
其中 σ 1 ≥ σ 2 ≥ … ≥ σ n \sigma_1 \geq \sigma_2 \geq \ldots \geq \sigma_n σ1σ2σn 为奇异值。

  • σ 1 \sigma_1 σ1 对应的分量 u 1 v 1 T u_1 v_1^T u1v1T 是最主要的特征。
  • σ n \sigma_n σn 对应的分量 u n v n T u_n v_n^T unvnT 是最不重要的特征。

通过移除 σ n \sigma_n σn 对应的分量,保留 σ 1 \sigma_1 σ1 σ k \sigma_{k} σk 对应的分量,可以实现低秩近似,即:
W ≈ U k Σ k V k T W \approx U_k \Sigma_k V_k^T WUkΣkVkT
其中 Σ k \Sigma_k Σk仅包含前 k k k 个较大的奇异值。

回到文章:采用SVD来保证不严重影响模型能力的前提下而减少模型的参数量

在文章中,作者利用SVD来识别和去除Transformer模型中权重矩阵的高阶分量,这些高阶分量对应于较小的奇异值。通过这种方式,作者们实现了对模型的低秩近似,即LASER(Layer-Selective Rank Reduction)。具体来说,他们保留了权重矩阵中与较大奇异值对应的主要奇异向量,而忽略了那些与较小奇异值相关的高阶分量。这种选择性地去除权重矩阵中的成分,被认为可以减少模型中的噪声,从而提高模型在某些任务上的性能。

在奇异值分解(SVD)中,给定一个矩阵 W W W,可以将其分解为 W = U Σ V T W = U \Sigma V^T W=UΣVT,其中 U U U V V V 是正交矩阵, Σ \Sigma Σ 是对角矩阵,其对角线元素为奇异值,且按降序排列。

在这种分解中:

  • 奇异值的大小表示对应奇异向量在原矩阵中的重要性。
  • 较大的奇异值对应的奇异向量对矩阵的主要特征贡献较大。
  • 较小的奇异值对应的奇异向量对矩阵的特征贡献较小。

因此,“高阶”分量是指那些对应较小奇异值的奇异向量,因为这些分量对矩阵整体特征的贡献较小。相对地,“低阶”分量是指那些对应较大奇异值的奇异向量,因为这些分量对矩阵整体特征的贡献较大。

在这篇文章中,所指的高阶分量是指奇异值分解(SVD)中的奇异值按大小降序排列后,排在后面的那些分量。具体来说:

LASER操作:文章中的LASER操作正是通过这种选择性地忽略较小奇异值来实现的。例如,如果设置 ρ \rho ρ 为某个小于1的值,那么只有排名前 ρ \rho ρ 倍最大秩的奇异值会被保留,其余的则被视为高阶分量并被去除。

通过这种方式,LASER方法可以减少模型的复杂性,有时还能提高模型在特定任务上的性能,尤其是在处理训练数据中不常见的信息时。

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫咪钓鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值