Q-learning简化过程

Q learning里的核心思想是如下公式:


其中,第一个Q(S, A)是更新后的值,第二个 Q(S, A)是Q表中值,a是指学习效率,r是奖励值。\gamma是折扣因子。第三个Q是指要选取Q表中的最大值。最后一个表示Q表中值,与第二个Q一样。

现在通过书中的伪代码来展示Q-learning的过程:


1. 初始化Q-Table:Q-table|S|*|A|的矩阵。其中,|S|代表了所有的状态,|A|代表了所有的动作。矩阵中各个元素首先初始化为0。

2. 进入循环1

3. 进入循环2:

    3.1 带入当前状态。若为第一次循环,此处需随机选择一个状态作为初始状态;

    3.2 为该状态选择一个动作:需注意,此处有一个学习效率。选择动作的方法为:agent有1-a的概率,随机选择动作;有a的概率,选择对应Q值最大的动作;

    3.3 据当前状态S和当前动作A,得出下一个状态S‘和奖励R;

    3.4 通过上图公式更新Q-table;

    3.5 更新状态。


注意:循环1的结束可以为Q-table中的值收敛。也可以为一个固定值,例如整个程序运行1000次,停止。循环2的结束条件为到达最终状态。


猜你喜欢

转载自blog.csdn.net/liverpool_05/article/details/80239182
今日推荐