想象你是一位电影导演,面前摆着一台放映机。你看到了一卷胶片的前 20 帧:一个人在跑道上起跑、摆臂、加速。你能猜出第 21 帧是什么吗?大概率能——他还在跑,身体更往前倾。这种“看连贯的几帧,猜接下来的画面”的能力,就是视频预测(Video Prediction)。 但机器没有人类的直觉。它面对的是一堆像素数字,每一帧是几万个像素点的亮度值。让机器学会“顺着故事的节奏往下演”,就成了 AI 领域一个极其迷人的挑战:不仅仅要知道画面里有什么(空间),还要知道画面怎么动(时间)。这就是“世界模型”的底层能力——如果 AI 能预测下一帧,说明它对世界的运行规律有了某种内化。 就像导演有不同的执导风格:有人一格一格抠细节(循环网络),有人蓝图在胸一镜到底(直接映射),有人靠天马行空的想象力补全画面(生成式模型)。PredRNN、SimVP、VideoGPT 正是这三种风格的典型代表。这篇文章,我们就用“导演”的视角,把这三种视频预测的心法讲透。

岗位关联

为什么学这个:视频预测是自动驾驶、机器人操作、气象预报、内容生成的技术底座。理解 PredRNN / SimVP / VideoGPT 的取舍,能帮你在实际业务中选对模型路线,避免“技术很强但与需求错配”的坑。

目录
  1. 可视化演示
  2. 视频预测是什么
  3. 传统循环网络
  4. PredRNN时空LSTM
  5. SimVP极简架构
  6. VideoGPT生成式
  7. 三大模型对比
  8. 部署应用实战
  9. 评估与挑战
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示PredRNN时空记忆流、SimVP端到端简化架构和VideoGPT的VQ-VAE+Transformer生成流程,直观对比三种视频预测路线的核心机制。

本节配有交互动效(进入视口后自动加载,约 3KB)。

PredRNN:时空记忆流架构 ConvLSTM门控+时空记忆流跨帧传递 记忆通道贯穿所有时间步积累信息 M_t = f(X_t, M_{t-1}) 循环结构捕获长程时空依赖

视频预测是什么

导演拿到一卷胶片,先要做两件事:看清画面里有什么(空间),看懂画面怎么动(时间)。视频预测的本质,就是同时建模这两个维度。空间感知告诉你“画面里有一辆车、一个人、一棵树”,时间建模告诉你“车在向左开,人在向右走”。两者结合,你才能预测下一帧——车更靠左了,人更靠右了。

对 AI 来说,空间信息藏在单帧图像的像素分布里,时间信息藏在多帧之间的像素位移里。一个朴素的想法是:把连续 K 帧叠在一起当输入,用一个神经网络直接输出下一帧。这叫“直接映射”,简单但往往效果不佳——因为模型没有内化“运动规律”,只是在做像素级的图像变换。

视频预测的意义远超“猜下一帧”本身。如果模型能准确预测未来几帧,说明它对世界运行规则有了某种程度的理解。这正是“世界模型”的核心理念:预测是理解的表现。自动驾驶需要预测其他车辆的未来位置,机器人需要预测物体下落轨迹,气象预报需要预测云图演变——这些都是视频预测的落地场景。

传统循环网络

在 PredRNN 出现之前,研究人员主要靠循环神经网络(RNN)来建模视频时序。RNN 就像一个很轴的导演助理,一格一格地看胶片,每看完一格就在笔记本上更新一行笔记——这个笔记叫“隐藏状态”。看第 3 帧时,他的笔记里既有第 3 帧的信息,也浓缩了第 1、2 帧的要点。预测第 4 帧时,他靠这份笔记来猜。

但问题来了:这个助理的笔记本只有有限的几页。看到第 20 帧时,第 1 帧的内容早在笔记里被冲淡了。这就是“长时序遗忘”问题——RNN 不擅长记住很久之前的信息。为了解决这个问题,LSTM(长短期记忆网络)被发明出来。LSTM 给助理增加了一个“长期保险柜”(细胞状态),由三个门控开关控制:遗忘门决定扔掉哪些旧笔记,输入门决定新信息写不写进保险柜,输出门决定从保险柜里取哪些内容来预测。

用数学语言说,LSTM 在每个时间步做了这样一件事:

但 LSTM 对视频还有个天生的缺陷:它的记忆是“一维时间线”,里面混杂了空间信息和运动信息。当画面复杂时,保险柜里既存了“哪里有树”,又存了“树往哪动”,互相干扰。这就逼出了下一位导演——PredRNN。

ft=σ(Wf[ht−1,xt]+bf)\displaystyle \mathbf{f}_t = \sigma(\mathbf{W}_f [\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_f)
遗忘门根据上一时刻的隐藏状态和当前输入,决定忘记多少旧记忆。
  1. 遗忘门的输入将上一时刻的隐藏状态 $\mathbf{h}_{t-1}$ 与当前帧特征 $\mathbf{x}_t$ 拼接。
    [ht−1,xt][\mathbf{h}_{t-1}, \mathbf{x}_t]
  2. 线性变换拼接后的向量乘上权重矩阵 $\mathbf{W}_f$ 并加上偏置 $\mathbf{b}_f$。
    Wf[ht−1,xt]+bf\mathbf{W}_f [\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_f
  3. 激活函数经过 Sigmoid 函数 $\sigma$ 压缩到 0 到 1 之间,0 表示全部遗忘,1 表示全部保留。
    ft=σ(⋅)\mathbf{f}_t = \sigma(\cdot)

PredRNN时空LSTM

PredRNN 的洞察很朴素:既然空间和时间是两种不同的信息,为什么共用一个记忆?它给 LSTM 增加了一条“空间记忆”的河流。时间记忆沿帧序号横向流动(从第 1 帧到第 2 帧再到第 3 帧),空间记忆则沿网络层数纵向流动(从底层像素特征到高层语义特征)。两条河在每一个“时空 LSTM”单元里交汇,互相补充。

打个比方:PredRNN 是一个双笔记本导演。左手一个本子记“画面里有什么”(空间记忆),右手一个本子记“画面怎么变”(时间记忆)。看新的一帧时,他先翻左手的本子确认场景里的物体,再翻右手的本子确认这些物体上一刻在哪、下一刻该往哪去。两份笔记一结合,预测自然更准。

从数学上看,PredRNN 的每个时空 LSTM 单元维护两个状态:时间记忆 $\mathbf{M}_t^{l}$ 和空间记忆 $\mathbf{C}_t^{l}$。其中 $t$ 是帧序号,$l$ 是网络层号。单元内部通过一个“视觉注意力门”动态融合两条记忆:

这个设计让 PredRNN 能同时捕捉“画面内容空间分布”和“物体运动时间轨迹”两类信息。在 Moving MNIST 等视频预测基准上,PredRNN 大幅超过传统 LSTM,成为循环视频预测的经典代表。但它也有代价:递归推理是逐帧进行的,训练慢,且长视频下仍有误差累积的风险。

Mtl=g⊙(Wm∗[Ctl−1,Mt−1l]+bm)\displaystyle \mathbf{M}_t^{l} = \mathbf{g} \odot \left( \mathbf{W}_{m} * \left[\mathbf{C}_t^{l-1}, \mathbf{M}_{t-1}^{l}\right] + \mathbf{b}_{m} \right)
空间记忆 $\mathbf{C}$ 从上一层流入,时间记忆 $\mathbf{M}$ 从上一时刻流入,两者在门控中融合,得到新的记忆。
  1. 记忆拼接将当前层的空间记忆 $\mathbf{C}_t^{l-1}$ 与上一时刻的时间记忆 $\mathbf{M}_{t-1}^{l}$ 在通道维拼接。
    [Ctl−1,Mt−1l][\mathbf{C}_t^{l-1}, \mathbf{M}_{t-1}^{l}]
  2. 卷积融合拼接后的张量经过卷积操作 $\mathbf{W}_{m} * (\cdot)$ 学习空间-时间联合特征。
    Wm∗[⋅]+bm\mathbf{W}_{m} * [\cdot] + \mathbf{b}_{m}
  3. 门控调制$\mathbf{g}$ 是视觉注意力门,控制两条记忆各自的信息量;$\odot$ 表示逐元素乘法,$\mathbf{M}_t^{l}$ 是融合后的新记忆。
    Mtl=g⊙(⋅)\mathbf{M}_t^{l} = \mathbf{g} \odot (\cdot)

SimVP极简架构

PredRNN 像一位认真到有点慢的导演,一格一格地做笔记。SimVP 则完全不同——它是那种拿到一整卷胶片、先整体扫一眼、然后在脑中完成“变形”的导演。SimVP 的口号是:不需要递归,不需要循环,一个端到端的卷积网络就够了。

SimVP 的架构极度简洁:编码器 → 翻译器 → 解码器。编码器把连续 K 帧压缩成一组高维特征图;翻译器对这些特征做“时空变形”(temporal shift 之类的操作),让它隐含未来帧的信息;解码器把变形后的特征还原成下一帧图像。整个过程没有循环,一次前向传播就出结果。

用数学语言描述,给定输入帧序列 $\mathbf{X}_{1:K}$,SimVP 的预测可写成:

因为不需要逐帧递归,SimVP 的训练速度比 PredRNN 快一个数量级,显存占用也低得多。在相同实验条件下,SimVP 甚至能取得不逊于循环模型的预测精度。这让它成为工业落地时“性价比优先”的选择。但 SimVP 的预测是确定性的——同一段输入永远得出同一段输出,它无法表达“下一帧有多种可能性”。

X^K+1=D(T(E(X1:K)))\displaystyle \hat{\mathbf{X}}_{K+1} = \mathcal{D}\left( \mathcal{T}\left( \mathcal{E}\left( \mathbf{X}_{1:K} \right) \right) \right)
编码器 $\mathcal{E}$ 提取特征,翻译器 $\mathcal{T}$ 建模时序变化,解码器 $\mathcal{D}$ 生成下一帧。
  1. 编码$\mathcal{E}$ 将 K 帧图像映射到隐空间特征张量。
    Z=E(X1:K)\mathbf{Z} = \mathcal{E}(\mathbf{X}_{1:K})
  2. 翻译$\mathcal{T}$ 在隐空间对特征做时空变换,让特征带上“下一时刻”的信息。
    Z′=T(Z)\mathbf{Z}' = \mathcal{T}(\mathbf{Z})
  3. 解码$\mathcal{D}$ 将变换后的特征上采样为预测帧。
    X^K+1=D(Z′)\hat{\mathbf{X}}_{K+1} = \mathcal{D}(\mathbf{Z}')

VideoGPT生成式

如果说 PredRNN 是记笔记的导演,SimVP 是画蓝图的导演,那 VideoGPT 就是靠“想象力”拍片的导演——它不只预测一个确定的下一帧,而是能生成多种合理的未来。技术路线上,VideoGPT 属于生成式模型,核心是 VQ-VAE + Transformer 的组合。

VQ-VAE 的职责是“压缩”。一帧 256×256 的图像,像素有 6 万多,直接建模时序也太贵了。VQ-VAE 把它压缩成 32×32 的离散编码(token 序列),相当于一部电影压缩成了关键剧情卡片。Transformer 则在这些卡片上学习“剧情发展规律”——看到前面的卡片序列,预测下一张卡片该是什么。最后再用 VQ-VAE 的解码器把预测出的卡片还原成图像。

VideoGPT 的训练目标与分类模型不同,它学的是一个概率分布:

推理时,VideoGPT 用自回归方式逐 token 采样。因为采样带随机性,同一个输入可以生成多个不同的未来帧——这正是“生成式”的魅力。代价是推理速度慢(逐 token 生成),且训练需要大量视频数据。但 VideoGPT 开创了“视频即语言”的范式,是后续视频生成大模型的重要前身。

p(XK+1∣X1:K)=∏j=1Np(zj∣z<j,X1:K)\displaystyle p(\mathbf{X}_{K+1} \mid \mathbf{X}_{1:K}) = \prod_{j=1}^{N} p(z_j \mid \mathbf{z}_{<j}, \mathbf{X}_{1:K})
未来帧被压缩成 N 个离散编码 $z_1, \dots, z_N$,Transformer 逐个预测这些编码的条件概率。
  1. 离散化$N$ 个编码构成未来帧的 token 表示,是 VQ-VAE 编码器的输出。
    XK+1→{z1,z2,…,zN}\mathbf{X}_{K+1} \rightarrow \{z_1, z_2, \dots, z_N\}
  2. 条件概率分解用链式法则把联合概率分解为每个 token 在历史条件下的概率乘积。
    p(XK+1∣⋅)=∏j=1Np(zj∣z<j,⋅)p(\mathbf{X}_{K+1} \mid \cdot) = \prod_{j=1}^{N} p(z_j \mid \mathbf{z}_{<j}, \cdot)
  3. 训练目标最大化对数似然,等价于最小化预测编码与真实编码的交叉熵。
    L=−log⁡p(XK+1∣X1:K)\mathcal{L} = -\log p(\mathbf{X}_{K+1} \mid \mathbf{X}_{1:K})

三大模型对比

三类导演各有风格,选谁上戏得看剧本。PredRNN 适合对时序精度要求高、视频长度适中的场景——比如监控视频中的行为预测。SimVP 适合追求速度和低成本的业务——比如工业质检中的快速异常检测。VideoGPT 适合需要“多种可能未来”的创意场景——比如内容生成、数据增强。

从指标上看,PredRNN 和 SimVP 追求的是“像素保真度”,常用 PSNR(峰值信噪比)和 SSIM(结构相似度)衡量。PSNR 看像素误差有多小,SSIM 看画面结构有多像。VideoGPT 则更看重“感知质量”和“多样性”——它生成的帧可能像素不是最准,但人眼看着更自然。这就像:一位导演追求“和实景一模一样”,另一位追求“画面美且有多种诠释”。

训练成本方面,PredRNN 需要逐步展开时间维,显存和耗时都高;SimVP 一次前向,效率最高;VideoGPT 先训 VQ-VAE 再训 Transformer,两阶段成本不菲。部署时,SimVP 最容易迁移到边缘设备,PredRNN 次之,VideoGPT 的端侧推理目前仍具挑战。

部署应用实战

回到现实世界。假设你是一家安防公司的算法工程师,老板说:“我要预测监控里行人下一秒的位置。”你怎么选模型?如果摄像头算力有限、要求实时响应,SimVP 是首选——它可以在 Jetson 等边缘设备上流畅运行,一次前向预测更快。如果场景复杂、需要捕捉细粒度运动模式(比如运动员姿态预测),PredRNN 的时空记忆更有优势。

再假设你在做短视频平台的“视频续写”功能——用户拍一段 3 秒的视频,AI 帮他续写 2 秒。这时候你需要的是“合理又多样”的续写,VideoGPT 的生成式采样正合适。而如果你要的是“像素级精准”的天气雷达外推,PredRNN 或 SimVP 这类确定性模型更可靠。

部署时还有两个现实问题:一是模型压缩,SimVP 的卷积结构天然适合量化和剪枝,可以压到几 MB 大小;PredRNN 的递归结构量化稍麻烦;VideoGPT 的 Transformer 层需要专门的推理优化。二是误差累积,循环模型在长时预测时误差会逐渐放大,实践中通常只预测未来 5-10 帧,而不是无限外推。

评估与挑战

视频预测的评估,最常用的两个指标是 PSNR 和 SSIM。PSNR 基于均方误差,数值越高代表像素越接近;SSIM 衡量亮度、对比度和结构的相似度,更贴近人眼感知。但这两个指标有个通病:它们偏爱“模糊但平均正确”的预测。模型如果把预测帧模糊化(比如所有物体都化成残影),PSNR 反而可能更高——因为模糊摊平了误差。

这引出了视频预测的核心挑战:模糊与崩溃。确定性模型(PredRNN、SimVP)在多模态场景下(比如滚动硬币可能向左也可能向右)会倾向输出“平均画面”——一个模糊的硬币。生成式模型(VideoGPT)则可能走向另一个极端:预测崩坏成噪声或重复帧。如何既保持多模态多样性又保证单帧清晰?这是当前研究的焦点。

未来方向包括:扩散模型(类似视频版 Stable Diffusion)用于更高质量的帧生成;世界模型把视频预测和强化学习结合,让 AI 在“内心剧场”里预演行动后果;多模态融合(文本+图像+视频)实现更可控的预测。视频预测从“学术课题”走向“通用能力”,这条路还很长,但方向已经清晰。

AI 应用场景

自动驾驶中的轨迹预测

阶段:模型推理与决策

解决的问题:自动驾驶车辆需要在 0.5 秒内预判周围车辆和行人的未来位置。传统方法基于手工特征和物理模型,难以应对复杂路口的多主体交互。用视频预测模型对环视摄像头画面做未来 1-2 帧预测,可以为规划模块提供“即将发生什么”的先验信号。

具体案例:某自动驾驶公司在其城市 NOA 系统中,用轻量版 SimVP 对前置摄像头视频流做未来 1 秒的像素级预测,将预测结果与目标检测结果融合。当预测帧显示前方有行人将横穿马路时,系统提前减速,比纯检测方案的反应时间提前了 0.3 秒。

气象雷达外推预报

阶段:时序预测与预警

解决的问题:传统数值天气预报计算量大、更新慢,对短临(0-2 小时)强对流天气预报不准。视频预测模型直接对雷达回波图序列建模,以过去 1 小时的回波演变预测未来 1 小时的强降雨区域。

具体案例:某气象科技公司将 PredRNN 应用于华南地区的雷达回波外推,输入过去 6 帧(每 6 分钟一帧)雷达图,输出未来 10 帧。在 2023 年一次暴雨过程中,模型提前 40 分钟预报了城区内涝风险区域,准确率比光流法提升 18%。

视频内容生成与增强

阶段:内容生成与编辑

解决的问题:短视频平台需要将用户拍摄的短片段自动续写、补帧或生成慢动作效果。生成式视频预测模型可以创造出符合物理规律的中间帧和后续帧,而不是简单的插值模糊。

具体案例:某视频编辑 App 集成了基于 VideoGPT 架构的视频续写功能。用户拍摄 2 秒挥手的片段,AI 自动续写 1 秒的挥手结束动作,生成 3 个不同版本供用户选择。上线后该功能的素材使用率是普通插帧功能的 4 倍。

Python 演示

python71 行
import torchimport torch.nn as nnimport numpy as np class ConvTranslator(nn.Module):    """简化版 SimVP:编码器-翻译器-解码器"""    def __init__(self, in_ch=5, hidden=32, out_ch=1):        super().__init__()        # 编码器:把 5 帧堆叠压缩为高维特征        self.encoder = nn.Sequential(            nn.Conv3d(in_ch, hidden, (1,3,3), padding=(0,1,1)),            nn.ReLU(),            nn.Conv3d(hidden, hidden, (3,3,3), padding=(1,1,1)),            nn.ReLU(),        )        # 翻译器:对时序维度做 1D 卷积,让特征带上"未来"信息        self.translator = nn.Sequential(            nn.Conv3d(hidden, hidden, (3,1,1), padding=(1,0,0)),            nn.ReLU(),        )        # 解码器:输出预测帧        self.decoder = nn.Sequential(            nn.Conv3d(hidden, 8, (1,3,3), padding=(0,1,1)),            nn.ReLU(),            nn.Conv3d(8, out_ch, (1,1,1)),        )     def forward(self, x):        # x: (B, 5, H, W),堆叠了 5 帧        x = x.unsqueeze(2)  # (B, 5, 1, H, W)        x = x.permute(0, 2, 1, 3, 4)  # (B, 1, 5, H, W)        f = self.encoder(x)        t = self.translator(f)        out = self.decoder(t)        return out.squeeze(2).squeeze(1)  # (B, H, W) def make_data(n=200, size=32):    """合成数据:一个白球从左上向右下移动"""    xs, ys = [], []    for _ in range(n):        start_x = np.random.randint(2, size-8)        start_y = np.random.randint(2, size-8)        vx = np.random.choice([1, 2])        vy = np.random.choice([1, 2])        seq = []        for t in range(6):  # 前5帧输入,第6帧目标            frame = np.zeros((size, size), dtype=np.float32)            frame[start_y + vy*t, start_x + vx*t] = 1.0            seq.append(frame)        xs.append(np.stack(seq[:5], axis=0))        ys.append(seq[5])    return (np.stack(xs), np.stack(ys)) # 训练X, Y = make_data()X_t = torch.tensor(X).unsqueeze(0)Y_t = torch.tensor(Y).unsqueeze(0)model = ConvTranslator()opt = torch.optim.Adam(model.parameters(), lr=1e-3)loss_fn = nn.MSELoss() for epoch in range(300):    opt.zero_grad()    pred = model(X_t)    loss = loss_fn(pred, Y_t)    loss.backward()    opt.step()    if epoch % 50 == 0:        print(f"epoch {epoch}, loss {loss.item():.4f}") print("训练完成!预测帧形状:", model(X_t).shape)
目的:演示视频预测的最小闭环——用 5 帧预测第 6 帧,模型采用 SimVP 式的“编码-翻译-解码”结构,在合成运动数据上训练并输出预测帧。
  1. class ConvTranslator(nn.Module):定义核心预测网络,结构对应 SimVP 的三段式设计。
  2. self.encoder = nn.Sequential(...)编码器用 3D 卷积在空间上压缩帧序列,提取联合时空特征。
  3. self.translator = nn.Sequential(...)翻译器在时间维做卷积,让特征主动“学习运动规律”。
  4. x.permute(0, 2, 1, 3, 4)调整维度顺序,让时间维进入卷积核,实现跨帧信息混合。
  5. make_data()合成“小球移动”数据集,提供可验证的视频预测任务。
  6. loss_fn = nn.MSELoss()用均方误差衡量预测帧与真实帧的逐像素差距,是 PSNR 指标的底层对应。

常见误区

误区我之前以为视频预测的目标就是让每一帧都跟真实视频一模一样,做不到就是模型不行。但看了一些 demo 后发现预测的帧总是有点模糊,觉得很失败。

正解像素级完美不仅在当前技术上不现实,在数学上也不一定是“正确”的目标。未来本身有不确定性——硬币可能向左滚也可能向右滚,任何确定性模型都无法同时精确预测两种可能。模糊恰恰是模型在表达“多种可能折中”。评估时不应只看 PSNR,还要结合业务需求:自动驾驶更需要“不出错”,内容生成更需要“足够自然”。

为何常见:因为初学者第一次接触视频预测,看到的多是论文里的可视化结果,而论文通常选取最容易展示的确定性场景,导致对“完美”产生了错误预期。

误区我一开始看模型列表,以为越新的模型就是越好的模型,VideoGPT 是最新的一定最强,SimVP 是中间产物应该不如 PredRNN。选模型就选最新的那个准没错。

正解三类模型解决的是不同层面的问题:PredRNN 代表循环归纳偏置,SimVP 代表非循环效率路线,VideoGPT 代表生成式多样路线。VideoGPT 能生成多样帧但速度慢且不可控,SimVP 快且稳但无多样性和泛化弱,PredRNN 在运动建模上有优势但训练重。没有绝对的“最好”,只有和场景的最优匹配。

为何常见:人类习惯用线性“进步”叙事来理解技术演进,而实际技术路线是分叉并行的,各有适用边界。

误区我以为 VideoGPT 用了 Transformer,算是“大模型”范式,效果肯定全面碾压传统卷积模型,训练数据少点也没关系。

正解Transformer 只是架构,它的优势在大量数据和充足算力下才能释放。在数据量有限的小型业务场景中,VideoGPT 的训练很容易欠拟合或崩溃(生成噪声帧)。反之,SimVP 的卷积结构有很强的归纳偏置,小数据就能训练出稳定的预测器。技术选型永远是“数据量 × 算力 × 需求”的综合权衡。

为何常见:因为近年大模型的强光环让初学者误以为“Transformer + 大 = 更强”,忽视了小数据下归纳偏置的宝贵性。

误区我一开始以为视频预测就是把前几帧的图像拼成一个大张量,丢进任何图像分类网络就能自动学到运动信息。反正卷积能看到多帧的差异。

正解直接拼接会丢失“时间对齐”的结构信息。卷积的局部感受野默认假设邻近像素是空间邻居,而堆叠后的帧之间是“时间邻居”,标准卷积并不擅长跨时间维建模。这就是为什么 SimVP 需要专门的翻译器,PredRNN 需要时空 LSTM,VideoGPT 需要 Transformer 的注意力来捕捉长距离时序依赖。必要的结构设计才能让模型看懂“运动”。

为何常见:因为从图像分类迁移到视频任务时,新手容易低估“时序结构”带来的额外复杂度。

面试题

Q1. 视频预测任务的核心挑战是什么?

单选题 · mid

  • A.像素值难以存储
  • B.同时建模空间与时间信息← 正确答案
  • C.视频文件格式不统一
  • D.摄像头硬件成本过高

答案:B。视频预测需要模型既理解单帧中的空间内容(有什么),又捕捉帧间的时序变化(怎么动),是空间与时间双重建模。像素存储可由压缩算法解决,格式与硬件问题属于工程边缘项,非模型核心挑战。

Q2. LSTM 相比 RNN 的主要改进是什么?

单选题 · easy

  • A.深了更多层的网络结构
  • B.增加了门控机制和长期记忆通道← 正确答案
  • C.引入了卷积操作提取特征
  • D.使用注意力机制代替所有循环

答案:B。LSTM 的核心创新是引入了遗忘门、输入门、输出门和一个长期细胞状态,让信息可以选择性保留或丢弃,缓解了 RNN 对长序列的遗忘问题。它仍是循环结构,不依赖卷积或注意力。

Q3. PredRNN 相比传统 LSTM 的改进包括哪些?

多选题 · mid

  • A.增加了纵向的空间记忆传播← 正确答案
  • B.完全放弃了时间维度的依赖
  • C.使用时空 LSTM 单元融合双记忆← 正确答案
  • D.用 Transformer 替代所有递归计算

答案:AC。PredRNN 引入了沿网络层纵向传播的空间记忆,并设计了时空 LSTM 单元将空间记忆与时间记忆融合。它没有放弃时间依赖,也没有引入注意力机制,B 和 D 都不符合 PredRNN 的实际设计。

Q4. SimVP 的架构三阶段是什么?

单选题 · easy

  • A.编码器-翻译器-解码器← 正确答案
  • B.编码器-注意力-分类器
  • C.采样器-生成器-判别器
  • D.卷积-池化-全连接

答案:A。SimVP 采取极简端到端设计:编码器逐层提取特征,翻译器建模帧间时序变化,解码器把变换后的特征还原为预测帧。它没有递归过程,一次前向即可得到预测结果。

Q5. VideoGPT 中 VQ-VAE 模块的核心作用是什么?

单选题 · mid

  • A.直接生成整段视频帧
  • B.把视频压缩为离散 token 序列← 正确答案
  • C.提升卷积的感受野大小
  • D.替代 Transformer 完成自回归预测

答案:B。VQ-VAE 将连续视频帧编码为一组离散编码(即 token),让视频能以“语言建模”的方式被 Transformer 处理。它不负责生成,也不负责自回归预测,而是压缩-重建的中间桥梁。

Q6. 关于 PSNR 和 SSIM 两个评估指标的局限,以下说法成立的有?

多选题 · hard

  • A.PSNR 偏好“模糊但平均正确”的预测结果← 正确答案
  • B.两个指标都不擅长衡量画面的感知自然度← 正确答案
  • C.SSIM 完全不受模糊影响分数依旧很高
  • D.指标高分一定代表预测内容符合物理规律

答案:AB。PSNR 基于逐像素误差,模糊输出可以让误差均匀分布而得到较高分数;SSIM 虽更贴近结构感知,但对多重合理未来的多样性无力评估。两者都非感知指标,高分不保证内容逻辑正确,SSIM 对模糊仍有惩罚,C 错误,D 过于绝对。

Q7. 在边缘设备部署视频预测模型,最可能优先选择哪种架构?

单选题 · mid

  • A.完整 VideoGPT
  • B.轻量版 SimVP← 正确答案
  • C.全尺寸 PredRNN
  • D.大语言模型做帧预测

答案:B。SimVP 是单次前向结构,无递归展开,参数量小且适合量化压缩,是边缘部署的首选。VideoGPT 自回归逐 token 生成太慢,PredRNN 递归结构对边缘不友好,LLM 做帧预测在算力上完全不现实。

Q8. 确定性视频预测模型面对“多种可能未来”时通常会输出什么?

单选题 · easy

  • A.随机选出一个完整未来
  • B.多种未来的模糊平均← 正确答案
  • C.完全无法输出任何结果
  • D.自动生成慢动作效果

答案:B。以 L1/L2 损失训练的确定性模型,多模态分布下最优解是条件均值,反映到图像上就是多个未来叠加出的模糊画面。这不是缺陷而是优化目标的数学必然。

Q9. 以下哪些是当前视频预测领域公认的开放挑战?

多选题 · hard

  • A.长时预测中误差逐步累积← 正确答案
  • B.学习多模态未来分布并保持帧清晰← 正确答案
  • C.视频压缩格式的标准化统一
  • D.将预测与强化学习结合构建世界模型← 正确答案

答案:ABD。误差累积是所有视频预测的痛点,多模态多样性与清晰度的平衡是生成式模型的核心难点,用预测模型做世界模型的“内心预演”是前沿方向。C 视频压缩格式标准化是工程标准问题,不属于模型研究挑战。

Q10. 三个视频预测模型中,哪一类最强调“生成多种合理未来”?

单选题 · easy

  • A.循环时序模型
  • B.简化端到端模型
  • C.生成式自回归模型← 正确答案
  • D.光流插值模型

答案:C。VideoGPT 这类生成式模型通过自回归采样,可以在给定相同输入时产生不同的输出帧,天然支持多模态未来。循环模型和端到端模型都是确定性输出,光流插值仅生成单一插值结果。