Q-Learning 1. 什么是Q-Learning
Q-Learning算法是一种使用时序差分求解强化学习控制问题的方法。通过当前的状态S,动作A,即时夸奖R,衰减因子γ,探索率ϵ,就最最优的动作代价函数Q和最有战略π。
- S: 表现情况的状态,在t时刻情况的状态St
- A:agent的动作,在t时刻采取的动作At
- R:情况的夸奖,在t时刻agent在状态St采取动作At对应的夸奖Rt+1会在t+1时刻得到
- γ:折扣因子, 当前延时夸奖的权重
- ϵ:探索率,在Q-learning我们会选取当前轮迭代代价最大的动作,可能会导致有的动作重来都没被执行过,在agent选择动作时,有小概率不是选取当前迭代代价最大的动作。
2.Q-Learning算法简介
首先我们基于状态S,用ϵ−greed(贪心)选择到动作A, 然后执行动作A,得到夸奖R,并进入状态S′,Q值的更新公式如下:
Q-learning的算法流程
- 随机初始化状态和动作代价对应的代价。(初始化Q表格)
- for i from 1 to T(T:迭代的总轮数)
1) 初始化S为当前状态的序列的第一个状态
2)用ϵ−贪婪法在当前状态S选择出动作A
3) 在状态S执行当前动作A,得到新状态S′和夸奖R
4)更新代价函数Q(S,A):
5)S=S′
if done 完成当前迭代
关于Q_table举个例子
游戏舆图
这是一个训练模子之后的Q表格
举个简单的例子
- 如果agent在“1”的位置进入迷宫,会更具Q表格,向下走的Q值最大为0.59,那么agent就会走到“5”的位置
- agent在“5”的位置之后,更具Q表格,向下走的Q值最大为0.66,依然是向下走,那么agent就走到了“9”的位置
- agent在“9”的位置之后,更具Q表格,向右走的Q值最大为0.73,依然是向下走,那么agent就走到了“10”的位置
- agent在“10”的位置之后,更具Q表格,向下走的Q值最大为0.81,依然是向下走,那么agent就走到了“14”的位置
- agent在“14”的位置之后,更具Q表格,向右走的Q值最大为0.9,依然是向下走,那么agent就走到了“15”的位置
- agent在“15”的位置之后,更具Q表格,向右走的Q值最大为1,依然是向下走,那么agent就走到了“16”的位置,到达终点
最后小乌龟的动作蹊径为1–>5–>9–>10–>14–>15–>16
每跑一次,Q表格的值都会有所改变,但是原理不变。
如果想看到更加直观的视觉戳这里
来源:https://blog.csdn.net/weixin_43146317/article/details/111942524
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |