Q-learning理解
建议参看这个链接: Q学习(Q-learning)简单理解,十分形象。
总结:
Q-Learning:通过更新Q表(Q-table)使得智能体在给定状态(given state)下选定最优动作(best action)的算法。
q-learning是一种无监督学习,不断从一个状态转至另一状态进行探索,直到到达目标。我们将agent的每一次探索称为一个 episode。在每一个episode中,agent从任意初始状态到达目标状态,当agent达到目标状态后,一个episode即结束,接着进入另一个episode。
其核心公式
其中s,a表示当前的状态和行为,s,a表示s的下一个状态及行为,学习参数γ为满足
0≤γ<1的常数。
##使用ϵ−greedy策略的Q-learning
Q-learning在训练的时候,ϵ−greedy策略被用来选择动作。机器随机生成一个数,如果这个数超过ϵ, 那么就随机选择一个动作。反之,就选择当前Q值最大的动作,更新Q表。
得到Q表之后,当我们选择动作的时候,都是选择Q值最大的动作。
q 表
q表是q-learning的目标,其中Q值表示的不是状态,还是这个状态下选择的动作。
深度q-learning(dqn/dql)
核心:用神经网络代替q表
解决的问题:状态较多时,q表收敛过慢
思路:将神经网络引入到Q学习中,通过输入状态,直接得到各个动作在该状态下的Q值
深度q网络架构
深度Q神经网络把一系列的状态框架作为输入,这些将被送入到网络中,并输出在该状态下每个可能动作对应的Q值向量,之后,我们选择该向量中最大的Q值来确定我们的最优动作。
深度Q网络模型架构的输入是距离当前时刻最近的连续4帧预处理后的图像,该输入信号经过3哥卷积层和2个全连接层的非线性变换,变换成低维的,抽象的特征表达,并最终在输出层产生每个动作对应的Q值函数。
1:输入层
2:对输入层进行卷积操作
3:对第一隐藏层的输出进行卷积操作
4:对第二隐藏层的输出进行卷积操作
5:第三隐藏层与第四隐藏层的全连接操作
6:第四隐藏层与输出层的全连接操作
深度q网络核心功能
1:目标函数
使用卷积神经网络结合全连接作为动作值函数的逼近器,实现端到端的效果,输入为视频画面,输出为有限数量的动作值函数
2:目标网络
设置目标网络来单独处理TD误差 使得目标值相对稳定
3:经验回放机制
有效解决数据间的相关性和非静态问题,使得网络输入的信息满足独立同分布的条件
参考资料
https://blog.csdn.net/qq_39429669/article/details/117948150
https://blog.csdn.net/qq_43653217/article/details/120039571
https://zhuanlan.zhihu.com/p/611821957
https://blog.csdn.net/jiebaoshayebuhui/article/details/128045201
https://blog.csdn.net/qq_37266917/article/details/109151368