关于深度的问题 Q-Learning
Questions About Deep Q-Learning
我看了一些关于deep的资料q-learning,但我不确定我是否完全理解。据我了解,Deep Q-learning 似乎比 Q-values 计算得更快,而不是通过使用神经网络执行回归、计算损失和反向传播错误来更新 table 将它们放在 table 上权重。然后,在测试场景中,它需要一个状态,神经网络将为该状态的每个可能的动作 return 几个 Q-values。然后,最高 Q-value 的动作将被选择在该状态下完成。
我唯一的问题是权重是如何更新的。根据this site权重更新如下:
我知道权重是随机初始化的,R 是由环境 return 调整的,gamma 和 alpha 是手动设置的,但我不明白 Q(s',a,w) 和 Q( s,a,w) 被初始化和计算。看起来我们应该构建 Q-values 的 table 并像使用 Q-learning 一样更新它们,还是在每个 NN 训练时期自动计算它们?我在这里不明白什么?有人可以更好地向我解释这样一个方程式吗?
在Q-Learning中,我们关心的是学习Q(s,a)函数,它是一个状态到所有动作之间的映射。假设您有一个任意状态 space 和一个包含 3 个动作的动作 space,这些状态中的每一个都会计算出三个不同的值,每个值都是一个动作。在表格 Q-Learning 中,这是通过物理 table 完成的。考虑以下情况:
在这里,我们为游戏中的每个状态(左上角)设置了一个 Q table。在每个时间步之后,该特定动作的 Q 值会根据一些奖励信号进行更新。奖励信号可以按 0 到 1 之间的某个值打折。
在 Deep Q-Learning 中,我们忽略 table 的使用并创建一个参数化的 "table",如下所示:
在这里,所有权重将形成输入的组合,应该适当地匹配表格案例中看到的值(仍在积极研究中)。
你给出的方程是梯度更新规则中的Q-learning更新规则集。
- alpha 是 step-size
- R是奖励
- Gamma 是贴现因子
您对网络进行推理以检索 "discounted future state" 的值并将其与 "current" 状态相减。如果不清楚,我建议您查看 boostrapping,这基本上就是这里发生的事情。
我看了一些关于deep的资料q-learning,但我不确定我是否完全理解。据我了解,Deep Q-learning 似乎比 Q-values 计算得更快,而不是通过使用神经网络执行回归、计算损失和反向传播错误来更新 table 将它们放在 table 上权重。然后,在测试场景中,它需要一个状态,神经网络将为该状态的每个可能的动作 return 几个 Q-values。然后,最高 Q-value 的动作将被选择在该状态下完成。
我唯一的问题是权重是如何更新的。根据this site权重更新如下:
我知道权重是随机初始化的,R 是由环境 return 调整的,gamma 和 alpha 是手动设置的,但我不明白 Q(s',a,w) 和 Q( s,a,w) 被初始化和计算。看起来我们应该构建 Q-values 的 table 并像使用 Q-learning 一样更新它们,还是在每个 NN 训练时期自动计算它们?我在这里不明白什么?有人可以更好地向我解释这样一个方程式吗?
在Q-Learning中,我们关心的是学习Q(s,a)函数,它是一个状态到所有动作之间的映射。假设您有一个任意状态 space 和一个包含 3 个动作的动作 space,这些状态中的每一个都会计算出三个不同的值,每个值都是一个动作。在表格 Q-Learning 中,这是通过物理 table 完成的。考虑以下情况:
在这里,我们为游戏中的每个状态(左上角)设置了一个 Q table。在每个时间步之后,该特定动作的 Q 值会根据一些奖励信号进行更新。奖励信号可以按 0 到 1 之间的某个值打折。
在 Deep Q-Learning 中,我们忽略 table 的使用并创建一个参数化的 "table",如下所示:
你给出的方程是梯度更新规则中的Q-learning更新规则集。
- alpha 是 step-size
- R是奖励
- Gamma 是贴现因子 您对网络进行推理以检索 "discounted future state" 的值并将其与 "current" 状态相减。如果不清楚,我建议您查看 boostrapping,这基本上就是这里发生的事情。