#3327·gym

[问题] blackjack-v1 的训练误差不断增加

作者: NourHatem119创建于 2026年2月22日更新于 2026年3月17日

问题 我当时在操控健身房的辅导员 医生说我应该看到训练错误减少 但我的训练错误越来越严重 因此我想知道这是否正常 医生的字眼有误 还是有些问题

我会尽力帮助任何想回答我问题的人

状态 : <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 ()

以防出现代码

从
. . . . . . .