深度强化学习笔记(二)——Q-learning学习与二维寻路demo实现
文章目录
前言
这几天稍微闲下来,把原来漏的坑给补上,并做了一个Q-Learning的demo,因为Q-leraning的demo,目前我看到比较多的都是莫烦大佬讲的那个一纬寻路的demo,我觉得看起来没有那么有代表性,于是在此基础上,自己修改做了一个二维寻路的demo,奥利给
理论
什么是Q-Learning
Q-learning是一种无模式RL的形式,它也可以被视为异步DP的方法。它通过体验行动的后果,使智能体能够在马尔可夫域中学习以最优方式行动,而无须构建域的映射。智能体在特定状态下尝试行动,并根据其收到的即时奖励或触发以及对其所处状态的值得估计来评估其后果。 通过反复尝试所有状态的所有行动,它可以通过长期折扣奖励来判断总体上最好的行为。
算法
从状态 Δ t \Delta t Δt步进入未来步长的权重计算为 γ Δ t \gamma^{\Delta t} γΔt, γ \gamma γ(折扣因子)是介于0和1,并且具有对较迟收到的奖励(反映出良好开端的价值)进行估值的效果。 γ \gamma γ也可以被解释为在每一步 Δ t \Delta t Δt都成功的概率
Q : S × A − > R Q:S\times A->R Q:S×A−>R
首先把Q-learning状态表的动作表初始化为0,然后通过训练更新每个单元。在每个时间t智能体选择动作 a t a_t at,观察奖励 r t r_t rt,进入新状态 s t + 1 s_{t+1} st+1(可能取决于先前状态 s t s_t st和所选的动作),并对Q进行更新 ,该算法的核心是一个简单的值迭代更新过程,即使用旧值和新信息的加权平均值
Q n e w ( s t , a t ) < − ( 1 − α ) Q ( s t , a t ) + α ( r t + γ m a x a Q ( s t +