模型优化【1】-低秩近似

模型优化-低秩近似

一、低秩近似

神经网络的基本运算卷积,实则就是 矩阵运算 ,低秩近似的技术是通过一系列 小规模矩阵将权重矩阵重构出来 ,以此降低 运算量和存储开销 。
目前有两种常用的方法实现低秩近似:

  1. Toeplitz矩阵 【托普利兹】直接重构权重矩阵,简称为T型矩阵,它是由Bryc、Dembo、Jiang于2006年提出的。托普利兹矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等;
  2. 奇异值分解(SVD) ,将权重矩阵分解为若干个小矩阵。

下面以奇异值分解为例,从运算开销和计算开销方面展示低秩近似在模型压缩中作用.
前提:假设原始矩阵为m*n,其中m=n=100,如果使用奇异值分解,并保留前k个奇异值,那么近似矩阵可以通过三个更小的矩阵表示:U_k(m * k)、S_k(k * k)、Vt_k(k * n),令k=10。

存储开销

  1. 原始近似矩阵的存储需求为10000个元素(100*100)
  2. 低秩近似的存储开销为2100个元素(100 * 10+10 * 10+10 * 100计算得出)
  3. 在这个例子中,使用低秩近似降低了约79%的存储需求。

计算开销

  1. 原始矩阵的乘法计算开销为1000000次乘法(100 * 100 * 100)
  • 每个元素需要n=100次乘法
  • 乘积矩阵有m*n=100 * 100个元素
  • 所以总的乘法次数是100×100×100=1,000,000 次
  1. 低秩近似矩阵的乘法开销为110000次乘法(m * k * k + m *k * n)
  • 计算U_k * S_k的乘法开销

    • U_k的大小是m * k,S_k的大小是k * k,每个元素的计算需要k次乘法。
    • 所以U_k * S_k的计算开销是k * (m * k)=m *k * k=100 * 10 * 10 = 10000
  • 计算 (U_k * S_k) * Vt_k 的乘法开销

    • U_k * S_k 的结果是一个 m x k 矩阵, Vt_k 的大小是 k x n,
    • 每个元素的计算需要 k 次乘法,
    • 所以(U_k * S_k) * Vt_k的乘法开销是k * (m * n) = 10 * 100 * 100=100000
  1. 所以低秩近似的开销等于110000
  2. 在这个例子中,使用低秩近似降低了约89%的计算开销

为什么只考虑乘法开销不考虑加法开销

  1. 计算成本:乘法开销的计算成本远远高于加法
  2. 算法的分析常规:在算法复杂度分析中,通过关注的是主导操作,即最影响总体性能的操作
  3. 实际应用中的重视:在实际场景中,尤其大规模计算中,乘法操作的优化通常比加法更能显著提升性能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值