基于强化学习Q学习算法的AI下五子棋项目
Q学习方法
函数是对策略$\pi$的评估。如果策略$\pi$有限(即状态数和动作数都有限),可以对所有的策略进行评估并选出最优策略$\pi*$。但这种方式在实践中很难实现,通过迭代的方法不断优化策略,直到选出最优策略。 针对如何学习一个最优的策略,我们可以这样做:先随机初始化一个策略,计算该策略的值函数,并根据值函数来设置新的策略,然后一直反复迭代直到收敛。
如果需要拿到完整的轨迹才能评估和更新策略,则效率较低,因此考虑模拟一段轨迹,每行动一步,就利用贝尔曼方程评估状态的价值,即时序差分方法。下面考虑使用Q学习算法估计Q函数: $$ Q(s,a)\leftarrow Q(s,a)+\alpha(r+\gamma\max_{a'}Q(s',a')-Q(s,a)) $$ Q学习的算法不通过$π^ε$来选择下一步动作$a'$,而直接选择最优Q函数,所以更新后的Q函数是关于策略$\pi$而非$\pi^\epsilon$的,因此是一种异策略算法。
2. 流程图和伪代码
考虑使用Q学习的方法来得到能下黑白棋的人工智能。下黑白棋需要先手和后手,因此考虑使用相同的方法训练两套模型,分别适用于黑棋和白棋。训练的流程图如下:</