关于TD算法的笔记【时间差分】
1. TD算法逻辑:TD算法即时间差分算法,结合了蒙特卡洛方法和动态规划思想,通过当前估计值和下一个时间步观测值更新状态价值估计,无需完整episode或环境完整信息。
2. 下一时刻估计值计算:下一时刻估计值为 r_{t + 1}+\gamma V(s_{t + 1}) 。其中 r_{t + 1} 是从状态 s_t 转移到 s_{t + 1} 获得的即时奖励,由环境给出;\gamma V(s_{t + 1}) 中 V(s_{t + 1}) 是之前学习得到的对下一个状态价值的估计,\gamma 是折扣因子,取值在0到1之间,衡量未来奖励重要性,二者相加得到下一时刻估计值。
3. 下一个状态价值来源:初始时所有状态价值函数随机或设为0,学习中每经历一次状态转移,根据TD更新公式更新状态价值,下一个状态价值是上一次更新后的结果,随着学习推进逐渐逼近真实价值。
4. 网格世界示例:在 3\times3 网格世界中,智能体从起始位置 S 到终止位置 G ,非终止状态即时奖励 -1,终止状态 0 ,\gamma = 0.9 ,\alpha = 0.1 。初始化价值函数为0,智能体移动时根据TD更新公式更新状态价值,如从 s_t 移动到 s_{t + 1} ,V(s_t) 按公式 V(s_t)\leftarrow V(s_t)+\alpha [r_{t + 1}+\gamma V(s_{t + 1}) - V(s_t)] 更新,不断重复使价值函数收敛。
5. 考虑移动方向情况:若每个方向移动概率相同(如都是 \frac{1}{4} ),当前状态价值函数更新会综合考虑四个方向的即时奖励和后续状态价值信息,按概率加权叠加到当前位置价值函数中。
6. 确定最优策略:为全面考虑并找最优策略,可使用状态价值函数 V(s) 综合所有方向信息更新,或使用动作价值函数 Q(s,a) ,直接为每个状态下每个动作维护价值,通过更新 Q(s,a) 确定每个状态下最优动作,进而找到最优策略 。