
强化学习
文章平均质量分 62
hhy_csdn
理论是灰色的,而实践之树常青。
展开
-
强化学习系列文章(三十一):更好用的PPO算法
强化学习PPO算法优质学习代码原创 2022-06-15 03:58:26 · 1548 阅读 · 2 评论 -
强化学习系列文章(三十):训练利器Gym Wrapper
强化学习系列文章(三十):训练利器Gym Wrapper在训练LunarLander环境的智能体算法时,学习到CleanRL的PPO代码,是我目前测试过训练速度最快的PPO版本。我认为主要贡献之一是采用了成熟的gym.wrapper技术,现总结这项技术的学习笔记。wrapper介绍主要分3类wrapper,分别是action,observation,reward。分别继承ActionWrapper、ObservationWrapper、RewardWrapper三个类,可以设计编写定制化的封装对象。原创 2022-05-16 17:57:25 · 4491 阅读 · 0 评论 -
强化学习系列文章(二十九):使用Ray框架加速进化算法的训练
强化学习系列文章(二十九):使用Ray框架加速进化算法的训练接第二十八篇笔记,在处理大规模问题时,一方面计算每个个体的fitness value需要很大算力,相应耽误较多时间,另一方面大规模种群的优化计算也是耗时费力的。万幸有人帮我们开发了Python并行加速框架Ray,入门简单,省时省力,提速明显。Ray框架的介绍在下面的链接。Modern Parallel and Distributed Python: A Quick Tutorial on RayRay安装pip install pytes原创 2022-05-11 21:30:25 · 1630 阅读 · 0 评论 -
强化学习系列文章(二十八):进化强化学习EvoRL的预实验
强化学习系列文章(二十八):进化强化学习EvoRL的预实验最近在研究强化学习解决离散空间的组合优化问题时,接触到了很多进化算法,实际体验也是与RL算法不相上下。进化算法也常用于优化神经网络的参数,CMA-ES算法是进化算法中的佼佼者,被World Model等工作采用,对于数百到数千参数规模的优化问题比较擅长。我会陆续把进化强化学习的实验例程整理出来,请批评指正。首先安装cmapip install cmacma对象的初始化x0是初始解,又称起始点。sigma0是初始标准差,控制了初始种群与初原创 2022-05-10 18:13:03 · 1059 阅读 · 2 评论 -
强化学习系列文章(二十七):VPG+Beta分布在CartPoleContinuous环境中的应用
强化学习系列文章(二十七):VPG+Beta分布在CartPoleContinuous环境中的应用在第七篇笔记(https://blog.youkuaiyun.com/hhy_csdn/article/details/106435472?spm=1001.2014.3001.5501)中,实现了Vanilla Policy Gradient算法建模action的高斯分布的情况,用以实现连续动作空间任务的控制。但是高斯分布定义的action有时不能适应全部情况,例如action space有明确取值区间,高斯采样超出原创 2022-04-15 16:14:37 · 1048 阅读 · 2 评论 -
强化学习系列文章(二十六):向量化环境Vectorized Environments
强化学习系列文章(二十六):向量化环境Vectorized EnvironmentsOpenAI Gym最近公布了官方API手册,可以趁机学习一下环境运行的并行化技术。https://www.gymlibrary.ml/pages/vector_api/indexVectorized Environments所谓“矢量化环境”,是运行多个(独立)子环境的环境,可以按顺序运行,也可以使用多处理并行运行。矢量化环境将一批action作为输入,并返回一批observation。例如,当策略被定义为对一批o原创 2022-02-22 16:19:50 · 4338 阅读 · 1 评论 -
强化学习系列文章(二十五):利用遗传规划算法解决CartPole问题
强化学习系列文章(二十五):利用遗传规划算法解决CartPole问题主程序import gymimport numpy as npimport cgpfrom cgp import *import matplotlib.pyplot as pltn_eps = 300Mu = 10Lambda = 40env = gym.make('CartPole-v1')env = env.unwrappedr_list = []pop = create_population(Mu+La原创 2022-02-22 00:50:16 · 736 阅读 · 1 评论 -
强化学习系列文章(二十四):利用AirSim搭建Gym强化学习环境(一)
最近研究AirSim仿真平台主要是为了进行强化学习的相关实验,所以利用AirSim提供的Python API搭建一个OpenAI Gym风格的强化学习环境才是我的最终目的。AirSim提供了一个Gym强化学习模板,我们先研究一下这个文件。相关文件都在https://github.com/microsoft/AirSim/tree/master/PythonClient/reinforcement_learning。import setup_pathimport airsimimport numpy原创 2021-01-03 16:50:40 · 4627 阅读 · 1 评论 -
强化学习系列文章(二十三):AirSim Python API图像与图像处理
强化学习系列文章(二十三):AirSim Python API图像与图像处理1.simGetImage函数使用0号相机得到单张图像。返回值是PNG格式的图像。import airsim #pip install airsim# for car use CarClient() client = airsim.MultirotorClient()png_image = client.simGetImage("0", airsim.ImageType.Scene)# do something w原创 2021-01-02 21:31:59 · 5326 阅读 · 6 评论 -
强化学习系列文章(二十二):AirSim自动驾驶仿真平台及其Python API分析
@[TOC](强化学习系列文章(二十二):AirSim自动驾驶仿真平台及其Python API分析)AirSim自动驾驶仿真平台及其Python API分析最近在做强化学习与自动驾驶的结合,于是接触到AirSim——微软开发的自动驾驶仿真平台,个人觉得做得非常不错,是我目前见过的最棒的自动驾驶仿真环境。原因如下:AirSim是一个持续更新的开源项目,现在还在开发迭代中,所以功能在不断完善,出了Bug也有人去维护,相比之下TORCS虽然也很不错,但是最近3年没有看到TORCS的更新了,一方面对现在的操原创 2021-01-01 17:40:04 · 4562 阅读 · 1 评论 -
强化学习经典算法笔记(二十一):gym-super-mario-bros游戏环境笔记
gym-super-mario-bros游戏环境笔记gym-super-mario-bros游戏环境笔记简介安装DemoGym demo命令行demo环境单独关卡随机选择关卡奖励函数info内容解读gym-super-mario-bros游戏环境笔记最近在学习Intrinsic Reward Model相关的paper,super-mario-bros可以说是算法性能测试的标配游戏环境了,可惜之前太多关注点都放在Atari上,特此开一篇笔记记录一下内容,以备后查。简介项目地址https://pyp原创 2020-10-30 21:13:59 · 8367 阅读 · 5 评论 -
强化学习经典算法笔记(二十):交叉熵方法Cross Entropy Method
强化学习经典算法笔记(二十):交叉熵方法Cross Entropy Method本次补上一个经典RL算法笔记。感谢 https://the0demiurge.blogspot.com/2017/08/cross-entropy-method-cem.html感谢 https://en.wikipedia.org/wiki/Cross-entropy_methodCEM基本概念:交叉熵方法是一种蒙特卡洛方法,主要用来优化和重要性采样。和进化算法类似,进化算法在空间中按照某种规则撒点,获得每个点的误转载 2020-08-14 00:49:16 · 4386 阅读 · 0 评论 -
强化学习经典算法笔记(十九):无监督策略学习算法Diversity Is All You Need
强化学习经典算法笔记19:无监督策略学习算法Diversity Is All You NeedDIAYN核心要点模型定义目标函数的构造DIAYN算法细节目标函数的优化SAC的训练判别器的训练DIAYN的应用论文的其他细节本篇介绍一个无监督框架下的策略学习算法DIAYN,全称是Diversity Is All You Need。本文是在学习了张楚珩前辈的【强化学习 77】DIAYN和知乎ID黑猫紧张的PN-23: Diversity is All Your Need (arXiv 1802)之后写成的,向他原创 2020-07-22 17:44:52 · 2060 阅读 · 1 评论 -
强化学习经典算法笔记(十八):离散动作空间REINFORCE算法
强化学习经典算法笔记(十八):离散动作空间REINFORCE算法在文章强化学习经典算法笔记(七):策略梯度算法Policy Gradient中介绍了连续动作空间的Policy Gradient算法,最近需要用到离散空间的版本,遂写了个CartPole-v1上的PG代码。相比于原来的PG,改动主要在select_action函数和update_parameters函数。在原来的版本中,由于动作是一个二维连续向量,所以动作的对数概率也是一个二维向量,动作熵也是二维向量,而CartPole环境就要做一定修改。原创 2020-07-13 17:28:39 · 4041 阅读 · 0 评论 -
强化学习经典算法笔记(十七):A3C算法的PyTorch实现
强化学习经典算法笔记(十七):A3C算法的PyTorch实现发现前面没有介绍Asynchronous Advantage Actor-Critic,A3C算法的文章,在这里补上这一篇。A3C算法简介A3C算法是非常有名且经典的Policy Gradient算法,是A2C算法的并行版本。使用多线程运行多个actor,分别与若干个环境进行交互,收集经验,更新参数,并将更新的参数梯度汇合到主线程的Agent上去。A3C最初版本是多线程CPU的,后来又出了GPU版本。这里实现的是多线程CPU版。GPU版本的原创 2020-07-11 13:11:57 · 10506 阅读 · 5 评论 -
强化学习经典算法笔记(十六):Policy Gradient算法家族
强化学习经典算法笔记(十六):Policy Gradient算法家族在学习Soft Actor-Critic,SAC算法时,发现了一篇非常好的文章,比较全面地介绍了策略梯度算法家族。文章的作者是在OpenAI工作的Lilian Weng小姐姐,佩服至极!!文章链接:Policy Gradient Algorithms为了系统地学习一下,我决定翻译一下,尽管已经有了中文版。先占个坑。...原创 2020-07-09 22:34:17 · 585 阅读 · 0 评论 -
强化学习经典算法笔记(十五):Soft Actor-Critic算法实现
强化学习经典算法笔记(十五):Soft Actor-Critic算法实现算法简介Soft Actor Critic,SAC算法是一种Off-policy算法,相比于PPO这种On-policy算法,sample efficiency有了提高,相比于DDPG及其变种D4PG,SAC又是一种随机策略算法。SAC算法是在最大熵强化学习(Maximum Entropy Reinforcement Learning)的框架下构建起来的,目的是让策略随机化,好处是对于机器人控制问题非常友好,甚至可以在真实环境中使原创 2020-07-09 17:16:41 · 6986 阅读 · 8 评论 -
强化学习经典算法笔记(十四):双延迟深度确定性策略梯度算法TD3的PyTorch实现
强化学习经典算法笔记(十四):双延迟深度确定性策略梯度算法TD3的PyTorch实现TD3算法简介TD3是Twin Delayed Deep Deterministic policy gradient algorithm的简称,双延迟深度确定性策略梯度。从名字看出,TD3算法是DDPG的改进版本。TD3相对于DDPG,主要采用了以下重要改进。Double networkCritic学习改进Actor学习改进target policy smoothing regularization算法流原创 2020-07-02 20:25:21 · 5157 阅读 · 0 评论 -
强化学习经典算法笔记(十三):深度确定性策略梯度算法DDPG的pytorch实现
强化学习经典算法笔记(十三):深度确定性策略梯度算法DDPG的pytorch实现一、DDPG算法的要点DDPG适用于连续动作空间的控制任务DDPG解决了DQN难以对连续动作估计Q值的问题确定性策略是指:在某个状态sts_tst所采取的动作是确定的。由此带来了Bellman方程的改变。由Qπ(st,at)=Est+1∼E,at∼π[r(st,at)+γEπ[Qπ(st+1,at+1)]]Q^{\pi}(s_t,a_t)=E_{s_{t+1}\sim E,a_t \sim \pi}[r(s_t,原创 2020-07-01 18:57:56 · 3182 阅读 · 1 评论 -
强化学习经典算法笔记(十二):近端策略优化算法(PPO)实现,基于A2C(下)
强化学习经典算法笔记(十二):近端策略优化算法(PPO)实现,基于A2C本篇实现一个基于A2C框架的PPO算法,应用于连续动作空间任务。import torchimport torch.nn as nnfrom torch.distributions import MultivariateNormalimport gymimport numpy as npdevice = torch.device("cuda:0" if torch.cuda.is_available() else "cpu原创 2020-06-30 16:30:29 · 3894 阅读 · 5 评论 -
强化学习经典算法笔记(十一):近端策略优化算法(PPO)实现,基于A2C(上)
强化学习经典算法笔记(十一):近端策略优化算法(PPO)实现,基于A2CPPO算法是一种On-policy算法,可以被用于连续空间任务和离散空间任务。在OpenAI发表的PPO原始论文中,关于新旧策略的相似程度,有两种处理办法,一个是Penalty,一个是Clip。Penalty是将新旧策略的KL散度作为一个罚项加入到目标函数中,避免了TRPO中的那种硬性约束。Clip是将新旧策略做比值,将这一比值限制在一定范围,如[0.8,1.2][0.8,1.2][0.8,1.2]。论文实验和实际使用经验都表明PP原创 2020-06-30 11:45:03 · 6015 阅读 · 3 评论 -
强化学习经典算法笔记(十):使用粒子群算法训练Policy智能体
强化学习经典算法笔记(十):使用粒子群算法训练Policy智能体本文使用粒子群算法训练了一个小型Actor网络,共226个参数,完美解决了CartPole游戏。粒子群算法实现群体智能算法采用最简单的粒子群优化算法(PSO)。Python实现如下:class PSO(object): def __init__(self, population_size, max_steps, dim=2, x_bound=[-10,10]): self.w = 0.6原创 2020-06-16 10:52:42 · 3220 阅读 · 5 评论 -
强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法
强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法在上文《强化学习经典算法笔记(八):LSTM加持的A2C算法解决POMDP问题》的基础上,实现了LSTM+MLP的Policy Gradient算法。实现过程如下:import argparse, math, os, sysimport numpy as npimport gymfrom gym import wrappersimport matplotlib.pyplot as pltimport torchfr原创 2020-06-08 21:38:23 · 5401 阅读 · 1 评论 -
强化学习经典算法笔记(八):LSTM加持的A2C算法解决POMDP问题
强化学习经典算法笔记(八):LSTM加持的A2C算法解决POMDP问题最近用到LSTM构建Agent,找到了一个非常简明易读的示例代码。https://github.com/HaiyinPiao/pytorch-a2clstm-DRQN环境采用CartPole-v1。原本状态是一个4维向量,现删去第二维,即小车的速度,保留小车的位移,杆的角度和角速度,使问题从MDP问题变为POMDP(Partial Observable Markov Decision Process)问题。代码如下:导入必要pa原创 2020-06-04 23:54:16 · 6728 阅读 · 0 评论 -
强化学习经典算法笔记(七):策略梯度算法Policy Gradient
目录策略梯度Policy Gradient原理与公式推导代码策略梯度Policy Gradient本文介绍策略梯度算法Policy Gradient在连续动作空间上的实例。以OpenAI Gym上的LunarLanderContinuous-v2游戏环境为例。原理与公式推导略,先挖坑代码import argparse, math, os, sysimport numpy as npimport gymfrom gym import wrappersimport torchfrom原创 2020-05-30 00:24:36 · 2388 阅读 · 2 评论 -
强化学习经典算法笔记(五):时间差分算法Temporal Difference(SARSA算法)
强化学习经典算法笔记——SARSA算法强化学习经典算法笔记(零):贝尔曼方程的推导强化学习经典算法笔记(一):价值迭代算法Value Iteration强化学习经典算法笔记(二):策略迭代算法Policy Iteration强化学习经典算法笔记(三):蒙特卡罗方法Monte Calo Method强化学习经典算法笔记(四):时间差分算法Temporal Difference(Q-Lear...原创 2019-04-11 18:08:00 · 1880 阅读 · 1 评论 -
强化学习经典算法笔记(四):时间差分算法Temporal Difference(Q-Learning算法)
强化学习经典算法笔记——时间差分算法强化学习经典算法笔记(零):贝尔曼方程的推导强化学习经典算法笔记(一):价值迭代算法Value Iteration强化学习经典算法笔记(二):策略迭代算法Policy Iteration强化学习经典算法笔记(三):蒙特卡罗方法Monte Calo Method 上一篇讲的是比较经典的model-free的算法——蒙特卡罗算法。这一篇讲另一个很经典的无...原创 2019-04-11 15:13:16 · 5078 阅读 · 0 评论 -
循环世界模型(Recurrent World Models)——真实世界建模的强化学习利器
世界模型智能体可以在它们头脑中的世界进行学习吗? 世界模型(World Model)是NIPS 2018获得口头报告的论文之一,也是谷歌AI和Deepmind 2019年力作深度规划网络 PlaNet的主要参考文献之一。这篇博文是对World Model论文的翻译和学习笔记。原文地址 https://arxiv.org/abs/1803.10122摘要 我们探索建立通用强化学习环境的生...原创 2019-03-08 22:32:43 · 13732 阅读 · 5 评论 -
AlphaGo Zero是如何工作的?——AlphaGo Zero背后的强化学习算法原理
Deepmind公司的AlphaGo算法是第一个打败人类选手的围棋程序。2016年三月,打败李世石的是AlphaGo Lee,一个靠大量人类围棋专家的棋谱进行监督学习和自对弈强化学习进行训练的AI程序。不久之后,deepmind的新论文展示了不同于之前AlphaGo的全新网络结构——它仅仅用了三天的自对弈强化学习而无需人类的下棋经验就以100-0的战绩打败了AlphaGo。它就是大名鼎鼎的Al...原创 2019-02-17 14:21:59 · 3168 阅读 · 2 评论 -
一张图读懂AlphaGo Zero背后的强化学习算法原理
一张图读懂AlphaGo Zero背后的算法原理https://pan.baidu.com/s/1AWyQNtHl4qIdplxZ0vFFbA原创 2019-02-09 22:32:29 · 2097 阅读 · 0 评论 -
强化学习经典算法笔记(一):价值迭代算法Value Iteration
强化学习经典算法笔记——价值迭代算法 由于毕业设计做的是强化学习相关的内容,感觉有必要把强化学习经典算法实现一遍,加强对算法和编程的理解。所以从这一篇开始,每一篇实现一个算法,主要包括Value Iteration,Policy Iteration,Q Learning,Actor-Critic算法及其衍生的DDPG等。期间还会在代码中介绍OpenAI Gym中的游戏环境。 强化学习的基本...原创 2019-04-08 16:05:38 · 15310 阅读 · 6 评论 -
强化学习经典算法笔记(二):策略迭代算法Policy Iteration
强化学习经典算法笔记——策略迭代算法 上一篇讲了价值迭代算法,这一篇介绍另一个动态规划算法——策略迭代算法(Policy Iteration)。简单介绍 Value Iteration的思路是:先迭代找出一个最优的Value Function,然后再根据Value Function迭代出一个最优策略。 Policy Iteration的思路是反着的,首先给定一个初始化的策略函数,一般...原创 2019-04-08 17:09:16 · 8602 阅读 · 4 评论 -
强化学习经典算法笔记(零):贝尔曼方程的推导
强化学习经典算法笔记——推导贝尔曼方程 在写强化学习经典算法笔记(一):价值迭代算法Value Iteration和强化学习经典算法笔记(二):策略迭代算法Policy Iteration的时候,感觉关键的部分——为什么要这样进行值(策略)迭代,没有讲清楚,概念有点模糊,所以感觉有必要重新关注一下Bellman Equation的来龙去脉,也是加强自己对这一块内容的理解。相关概念 在介绍...原创 2019-04-09 14:29:24 · 26417 阅读 · 9 评论 -
强化学习经典算法笔记(三):蒙特卡罗方法Monte Calo Method
强化学习经典算法笔记——蒙特卡罗方法强化学习经典算法笔记(零):贝尔曼方程的推导强化学习经典算法笔记(一):价值迭代算法Value Iteration强化学习经典算法笔记(二):策略迭代算法Policy Iteration 前三篇都是在环境模型已知的情况下求解最优算法,但是很多情况下,环境的模型是未知的,我们不清楚状态之间如何转移,回报的概率是多少,甚至不清楚全部的状态空间长什么样子。这...原创 2019-04-09 17:59:46 · 2297 阅读 · 0 评论 -
强化学习资源——Hands-On Reinforcement Learning、Deep Reinforcement Learning Hands-On等
Hands-On Reinforcement Learning with PythonPDF 链接:https://pan.baidu.com/s/1CzplQERRjwgi0b9pQTebFw 密码:u3v5代码 链接:https://pan.baidu.com/s/1rrmuZTPML-ZLJZlGWhUVdA 密码:qzf8这本书的代码是TensorflowDeep Reinfor...原创 2019-04-12 22:44:17 · 8621 阅读 · 18 评论 -
强化学习经典算法笔记(六):深度Q值网络 Deep Q Network
前期回顾强化学习经典算法笔记(零):贝尔曼方程的推导强化学习经典算法笔记(一):价值迭代算法Value Iteration强化学习经典算法笔记(二):策略迭代算法Policy Iteration强化学习经典算法笔记(三):蒙特卡罗方法Monte Calo Method强化学习经典算法笔记(四):时间差分算法Temporal Difference(Q-Learning算法)强化学习经典算...原创 2019-04-17 00:05:43 · 12036 阅读 · 2 评论 -
Windows10安装Gym[atari]和Gym[box2d]失败的解决办法
pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py原创 2019-04-19 21:58:50 · 5705 阅读 · 3 评论 -
AlphaGo Zero强化学习简易教程(译)
本教程介绍了一个同步的单线程单GPU的game-agnostic的AlphaZero复现工作。这是一部很漂亮的作品,它训练了一个仅通过自己和自己下棋的方式来学习的智能体,除了游戏规则之外,智能体没有利用任何的人类知识。与DeepMind之前的论文相比,该方法相当简单,而且AlphaGo Zero最终令人信服地击败了AlphaGo。AlphaGo使用专家游戏的数据进行训练,并击败了最好的人类围棋...原创 2019-02-03 23:52:41 · 8342 阅读 · 2 评论