TF-Agents训练架构与组件构建详解
1. TF-Agents训练架构概述
TF - Agents训练程序通常分为两个并行运行的部分,如图所示:
- 左边部分:一个驱动程序(driver)使用收集策略(collect policy)探索环境,选择动作并收集轨迹(trajectories,即经验),然后将这些轨迹发送给观察者(observer),观察者将其保存到回放缓冲区(replay buffer)中。
- 右边部分:一个智能体(agent)从回放缓冲区中提取一批轨迹,并训练一些网络,这些网络被收集策略使用。
简单来说,左边部分负责探索环境并收集轨迹,右边部分负责学习并更新收集策略。
下面是对一些常见问题的解答:
- 为何使用多个环境 :使用多个环境副本并行探索,可以充分利用CPU核心的计算能力,让训练GPU保持忙碌状态,同时为训练算法提供相关性较低的轨迹。
- 什么是轨迹 :轨迹是从一个时间步到下一个时间步的转换的简洁表示,或者是从时间步n到时间步n + t的连续转换序列。驱动程序收集的轨迹会被传递给观察者,保存到回放缓冲区,后续由智能体采样用于训练。
- 为何需要观察者 :虽然驱动程序可以直接保存轨迹,但这会使架构缺乏灵活性。例如,如果不想使用回放缓冲区,或者想将轨迹用于其他用途(如计算指标),观察者就派上用场了。观察者实际上是一个以轨迹为参数的函数,可以用于将轨迹保存到回放缓冲区、TFRecord文件,计算指标等。而且可以向驱动程序传递多个观察者,驱动程序会将轨迹广播给所有观察者。
需要注
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



