[问题] blackjack-v1 的训练误差不断增加
问题 我当时在操控健身房的辅导员 医生说我应该看到训练错误减少 但我的训练错误越来越严重 因此我想知道这是否正常 医生的字眼有误 还是有些问题
我会尽力帮助任何想回答我问题的人
状态 : <img宽="1189"高="490" alt="Image" src="https://GitHub.com/user-attachments/assets/a229856c-2420-40bf-af6d-b7673c4237bd"/".
代理代码 : [Python] 导入默认值 将数字导入为 np
类别 : (单位:百万美元) 本人, {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}嗯... 信条 学习率:浮点, 初始 epsilon:浮点, epsilon decay:浮点, 最终 epsilon:浮起, 减值 因素:浮点=0.95, : 自行.env = env
自我.q 值 = 默认dit (lambda: np.zeros (env.action space.n))
lr = 学习 速率 自我. 折扣 因素 = 折扣 因素
自我.epsilon = 初始 epsilon 自我.epsilon decay = epsilon decay 本身。 final epsilon = final epsilon
自我. training error = [] (中文(简体) ).
def get action(自, obs: tuple[int, int, bul]) - > int: 如果 np.random.random () < self.epsilon: 返回自定义.env.action space.sample () 其他情况: 返回 int(np.argmax(self.q values[obs]))
更新( D) 本人, obs:tuple[int,int,bool],[t. 动作:整数, 报酬:浮起, 终止: bol, 下个 obs:tuple[int,int,bul], : 未来 q 值=(未终止) * np.max(自.q 值 [next obs]) 目标=奖励 + 自我. 折扣 因素 * 未来 q 价值
Time difference = 目标 -自.q 值 [obs][行动]
自我.q 值 [obs][行动]=( 自我. q 值 [obs][ action] + 自我. lr * 时间- 差异 (中文(简体) ).
自我. training error. append( 时空 差分)
def 衰变 epsilon( 自 ): self.epsilon = 最大(自.final epsilon,自.epsilon -自.epsilon decay)
培训循环:
```2ZZ
学习率=0.01
n episodes = 100 000
启动 epsilon = 1.0
epsilon decay = start epsilon / (n episodes / 2) 互联网档案馆的存檔,存档日期2013-12-2.
最终 epsilon = 0.1
env=健身. make ("Blackjack-v1", sab=False) (英语).
env = grob. wrappers. Record Episode 统计 (env, 缓冲- 长度=n episodes)
代理 = 21 jack Agent (env, learning rate, start epsilon, epsilon decay, final epsilon) 代理服务器
从 tqdm 导入 tqdm
tqdm( 范围( n episodes)) 中的插曲 :
obs,信息=env.reset () (中文(简体) ).
已完成 = 虚假
未完成时 :
动作=代理.get action(obs)
下一个 obs, 奖励, 终止, 截断, 信息=env. step( action)
author.update(错误,动作,奖励,终止,下一条)
已完成 = 终止或截断
obs=下一个 obs
代理.decay epsilon ()以防出现代码
从
. . . . . . .内容来源: openai/gym