强化学习:自动进行决策并且可以做连续决策,包括agent、状态、行动、奖励四部分,目标是获得最多的累计奖励
- 强化学习的反馈有延时,可能要走很多步才知道某步的选择是好是坏
- 强化学习面对的输入总是在变化,每次做出的行为都会影响下次决策的输入
- 在exploration(尝试不同的)和exploitation(尝试最有效的)之间做权衡
学习方法
基于值函数的学习方法
原理:求解最优策略等价于求解最优的值函数
值函数选取策略更新的方式:
- 贪婪策略:确定性策略,对已知知识的利用
策略:探索+利用,有利于更新Q值
蒙特卡罗方法
原理:通过随机采样的经验平均来估计期望值
一次实验,学习速度慢,效率不高
步骤:
- agent与环境交互后得到交互序列,
策略
- 通过序列计算各时刻的奖励值
- 将奖励累积到值函数中更新
- 根据更新的值函数更新策略
时序差分方法
原理:结合动态规划方法和蒙特卡罗方法,利用贝尔曼方程进行自迭代更新
贝尔曼方程:当前状态的值函数可以通过下一状态的值函数来计算
Q-learning
原理:基于时序差分方法,采用递进方式更新原有Q值,减少估计误差造成的影响,收敛到最优的Q
异策略时序差分:动作策略是策略,目标策略是贪心策略
深度Q网络(DQN)
问题:现实中状态维数很大甚至是连续的,不能遍历所有的情况。
解决:将Q矩阵Q(s,a)更新变为一个函数拟合问题:
- 定义损失函数
- 使用梯度下降法求解