单目深度估计学习 第四、五周

单目深度估计学习 第四、五周

学习论文:

  1. [1409.2329v5] Recurrent Neural Network Regularization (arxiv.org)
  2. [1506.04214] Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting (arxiv.org)
  3. [2312.00752] Mamba: Linear-Time Sequence Modeling with Selective State Spaces (arxiv.org)
  4. [2401.09417] Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model (arxiv.org)

学习任务

了解Mamba模型。

参考资料:一文通透想颠覆Transformer的Mamba:从SSM、HiPPO、S4到Mamba_mamba模型-CSDN博客

一、SSM

1.1 Transformer模型存在的问题

Transformer模型在训练大型数据集时需要消耗大量的计算资源,尤其是对于长序列数据,其注意力机制的计算复杂度高达 O ( n 2 ) O(n^2) O(n2)

对于Transformer模型在长文本序列上所遇到的问题,人们从主要两个方面去优化和改进:

  1. 针对注意力机制本身进行优化,其目的是减少复杂度。
  2. 提出全新的序列模型用以代替Transformer模型。
1.2 RNN与LSTM
RNN

**递归神经网络(Recurrent Neural Network, RNN)**是一种用于处理序列数据的神经网络。它的核心是通过类似递归的算法,对输入的token序列 x i x_i xi,使用共享的参数 U U U W W W b b b,从而不断推出当前token的状态 h i h_i hi,再通过对 h i h_i hi进行Softmax处理,获得token的输出 y i y_i yi

在这里插入图片描述
在这里插入图片描述

对于RNN,通俗的理解是,对当前输入token的理解是基于先前输入token的理解的。RNN会通过先前输入的计算,从而学习到对后续输入的处理。

基于递归算法的本质,RNN的优点十分明显:即理论上RNN可以记住序列中的信息,并且将这些信息用于后续的计算;在计算的过程中使用的参数是固定的,这有利于模型的简介和高效。但相对的缺点,RNN是一个按顺序串行训练的神经网络架构,在训练过程中,由于我们需要计算损失函数关于权重的梯度,权重矩阵若与1差距很大,十分容易出现梯度消失/爆炸的问题,因此,尽管RNN理论上可以记住序列中的信息,但是在长距离依赖上,RNN容易收到短时记忆的影响,一旦权重在短期训练中发生了梯度消失问题,RNN就不会继续学习。

为了保留RNN的优点,解决它的问题,人们改进出了LSTM网络。

LSTM

**长短期记忆网络(Long ShortTerm, LSTM)**是基于RNN的一种特殊的循环神经网络,他们的本质结构是相同的,但在计算 h i h_i hi上,LSTM使用了特殊的设计,从而实现RNN长距离依赖问题的避免。

在这里插入图片描述

LSTM的算法本质是:记住重要的内容,忘记无关紧要的内容。

在这里插入图片描述

LSTM的关键是细胞状态。在LSTM中,使用三种不同的操作:忘记门输入门输出门来保护和控制细胞形态,从而对细胞状态进行去除或增加信息。

Sigmoid激活函数σ的作用是将输入数值限制在[0,1],

值接近 0 表示关闭(不通过),接近 1 表示打开(完全通过)。

Tanh函数tanh的作用是将输入数值限制在[-1,1],

Tanh 函数主要用于细胞状态的更新以及隐藏状态的生成。

  1. 忘记门
    在这里插入图片描述

    对于来自上一个时间的输出 h t − 1 h_{t-1} ht1和当前输出 x i x_i xi,共同进入Sigmoid激活函数处理,输出值接近 0 表示忘记,接近 1 表示记忆。

  2. 输入门
    在这里插入图片描述

    Sigmoid激活函数决定了输入数据中什么对我们更重要,筛选出重要的信息;tanh 函数的作用是产生当前的隐藏状态。通过点乘处理后,抛弃不需要的信息,产生重要信息,形成新的更新状态,然后输入细胞状态当中。

  3. 输出门
    在这里插入图片描述

    首先使用Sigmoid激活函数选择出需要输出的细胞状态信息,然后将忘记门和输入门处理过后的实际细胞状态信息经过tanh函数处理,最后将两者相乘,最终输出我们实际需要的重要信息部分。

1.3 状态空间模型(State Space Model,SSM)

SSM用于状态的描述,并且能够根据某些输入预测未来状态。

SSMs模型由输入序列 x ( t ) x(t) x(t),状态序列 h ( t ) h(t) h(t)和输出序列 y ( t ) y(t) y(t)组成。
在这里插入图片描述

其中,状态方程与RNN网络求 h i h_i hi的方法类似,即利用上一个隐藏状态和当前输入,通过权重系数的乘积求和来综合获得当前的隐藏状态。在这里系数矩阵 A A A是一个存储了先前所有历史信息的信息矩阵。在SSM中,系数ABCD是不变的
在这里插入图片描述

SSM的流程如图可以细分为如下步骤:

  1. 初始输入序列 x ( t ) x(t) x(t)与系数矩阵B相乘获得红绿矩阵。
  2. 将上一个状态序列 h ( t ) h(t) h(t)与系数矩阵A相乘获得蓝黄矩阵。
  3. 把红绿矩阵与蓝黄矩阵相加求和,用以更新为新的蓝色状态矩阵。
  4. 将更新后的状态矩阵与系数矩阵C相乘获得输出序列 y ( t ) 1 y(t)_1 y(t)1
  5. 初始输入序列与系数矩阵D相乘获得输出序列 y ( t ) 2 y(t)_2 y(t)2
  6. 输出序列1与输出序列2相加获得最终的输出序列 y ( t ) y(t) y(t)

SSM模型通过一组方程直观描述了系统的动态特性,为研究和设计复杂动态系统提供了一种强大的工具。

二、S4

2.1 离散化SSM

实际应用中经常需要接触到离散化的数据,于是为了SSM的通用性考虑,实现了离散化SSM来处理离散化数据。离散化数据的处理实际上是通过零阶保持技术,将离散化数据转化成SSM能识别的连续信号。
在这里插入图片描述

于是离散化SSM模型的实际效果如下:
在这里插入图片描述

通过对SSM的离散化,允许用离散时间步长来重新表示问题,于是可以表示为类似RNN的逻辑特征。
在这里插入图片描述

2.2 SSM卷积

通过卷积核将SSM表示成卷积形式。

在这里插入图片描述

好处是可以将SSM像CNN一样并行训练。

最后,SSMs将RNN与CNN结合,推理用RNN结构,训练用CNN结构,可以将序列高效地计算为递归或卷积,在序列长度上具有线性或近线性缩放。
在这里插入图片描述

2.3 HiPPO(High-order Polynomial Projection Operator)

类似RNN,SSM也需要解决序列建模的长距离依赖问题,解答的方法则是使用HiPPO矩阵。

HiPPO矩阵通常用于将连续时间信号投影到正交多项式基下,以代表过去的状态/信息,它会尝试将当前看到的输入信号压缩为一个系数向量,通过函数逼近,产生状态矩阵 A A A的最优解。

在这里插入图片描述

由于HiPPO能够通过计算产生一个隐藏状态矩阵 A A A来记录历史信息,所以使用它来应用与循环表示和卷积表示中时,能够处理SSM长距离依赖的问题。

2.4 S4(Structured State Space for Sequences)

综上所述,一类可以有效处理长序列的SSM模型,即 S 4 S4 S4模型应运而生

在这里插入图片描述

其中对状态矩阵A做了改进

在这里插入图片描述

2.5 SSM系列模型仍然存在的问题
  1. 对于SSM,方程中的系数矩阵是固定的。这意味着对于训练模型而言,使用SSM无法针对输入做针对性的推理。
  2. 对于输入的token,模型往往用相同的“精力”处理,这意味着模型会对一些无关紧要的信息进行处理,我们希望需要LSTM模型一样的方法,将模型关注在重要内容上。

三、Mamba

Mamba模型是基于SSM的升级和改进模型,它包含了三点创新:

  1. 对输入信息的选择性处理
  2. 硬件感知算法
  3. 更简单的架构

概括来说,Mamba模型会对输入的信息进行选择性处理。它保留信息当中必须关注的,过滤信息当中可以忽略的,以此达到对先前信息的总结概括。通过对信息的选择性处理的总结归纳,从而兼顾训练和推理的效率。

各个模型的特点:

在这里插入图片描述

在S4算法中,包含四个参数 A A A B B B C C C D D D,这四个参数是不随输入变化的,由上述2.5中”SSM系列模型存在的问题“中可知,SSM无法针对输入做针对性的推理,对于输入的token,模型往往用相同的“精力”处理。

在Mamba模型的优化如下:将参数 B B B C C C D D D Δ Δ Δ)成为输入的函数,让模型能够根据输入内容自适应地调整。

S6在S4的基础上做出的改进:

在这里插入图片描述

由于参数变为了动态,Mamba在利用CNN计算中不能直接卷积计算。所以Mamba通过使用并行扫描算法实现类似卷积的并行训练能力。

在这里插入图片描述

  • 图中有四个输入变量 X 1 X1 X1 X 1 X1 X1 X 2 X2 X2 X 3 X3 X3
  • 输入变量被分配给不同的处理器(或线程),以便在多个处理器上同时执行计算任务。
  • 每个处理器都执行一个基本的累加操作,将当前处理的输入值与之前的结果相乘,然后传递给下一个处理器。
  • 这些处理器之间的通信通过箭头表示,箭头指向接收结果的处理器。
  • 在这个过程中,有两个关键步骤:Sweep-down 和 Sweep-up。Sweep-down 是指从顶部开始逐层向下累加的过程;而 Sweep-up 则是从底部向上逐层累加。
  • 最终得到的结果是所有输入变量的累积值,存储在输出变量 H 0 H0 H0 H 1 H1 H1 H 2 H2 H2 H 3 H3 H3 中。

将SSM的基础块(如H3)与MLP相结合,经过重复、归一化和残差连接结合之后,就形成了Mamba架构。

在这里插入图片描述

在SRAM中进行离散化和递归后,最后写回HBM,这样就完成了Mamba模型的流程。
,存储在输出变量 H 0 H0 H0 H 1 H1 H1 H 2 H2 H2 H 3 H3 H3 中。

将SSM的基础块(如H3)与MLP相结合,经过重复、归一化和残差连接结合之后,就形成了Mamba架构。

[外链图片转存中…(img-lUcGHMA5-1724674212094)]

在SRAM中进行离散化和递归后,最后写回HBM,这样就完成了Mamba模型的流程。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值