强化学习算法复现(四):n步自举法的价值预测能力_随机游走问题

本文介绍了如何使用n步自举法(n-steps TD method)来预测马尔可夫收益过程(MRP)中的状态价值,特别是在一个19状态的随机游走问题中。实验展示了不同步长和学习率对预测能力的影响,发现n取中间值时的预测效果更优,揭示了n步TD方法在结合单步TD和MC预测方面的优势。
摘要由CSDN通过智能技术生成

【马尔可夫收益过程(Markov reward process , MRP)】是指不包含动作的马尔可夫决策过程,在只关心预测问题时使用的模型。

问题描述:
以中心状态C开始,在每个时刻以相同的概率向左或向右移动一个状态,在两端终止,episode终止于最右侧时会有+1的收益,除此之外收益均为0。
在这里插入图片描述
对于19个状态的随机游走问题,其左端收益为-1,右端收益为+1,其真实的价值应为[ 0. , -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0. ]

导入所需要的包:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from tqdm import tqdm

plt.rcParams['font.sans-serif'] = ['SimHei']  # 正确显示中文
plt.rcParams['axes.unicode_minus'] = False  # 正确显示正负号

问题描述:

# 共有19个状态
N_STATES = 19

# 折扣系数
GAMMA = 1

# 状态合计【1,2,3,4,……,19】
STATES = np.arange(1, N_STATES + 1)

# 起始状态_中间位置开始
START_STATE = (N_STATES+1)/2

# 两个终止状态
# S=0时,左边终止 reward=-1    
# S=20时,右边终止 reward=1
END_STATES = [0, N_STATES + 1]

# 随机游走问题中真实的价值函数,用来通过误差评比各种算法的预测能力
TRUE_VALUE = np.arange(-20, 22, 2) / 20.0
TRUE_VALUE[0] = TRUE_VALUE[-1] = 0 #第一个和最后一个都是0

环境交互函数:(随机action)

def env_step(state):
    
     # 随机游走,更新state
    if np.random.binomial(1, 0.5) == 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值