时间步是什么?把连续的时间切成一步一步来处理
时间步(Time Step)是指把一个随时间变化的过程离散化之后,其中的一个时刻或一个步骤。计算机无法直接处理连续不断的时间,因此通常把时间切分成一个个离散的步,一步一步地进行计算。这个概念在机器学习、强化学习、物理模拟等很多领域都会出现,含义略有不同。
在序列模型中
在处理文本、语音、时间序列等序列数据时,时间步对应的是序列中的一个位置。比如用循环神经网络处理一句话,每一个词就是一个时间步:在第一个时间步,网络读入第一个词;在第二个时间步,读入第二个词,同时结合上一步留下来的“记忆”,也就是隐藏状态;以此类推。对于股票价格、气温这样的时间序列,每一个时间步可能对应一天、一小时或一分钟的数据。一个序列有多少个时间步,就叫作序列的长度。训练循环神经网络时使用的“随时间反向传播”算法,就是把网络在各个时间步上展开,再从最后一个时间步往回计算梯度。时间步太多时,就容易出现梯度消失或梯度爆炸的问题。
在大语言模型中,虽然 Transformer 可以并行地处理整个输入,但在生成文字时,仍然是一个时间步生成一个 token,每一步都基于之前已经生成的内容来预测下一个 token。
在强化学习中
在强化学习中,时间步指的是智能体与环境之间的一次交互。在每一个时间步,智能体观察环境当前的状态,选择并执行一个动作;环境随之转移到新的状态,并给智能体一个奖励;然后进入下一个时间步。从开始到结束的一系列时间步构成了一个回合,比如一局游戏。强化学习算法通常用累计的时间步数来衡量训练的进度,比如“训练了一千万个时间步”。由于未来的奖励通常会乘以一个折扣因子,时间步越靠后的奖励,对当前决策的影响就越小。
在物理模拟和数值计算中
在模拟物体运动、流体流动、天气变化等物理过程时,时间步指的是每次计算向前推进的时间长度,也叫步长。计算机根据当前时刻的状态和物理规律,计算出经过一个时间步之后的状态,再以此为基础计算下一步,如此不断地推进。时间步的选择需要权衡:时间步越小,模拟越精确,但计算量越大;时间步太大,计算可能变得不准确,甚至出现数值不稳定,导致结果完全失真。在游戏引擎中,物理模拟通常采用固定的时间步,比如每秒 60 步,以保证模拟的稳定和一致。
在扩散模型中
在扩散模型中,时间步指的是加噪和去噪过程中的第几步。在前向过程中,从一张清晰的图片开始,每一个时间步都加入一点噪声,经过很多步之后变成纯粹的噪声;在生成时,从纯噪声出发,每一个时间步去除一点噪声,逐步还原出清晰的图片。模型在去噪时,需要知道当前处于哪一个时间步,因为不同时间步的图片含有的噪声多少不同,需要不同程度的处理。生成时使用的时间步越少,速度越快,但质量可能下降,因此很多研究致力于用更少的时间步生成高质量的图片。