
机器学习
@开水白菜
Java ,C/C Plus Plus,Python , 算法,深度学习,自动驾驶(规控),控制,电机
(部分转载内容仅作为学习笔记与补充完善,文末附有原链接,如有侵权,联系便删)
展开
-
强化学习 之 Q-Learning与SARSA
import matplotlib.pyplot as pltimport randomimport time#定义一个类,对格子宽高和智能体的初始位置进行定义class Env(): def __init__(self, length, height): # define the height and length of the map self.length = length self.height = height ...原创 2021-03-15 20:46:05 · 360 阅读 · 0 评论 -
强化学习 之 多步自助法
蒙特卡洛方法和时间差分法的区别在于向后看的步数不同:MC方法相当于向后看无穷步,TD方法相当于向后看一步。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。如果大家喜欢这篇文章的话,希望大家收藏、转发、关注、评论、点赞,转载请注明出自这里。 PS:本随笔属个人学习小结,文中内容有参考互联网上的相关文章。如果您博文的链接被我引用,我承诺不会参杂经济利益;如果有版权纠纷,请私信留言。其中如果发现文中有不正确的认知或遗漏的地方请评论告知,谢谢! 还是那原创 2021-03-03 23:28:12 · 379 阅读 · 1 评论 -
强化学习 之 SARSA (State-Action-Reward-State’-Action’)
(1)SARSA算法通常使用ϵ-贪心策略进行策略评估和改进在线策略时序差分控制(on-policy TD control)使用当前策略进行动作采样,即,SARSA算法中的两个“A”都是由当前策略选择的(2)SARSA得到的长期回报方差比蒙特卡洛法小蒙特卡洛法估计价值的时候使用完整序列,TD使用下个时刻,所以当系统没有达到最优的时候,TD会有固有偏差,但是不太大。蒙特卡洛和SARSA象征两个极端:一个追求极小误差而使得方差变大,一个为了缩小方差而使得误差变大。(3)算法介绍对于当前策略执行获得的每.原创 2020-10-09 11:03:39 · 1057 阅读 · 0 评论 -
强化学习 之 时序差分学习
(1)时序差分学习结合了动态规划与蒙特卡洛方法的思想动态规划是这样迭代的,需要了解环境的dynamic才能求均值:蒙特卡洛是这样增量式迭代的,只需要经验片段就可以:而TD是这样迭代的:(2)TD算法的V(S)的具体估计方法 :直接用经验片段来估计。最开始对每一个状态的价值V进行初始化(可以是随机初始化)。随后在环境中交互,每一次和环境交互得到的四元组都可以用这个式子来更新之前对当前状态的估计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。.原创 2020-10-08 22:42:55 · 208 阅读 · 0 评论 -
强化学习 之重要性采样
重要性用于离线蒙特卡洛的不足:(1)使用重要性采样时会用什么方法避免pi非零而mu为零的问题?一般使用一些平滑算法,例如拉普拉斯一类的平滑这里beta是平滑的超参数。还有一种就是clip,也就是ratio如果绝对值超过了某个阈值a,那就设置成这个a值(符号不变)。这些方法其实都是损失了一点点bias,来换来bias的巨大下降。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。如果大家喜欢这篇文章的话,希望大家收藏、转发、关注、评...原创 2020-09-30 23:18:33 · 1395 阅读 · 1 评论 -
强化学习 之 模型无关控制方法
(1)如何理解强化学习中的控制和预测这两个名词?在强化学习中我们经常会遇到预测(prediction)和控制(control)这两个词。预测问题指的是求解在给定策略(policy)下的价值函数(value function)的过程;而控制问题指的是如何获得一个尽量好的策略来最大化累计奖励(accumulated return)。因此,强化学习的过程常常是在解决预测问题的基础上,进而解决控制问题。举迷宫的例子如下:预测问题:已知这样一个迷宫游戏,走出迷宫之前每一步的奖励都是-1,那么在“不管位置..原创 2020-09-30 21:29:15 · 446 阅读 · 0 评论 -
强化学习 之 蒙特卡洛价值预测
(1)蒙特卡洛增量更新推导(2)为什么蒙特卡洛算法只能用于可分片段的马尔可夫决策过程?“可分片段"的含义是该马尔可夫决策过程长度有限,这样才能计算”总折扣奖励“,在实际操作中,如果遇到非常长的马尔可夫链或者无限马尔可夫链,会考虑”时序差分学习“。(3)蒙特卡洛特性蒙特卡洛方法:直接从经验片段进行学习。蒙特卡洛是模型无关的:未知马尔科夫决策过程的状态转移/奖励。蒙特卡洛从完整的片段中进行学习:没有使用基于碎片的自举法。蒙特卡洛策略评估使用经验平均累计奖励而不是期望累计奖励。(4)蒙特卡洛算..原创 2020-09-30 16:39:02 · 903 阅读 · 0 评论 -
强化学习 之 蒙特卡洛方法
(1)蒙特卡洛方法是一类广泛的计算方法,依赖于重复随机抽样来获得数值结果。即基于大数定理的一种数学方法。(2)用蒙特卡洛方法的时候如果sample出的状态出现循环,导致永远无法停止该怎么处理?可以根据具体任务和环境检测重复出现的状态进行”剪枝“等处理。(3)蒙特卡洛方法适用环境?在强化学习问题中,我们可以用马尔可夫决策过程(MDP)和相关算法找出最优行动值函数,它通过策略迭代和值迭代找出最佳策略。这是个好方法,可以解决强化学习中随机动态系统中的许多问题,但它还有很多限制。比如,现实世界中是否真..原创 2020-09-30 16:05:27 · 922 阅读 · 0 评论 -
基于模型的强化学习
(1)在model-based RL里,虽然学习MDP模型可以提高强化学习的效率,但是如果模型误差较大可能导致学不到较好的策略,这个问题一般怎么解决?如果模型学习的不够精准,那就只能用很短很短的rollout来做planning。例如Q-planning就是1步的rollout,这样并不能特别高的提升sample efficiency。如果模型比较准,那就可以用Model-based Policy Optimization (MBPO)这种方法去做一定长度(k-step)的rollout,这样能进一..原创 2020-09-30 15:49:19 · 1994 阅读 · 0 评论 -
基于动态规划的强化学习
(1)价值迭代的同步更新和异步更新在收敛速度和效果上有什么区别?异步更新的收敛一般收敛得快一些。但是如果没有达到收敛,异步更新得到的部分状态的价值可能和ground truth差距较大,不敢直接用来构建policy。原因是异步更新可能使得部分状态更新得不如别的状态快。(2)在价值迭代中,因为gamma这个01之间衰减率的存在,算法可以收敛。那么在策略迭代中,有没有方法证明其一定可以收敛?有的。在David Silver的DRL课程的Lecture 3中最后有提到,可以利用压缩映射定理(Contra..原创 2020-09-29 23:42:32 · 315 阅读 · 0 评论 -
强化学习 之 探索与利用
一、概念Exploitation 执行能够获得最优收益的策略Exploration 尝试更多可能的策略,不一定会是最优收益 可能发现更好的策略二、策略探索的原则朴素方法 贪心策略和 ϵ-greedy 衰减贪心策略 ϵ随时间衰减积极初始化 给Q(a^i)一个较高的初始化值基于不确定性的度量 显示地考虑动作的价值分布 UCB:上置信界概率匹配 Thompson Sampling 根据每个动作成为最优的概率来选择动作状态搜索 像AlphaGo,基于整个透明的可搜索可.原创 2020-09-29 22:45:07 · 1355 阅读 · 0 评论 -
强化学习 之 简介
(1)观察可以理解为状态的子集State是整个环境的表达,Observation是智能体所见。比如在游戏中,地图上的某些部分对玩家来说是不可见的,那整个地图是“状态“,玩家可见的部分是“观察“。(2)基于价值函数的强化学习和基于策略函数的强化学习在使用时的各有何优缺点?应该如何选择?强化学习里面一直以来就是value based和policy based两路方法,它们各有优劣。Value based 方法强调让机器知道什么state或者state-action pair是好的,什么是坏的。例如Q-..原创 2020-09-29 16:12:32 · 565 阅读 · 0 评论 -
强化学习 之 马尔科夫决策过程
(1)当某些现实场景不适用于马尔可夫性质时,基于MDP假设的强化学习用什么方法解决?如果一些场景的‘状态’或者‘观测’不具备马尔可夫性质,那就再其基础上再抽象出一个latent variable使之具备马尔可夫性质。其实MDP里面的‘状态’就是在‘观测’基础上抽象出来的具有马尔可夫性质的latent variable。如果大家喜欢这篇文章的话,希望大家收藏、转发、关注、评论、点赞,转载请注明出自这里。 PS:本随笔属个人学习小结,文中内容有参考互联网上的相关文章。如果您博文的链接被我引用,我承诺不会..原创 2020-09-29 23:01:51 · 359 阅读 · 0 评论