Q-learning 思维决策 - 强化学习 (Reinforcement Learning) | 莫烦Python
切换视频源:

Q-learning 思维决策

作者: 莫烦 编辑: 莫烦 2017-01-09

学习资料:

接着上节内容, 我们来实现 RL_brainQLearningTable 部分, 这也是 RL 的大脑部分, 负责决策和思考.

代码主结构

与上回不一样的地方是, 我们将要以一个 class 形式定义 Q learning, 并把这种 tabular q learning 方法叫做 QLearningTable.

预设值

初始的参数意义不会在这里提及了, 请参考这个快速了解通道 机器学习系列-Q learning

决定行为

这里是定义如何根据所在的 state, 或者是在这个 state 上的 观测值 (observation) 来决策.

学习

上一个简单的 q learning 例子一样, 我们根据是否是 terminal state (回合终止符) 来判断应该如何更行 q_table. 更新的方式是不是很熟悉呢:

update = self.lr * (q_target - q_predict)

这可以理解成神经网络中的更新方式, 学习率 * (真实值 - 预测值). 将判断误差传递回去, 有着和神经网络更新的异曲同工之处.

检测 state 是否存在

这个功能就是检测 q_table 中有没有当前 state 的步骤了, 如果还没有当前 state, 那我我们就插入一组全 0 数据, 当做这个 state 的所有 action 初始 values.

如果想一次性看到全部代码, 请去我的 Github


降低知识传递的门槛

莫烦很常从互联网上学习知识,开源分享的人是我学习的榜样。 他们的行为也改变了我对教育的态度: 降低知识传递的门槛免费 奉献我的所学正是受这种态度的影响。 通过 【赞助莫烦】 能让我感到认同,我也更有理由坚持下去。