数学和算法

UD机器学习 - C6 强化学习

2019-07-22  本文已影响0人  左心Chris

0 Abstract

先介绍强化学习前沿和背景,再介绍强化学习基本设置和定义,再介绍强化学习通用解决框架和方案,然后根据算法的复杂性,由易到难的介绍强化学习的实际算法,依次为,动态规划,蒙特卡洛方法,TD learning(Q learning),最后DQN。后续增加策略梯度等。

1 Intro

1.1 前沿应用

1.2 设置

agent和训练puppy的例子:小狗通过主人的反馈来训练自己的action。

1.3 OpenAI gym

1.3.1 安装和基本学习

1.3.2 相关资源

教程摘录这本关于强化学习的经典教科书中的章节。
请参阅此 GitHub 代码库以查看该教科书中的大多数图表的 Python 实现。
你还可以在该教科书第一章节之前的页面中找到另一个实用记法指南。

2 强化学习框架:问题

2.1设置回顾

agent environment
reward observation/states action
S0 A0
R1 S1 A1
R2 S2 A2 ...

2.2 阶段性任务与连续性任务

象棋是阶段性任务,每一局是一个阶段,不过是稀疏奖励问题,每个任务都有清晰的结束点 S0 A0 R1 S1 A1 R2 .. Rt St
如股票和金融投资是持续性任务,没有尽头 S0 A0 R1 S1 A1 R2 ....

2.3 奖励假设

2.4 累积奖励和折扣回报

All goals can be framed as the maximization of expected cumulative reward.

2.5 MDP

  1. Action space A = [search recharge wait]
  2. State space S = [high low]


3 强化学习框架:解决方案

3.1 两种策略方案

3.2 state-value function 状态值函数 v_\pi

3.3 贝尔曼期望方程 Bellman Expectation Equation

3.4 最优性

3.5 动作值函数 q_\pi

3.6 最优策略

3.7 贝尔曼方程

4 强化学习框架:动态规划

4.1 计算状态值函数

4.2 把状态值函数变为动作值函数

4.3 策略改进

4.4 策略迭代

5 蒙特卡洛方法

5.1 状态值

5.2 动作值函数

5.3 广义策略迭代

  1. 不能完全采用动态规划的方法,选择最大的动作值函数为当前动作,因为这样会导致部分策略没有被完全探索过


  2. epsilon-greedy policy :
    epsilon决定探索多一点还是利用经验多一点


  3. 背后理论:

5.4 流程图:

6 时间差分方法 TD learning

6.1 TD(0) 状态值函数

6.2 TD预测:动作值

6.3 TD控制:Sarsa(0) 在下一次action更新

6.4 TD控制:Sarsamax(aka Q-Learining) 在下一次state就更新

6.4 TD控制:预期Sarsa 其实就是计算TD Target的时候取期望而不是取最大值

6.5 分析性能


简单来说,就是on-policy用评估和改进的策略取选择动作,off-policy用一套评估和改进,用另一套选择动作
如果你要了解详情,建议阅读该教科书(尤其是第 6.4-6.6 部分)的第 6 章节。

10 深度Q-学习

10.1 神经网络作为值函数

  1. 误差函数

    因为真实的q和v是通过跟环境的交互来不断学习的,这是 reinforcement learning 和 supervised learning 的根本区别

  2. 蒙特卡洛方法
  3. 时间差分学习

    TD(0) for episodic tasks Sara for continuing tasks
  4. Q 学习
  5. 比较 离线策略的优势主要是把采取的动作与学习流程不再相关 我们可以行动的时候用探索性策略,但是学习最佳的状态值或者动作值函数,online performance虽然不好,但是能找到更好的策略;可以观察来学习规律;适合离线更新和batch learning因为不用再每个时间步更新策略

10.2 深度Q网络

10.3 调整技巧

有时候不会收敛到最优值函数,会震荡和发散

10.4 深度Q学习算法

10.4 DQN改进

上一篇 下一篇

猜你喜欢

热点阅读