GAIT: Generating Aesthetic Indoor Tours with Deep Reinforcement Learning
1. 多GPU设置中的 GAIT 框架
我们描述了在多GPU环境下用于两个actor-critic算法(DrQ-v2 和 CURL)的GAIT框架共享组件。在数据循环中,actor会不断地与环境进行交互,并将每次转换(transition)存储到Replay Buffer(回放缓冲区)中。Update worker(更新工作器)会从Replay Buffer中抽取一批转换样本,并基于DrQ-v2和CURL的RL损失函数来更新actor和critic网络。数据和更新工作器通过共享的存储(Storage)进行步骤的同步,以维持2:1的数据-更新步骤比率,同时也确保actor网络的权重是最新的。
详细说明:
-
数据循环:actor在此循环中通过与环境的交互获得经验。这些经验(即状态、动作、奖励、下一状态等转换信息)会被储存到Replay Buffer中,用于后续的更新。
-
Replay Buffer:该缓冲区用于存储所有actor与环境的交互数据,以便Update worker在更新时可以从中随机采样一批转换数据,进行算法学习和模型优化。
-
更新工作器(Update Worker):此工作器从Replay Buffer中取样数据,通过RL损失函数更新actor和critic网络。DrQ-v2和CURL分别具有自己的RL损失函数,用于优化其策略和价值网络。
-
共享存储(Storage):该存储机制用于数据循环和更新工作器之间的交流,确保两者之间的进度协调一致。数据和更新的步骤比率保持在2:1,以确保数据产生和模型更新速度平衡。同时,actor的网络权重在更新后也会存储在这里,以便各工作器可以实时使用最新的网络参数。
2. Actor-critic RL 算法
在GAIT框架中, 我们使用了两种最先进的视觉actor-critic深度强化学习算法: DrQ-v2 和 CURL。 对于这两种算法actor网络表示策略 $\pi(a_t | x_t)$,critic网络表示状态-动作价值函数 $Q(s_t, a_t)$。 critic网络的优化目标是近似给定状态-动作对的期望回报:
\[Q^{\pi}(s_t, a_t) = E_{a_{i>t} \sim \pi}[R_t | s_t, a_t]\]其中动作由actor网络选择。actor网络的优化目标是最大化环境中所有初始状态下的期望回报:
\[\pi^* = \arg \max_{\pi} E_{a_i \sim \pi}[R_1]\]DrQ-v2 和 CURL 的详细说明
-
DrQ-v2:对于DrQ-v2,我们使用Q学习来更新critic网络,具体方法参考了DDPG算法。critic网络通过Q学习来估计每个状态-动作对的价值,从而指导actor的策略。actor的更新则基于由critic网络提供的动作价值,结合DPG算法的链式法则对其进行优化。
-
CURL:对于CURL,actor和critic网络的更新目标还包含了策略的熵项。熵项的加入参考了SAC算法,旨在增加策略的探索性,从而避免局部最优陷阱。通过将策略的熵纳入目标函数,CURL在选择动作时既考虑了当前的回报,也增强了对未来潜在回报的探索。
3. 奖励函数
3.1 出界惩罚
引入出界惩罚项以防止相机置于室内场景外。对于每个场景,我们设定一个轴对齐的边界框作为相机位置的活动范围。相机位置在该范围内被归一化为 $[-1, 1]^3$。如果相机位置超出边界,则奖励为固定的负值 $r_B$:
\[r_t = \begin{cases} r_t^A r_t^S r_t^D, & \text{如果相机在边界内} \\ r_B, & \text{否则} \end{cases}\]在本文的所有实验中,$r_B$ 被设为 $-10$。
3.2 视图美学(View Aesthetics)
我们使用神经网络美学模型来评估视图的美学质量。该模型基于人群数据进行美学评估,在3D室内场景中表现良好。为了进行美学评估,我们渲染分辨率为240 × 240的高分辨率图像(而不是观察中的84 × 84分辨率图像),以满足神经网络美学模型的要求。
3.3 时间平滑性(Temporal Smoothness)
对时间序列帧的美学进行评估是一个尚未解决的研究难题。我们目前依赖于单帧的美学模型来评估美学质量。然而,如果只使用单帧而不考虑整个序列的美学,智能体的行为可能会发生偏差,导致结果退化。因此,我们在奖励函数中引入了时间平滑性项 $r_t^S$,当智能体的动作与前几个时间步的动作差距较大时,对其进行惩罚。平滑性项的加入产生了更为平滑的相机轨迹,使得序列中的相机姿态适度不同。
3.4 多样性正则化(Diversity Regularization)
如果没有多样性正则化,GAIT框架会生成一组具有鲁棒性的序列,其中不同的初始相机姿态会趋向于相同的、全球美学值最高的目标姿态。为此,我们在奖励函数中加入了一个多样性正则化项 $r_t^D$。
我们定义了最多4个相机姿态及其对应的距离 \(\{\bar{x}_j^P, d_j\}_{0 \le j < 4}\)
称为“排除姿态”。如果智能体的当前姿态与任一排除姿态 $\bar{x}_j^P$ 的距离小于对应距离 $d_j$,则多样性正则化项对智能体进行惩罚:
\[r_t^D = \min_{0 \le j < 4} \left(\min\left(\frac{\|x_t^P - \bar{x}_j^P\|_2}{d_j}, 1\right)\right).\]多样性观测
多样性观测包含排除姿态以及智能体当前相对于这些排除姿态的距离:
\[x_t^D = \{\bar{x}_j^P, d_j, \|x_t^P - \bar{x}_j^P\|_2\}_{0 \le j < 4}。\]排除姿态的训练策略
为了训练GAIT智能体使用排除姿态,我们采用另一种策略:在每个回合中,将前4个回合的最终相机姿态作为排除姿态,并在 \([0.3, 1.3]\) 范围内随机设置排除距离。因为GAIT智能体倾向于在美学评分较高的相机姿态处结束以最大化奖励,所以选择结束姿态作为排除姿态比随机选择排除姿态收敛速度更快。
用户自定义排除姿态
一旦训练完成,用户可以在运行时自定义排除相机姿态 ${\bar{x}_j^P, d_j}$,以生成一系列避免这些排除姿态的相机轨迹。这样,智能体可以生成既具有多样性又具有美学意义的轨迹集;而如果不使用多样性正则化,则可以生成从不同初始条件出发、最终收敛到同一全球美学值最高的相机姿态的美学轨迹。要禁用多样性正则化,可以定义边界外的排除姿态。
Leave a comment