这里举几个RL的应用场景(当然有更多的)

1 RL & 调参(神经网络结构性参数)

假设我们搭建 20 个 卷积层,每个层有 3 个超参数,那么一共有 60 个超参数。
如果用grid search的话,计算量过大

1.1 策略网络

[1611.01578] Neural Architecture Search with Reinforcement Learning (arxiv.org)(ICLR 2017)设计一种强化学习方法,用于学习神经网络结构。(神经网络结构性参数调参)
策略网络是一个循环神经网络 (RNN)
输入向量 xt 是对上一个超参数a_{t-1} Embedding 得到的。[向量 x0 是例外;x0 是用一种特殊的方法随机生成的。]
循环层的向量 ht 可以看做从序列 [x1,· · ·, xt] 中提取的特征
可以把s_t=[x_t;h_{t-1}]看做第 t 个状态。
策略网 络的输出向量 ft 是一个概率分布。根据 ft 做随机抽样,得到动作 at,即第 t 个超参数。

对我们这20个卷积层 ,依次生成每一层的卷积核数量、卷积核大小、步长大小。

在 RNN 运 行 60 步之后,得到 60 个超参数,也就确定了 20 个卷积层的结构。

1.1.1 训练策略网络

为了训练策略网络,我们需要定义奖励r_t

在前 59 步,奖励全都是零:r_1=\cdots=r_{59}=0
在第 60 步之后,得到了全部的超参数,确定了神经网络结构。然后搭建神经网络,在训练集上学习神经网络参数,直到梯度算法收敛。
在验证集上评价神经网络,得到验证准确率,作为奖励r_{60}
由回报的定义u_t=r_1+\cdots+r_t有:

然后可以用REINFORCE算法更新策略网络参数θ

强化学习笔记:policy learning_UQI-LIUWJ的博客-CSDN博客

1.2 一定要用强化学习吗?

为什么一定要用强化学习方法来训练 RNN 策略网络?是不是因为强化学习比传统监督学习更有优势?
答案恰恰相反,强化学习并不好,只是此处不得不用而已。
如果想要做传统的监督学习,那么奖励或损失必须关于 RNN 策略网络参数 θ 可微;本节介绍的方法显然不符合这个条件,所以不能用监督学习训练 RNN 策略 网络。
强化学习的奖励可以是任意的,无需关于 θ 可微,因此在这里适用。
应用强化学习的代价是需要大量的训练样本,至少上万个奖励,即从初始化开始训练几万个 CNN才可能收敛
这种强化学习 自动调参方法的计算量非常大
在这种强化学习方法提出之后,很快就有更好的方法出现(DARTS),无需使用强化学习。

2 RL+SQL 生成

SQL用于管理关系数据库。它支持数据插入、查询、更新、删除。
将人的语言转化成 SQL 是自然语言处理领域的一个 重要问题。解决这个问题的方法类似于机器翻译,即用 Transformer 等 Seq2Seq 模型将一句自然语言翻译成 SQL 语言

2.1 监督学习的局限性

该如何训练图 19.5 这样的 Seq2Seq 机器翻译模型呢?
最简单的方式就是用监督学习。 事先准备一个数据集,由人工将自然语言逐一翻译成 SQL 语句。训练的目标是鼓励解码器输出的 SQL 语句接近人工标注的 SQL 语句。把解码器的输出、人工标注的 SQL 两者的区别作为损失函数,通过最小化损失函数的方式训练模型。
这种单词匹配的训练方式是可行的,然而其存在一些局限性
与标准机器翻译问题相比,SQL 语句的生成有其特殊性。如果是将一句汉语译作英语,那么个别单词的翻译错误、顺序错误不太影响人类对翻译结果的理解。对于汉语翻译英语,可以把单词的匹配作为评价机器翻译质量的标准。
但是这种评价标准不适用于SQL 语句。
  • 即便两个 SQL 语句高度相似,它们在数据库中执行得到的结果可能完全不同。即便是一个字符的错误,也可能导致生成的 SQL 语法错误,无法执行。
  • 哪怕两个 SQL 语句看似区别很大,它们的作用是完全相同的,它们在数据库中执行得到的结果是相同的。
  • SQL 的写法会影响执行的效率,而从 SQL 语句的字面上难以看出它的效率。只有真正在数据库中执行,才知道 SQL 语句究竟花了多长时间。
以上论点说明不该用单词的匹配来衡量生成 SQL 语句的质量,而应该看 SQL 语言实际执行的结果是否符合预期

2.2 RL+SQL生成

https://faculty.cc.gatech.edu/~jarulraj/courses/8803-f18/papers/seq2sql.pdf

提出一种强化学习的方法训练 Seq2Seq 模型,如图 19.6 所示。
可以把 Seq2Seq 模型看做策略网络,把输入的自然语言看做状态,把生成的 SQL 看做动作。他们这样定义奖励:
有了奖励,可以用任意的策略学习算法。强化学习笔记:policy learning_UQI-LIUWJ的博客-CSDN博客

3 网约车调度

3.0 引子:两个具体的例子

对于图 19.8 中的例子,假如不考虑目的地的热门程度(即附近接单的容易程度),则应该给司机派发上面蓝色目的地的订单,这样可以让司机在较短的时间内取得更高的收入。

但是这样其实不利于司机的总收入:在司机到达冷门地点之后,需要等待较长的时间才会有新的订单。

假如给司机派发下面热门目的地的订单,司机在完成这笔订单后,立刻就能接到下一笔订单;这样虽然单笔收入低,但是总收入高。

对于图 19.9 中的例子,很显然应该把订单派送给冷门地点的司机更合适。
热门地点的司机得不到这笔订单几乎没有损失,因为在很短的时间之后就会有新的订单。
而这笔订单对冷门地点的司机比较重要,如果没有这笔订单,司机还需要空等很久才有下一笔订单。

3.1 价值学习

把司机每一笔订单的收入作为奖励,把折扣回 报的期望作为状态价值函数V_\pi(s,w),其中s=(地点,时间)是状态,π 是派单的策略。
V_\pi(s,w)可以衡量一个地点在具体某个时间的热门程度。比如在早高峰,车流从居民区开往商业区,导致商业区是冷门地点,附近空车多,订单少。而到了晚高峰,商业区是热门地点,此时下班回家的需求大,订单数量多。

3.2 订单派单机制

在学到状态价值函数V_\pi(s,w)之后,可以用它来预估任意地点、时间的网约车的价值,并利用这一信息来给网约车派发订单。

主要想法是用负的 TD 误差来评价一个订单给一个网约车带来的额外收益

在同一时刻,某区域内有 m 笔订单,有 n 个空车,那么计算所有(订单,空车)二元组的 TD 误差,得到一个 m × n 的矩阵。用二部图 (Bipartite Graph) 匹配算法,找订单—空车的最大匹配,完成订单派发。

简单起见,此处设折扣率 γ = 1,那么TD 目标等于:

可以这样理解 TD 目标:

  • 假设给该空车派发该订单,那么该笔订单的价值 r = 40 加上未 来的状态价值,一共等于520.
  • 但是司机接这笔订单是有机会成本的;假如不接这笔订单,马上就会有别的订单,可能会获得更高的 TD 目标。这里机会成本是500
  • TD 目标减去机会成本,即负的 TD 目标
  • ——>这意味着接这笔订单,司机的收入高于期望收入 20 元。

举个例子,在某个区域,当前有 3 笔订单, 有 4 辆空车。计算每个(订单,空车)二元组的 TD 误差,得到图 19.11 中大小为 3 × 4 矩阵。

有了上面的矩阵,可以调用二部图匹配算法(比如匈牙利算法)来匹配订单和空车。 图 19.12() 是最大匹配,三条边的权重之和等于 31。图 19.12() 也是一种匹配方式,但是三条边的权重之和只有 30,说明它不是最大匹配,因此不会这样派发订单。

强化学习笔记: 应用举例相关推荐

  1. 强化学习笔记:Q_learning (Q-table)示例举例

    1 示例介绍 在右侧有宝藏,探险者到达宝藏所在的位置,就可以获得奖励 比如某一时刻的状态是这个样子的:"-o---T" T 就是宝藏的位置, o 是探索者的位置 如果在某个地点 s ...

  2. python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)

    [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...

  3. 142页ICML会议强化学习笔记整理,值得细读

    作者 | David Abel 编辑 | DeepRL 来源 | 深度强化学习实验室(ID: Deep-RL) ICML 是 International Conference on Machine L ...

  4. 强化学习笔记 DDPG (Deep Deterministic Policy Gradient)

    1 总述 总体来讲,和actor-critic 差不多,只不过这里用了target network 和experience relay 强化学习笔记 experience replay 经验回放_UQ ...

  5. 强化学习笔记:Actor-critic

    0 复习 由于actor-critic 是 policy gradient 和DQN的一个结合,所以我们先对这两个进行一个简单的复习: 0.1 policy gradient 强化学习笔记:Polic ...

  6. 强化学习笔记:PPO 【近端策略优化(Proximal Policy Optimization)】

    1 前言 我们回顾一下policy network: 强化学习笔记:Policy-based Approach_UQI-LIUWJ的博客-CSDN博客 它先去跟环境互动,搜集很多的 路径τ.根据它搜集 ...

  7. 强化学习笔记:Sarsa算法

    1 Sarsa(0) Sarsa算法和TD类似,只不过TD是更新状态的奖励函数V,这里是更新Q函数强化学习笔记:Q-learning :temporal difference 方法_UQI-LIUWJ ...

  8. 强化学习笔记: generalized policy iteration with MC

    强化学习笔记: MDP - Policy iteration_UQI-LIUWJ的博客-CSDN博客 强化学习笔记:Q-learning_UQI-LIUWJ的博客-CSDN博客 在policy ite ...

  9. 强化学习笔记:Q-learning :temporal difference 方法

    强化学习笔记:马尔可夫过程 &马尔可夫奖励过程_UQI-LIUWJ的博客-CSDN博客 和MC方法(强化学习笔记:Q-learning_UQI-LIUWJ的博客-CSDN博客)类似,时分TD方 ...

最新文章

  1. python连接数据库,处理数据结果后生成excel文件
  2. python程序员工作怎样-python程序员怎样在面试过程中展现自己的基本功
  3. PXE高效批量安装和Kickstart无人值守安装——真正完成批量自动安装
  4. Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
  5. 常见web前台技术之间的关系html,css,javascript...
  6. django 1.8 官方文档翻译: 3-3-5 编写自定义存储系统
  7. Spring Boot 第一个程序
  8. Codeforces Round #249 (Div. 2) A. Queue on Bus Stop
  9. 重试次数配置_Stelnet(ssh)登陆华为交换机配置教程
  10. Java笔记之入门(一)
  11. Java设计模式——模板方法模式(模板方法设计模式)详解
  12. 服务器 python cant open file_QQ炫舞转服系统-QQ炫舞官方网站-腾讯游戏
  13. PyCharm 下载安装及配置使用详细图文教程
  14. 再次领先全国,第一只波士顿机器狗落户上海,等你来撸
  15. 软件硕士和计算机硕士,详解软件工程硕士和计算机硕士区别
  16. 2014中国高中排行榜发布 华中师大一附中居首
  17. 于typedef的用法总结
  18. BlueTooth: 什么是蓝牙(Bluetooth)
  19. 整理在翻译与校对Spring 2.0 Reference时使用DocBook时的技巧与注意点
  20. 大学生游戏静态HTML网页设计 (HTML+CSS+JS仿英雄联盟网站15页)

热门文章

  1. C# WinForm 工作流设计 工作流程图拖拽设计 +GDI 绘制工作流程图
  2. 论人工智能历史、现状与未来发展战略
  3. vue - vue简单实现移动端的table表格
  4. synplify pro和lattice lse综合同一段verilog代码时的区别
  5. 统计字符串中每个字符的个数。(原始字符串是:“aabccdeefff”,结果是:a2 b1 c2 d1 e2 f3)
  6. pvq真值表_真值表等数理逻辑方法的判定功能
  7. 使用HBuilder将H5的项目打包成手机可安装的webapp程序(.apk)
  8. CSDN的C1考试,质数问题,一不小心就错失得分
  9. 什么场景要对象克隆?
  10. 怎么才能在Mac电脑提醒事项添加提醒事项