强化学习

[停更]莫烦python强化学习中的'env = gym.make(CartPole-v0)'细究[停更]

旧巷老猫 提交于 2019-12-24 05:04:24
文章目录 1、找到文件'/gym/gym/envs/classic_control/cartpole.py’ 2、同级目录下查看'/gym/gym/envs/classic_control/__init__.py' 3、在上级目录中查看'/gym/gym/envs/__init__.py' 1、找到文件’/gym/gym/envs/classic_control/cartpole.py’ 2、同级目录下查看’/gym/gym/envs/classic_control/ init .py’ 第一行即是 from gym.envs.classic_control.cartpole import CartPoleEnv from gym.envs.classic_control.cartpole import CartPoleEnv from gym.envs.classic_control.mountain_car import MountainCarEnv from gym.envs.classic_control.continuous_mountain_car import Continuous_MountainCarEnv from gym.envs.classic_control.pendulum import PendulumEnv from gym.envs.classic

阅读记录(2018年4月)

人盡茶涼 提交于 2019-12-23 19:04:15
2018-04-26 杂项 Qt Creator工程编译出错 当Qt Creator工程中的子工程文件名过长时会导致 Error: dependent '....h' does not exist. 的问题。比如 RemoteSensingImageProcessingSystem/RemoteSensingImageProcessingSystem/RemoteSensingImageProcessingSystem.pro 编译失败, RemoteSensingImageProcessingSystem/GUI/GUI.pro 编译通过。 vcpkg Microsoft/vcpkg: VC++ Packaging Tool 如何看待 Windows 的 C++ 包管理器 vcpkg? - 知乎 C/C++ Open Source Package Manager conan-io/conan: Conan.io - The open-source C/C++ package manager Vcpkg: a tool to acquire and build C++ open source libraries on Windows | Visual C++ Team Blog Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库 -

(十三)从零开始学人工智能-强化学习:值函数近似和策略梯度

青春壹個敷衍的年華 提交于 2019-12-23 18:07:51
强化学习–值函数近似和策略梯度 文章目录 强化学习--值函数近似和策略梯度 1. 值函数近似 1.1 线性函数近似 1.1.1 状态价值函数近似 1.1.2 动作价值函数近似 1.2 深度神经网络近似 2. 策略梯度 声明 参考资料 前两节内容都是强化学习的一些基础理论 ,只能解决一些中小规模的问题,实际情况下很多价值函数需要一张大表来存储,获取某一状态或动作价值的时候通常需要一个查表操作,这对于某些状态或动作空间很大的问题几乎无法求解,而许多实际问题拥有大量状态或动作,甚至是连续的状态和动作。那么,如何解决实际问题呢?主要有两种方法:值函数近似和策略梯度。 1. 值函数近似 强化学习可以用来解决大规模问题,例如西洋双陆棋(Backgammon)有 1 0 20 10^{20} 1 0 2 0 个状态空间,围棋AlphaGo有 1 0 170 10^{170} 1 0 1 7 0 状态空间,机器人控制以及无人机控制需要的是一个连续状态空间。如何才能将强化学习应用到这类大规模的问题中,进而进行预测和控制呢? (1)使用值函数近似的解决思路可以是这样的: ①、通过函数近似来估计实际的价值函数: v ^ ( s , ω ) ≈ v π ( s ) \hat v(s,\omega ) \approx {v_\pi }(s) v ^ ( s , ω ) ≈ v π ​ ( s ) q ^ (

强化学习(8):Asynchronous Advantage Actor-Critic(A3C)算法

╄→гoц情女王★ 提交于 2019-12-22 11:42:41
本文主要讲解有关 A3C 算法的相关内容。 一、A3C 算法 直接引用莫烦老师的话来介绍 A3C 算法:Google DeepMind 提出的一种解决 Actor-Critic 不收敛问题的算法。它会创建多个并行的环境,让多个拥有副结构的 agent 同时在这些并行环境上更新主结构中的参数。并行中的 agent 们互不干扰,而主结构的参数更新受到副结构提交更新的不连续性干扰,所以更新的相关性被降低,收敛性提高。 除了上述提到的之外,在 A3C 算法中拥有副结构的 agent 还会定期地获取主结构的参数以更新自己的策略。A3C 算法实际上就是将 Actor-Critic 放在了多个线程中进行同步训练。可以想象成几个人同时在玩一样的游戏,而他们玩游戏的经验都会同步上传到一个中央大脑,然后他们又从中央大脑中获取最新的玩游戏方法。 下图是 A3C 网络结构的示意图: 二、A3C 算法流程 来源: CSDN 作者: 棉花糖灬 链接: https://blog.csdn.net/zuzhiang/article/details/103650804

强化学习(9):TRPO、PPO以及DPPO算法

拟墨画扇 提交于 2019-12-22 11:42:13
本文主要讲解有关 TRPO算法、PPO 算法、PPO2算法以及 DPPO 算法的相关内容。 一、PPO 算法 PPO(Proximal Policy Optimization) 是一种解决 PG 算法中学习率不好确定的问题的算法,因为如果学习率过大,则学出来的策略不易收敛, 反之,如果学习率太小,则会花费较长的时间。PPO 算法利用新策略和旧策略的比例,从而限制了新策略的更新幅度,让 PG 算法对于稍微大一点的学习率不那么敏感。 为了判定模型的更新什么时候停止,所以 PPO 在原目标函数的基础上添加了 KL 散度部分,用来表示两个分布之间的差别,差别越大值越大,惩罚也就越大。所以可以使两个分布尽可能的相似。PPO 算法的损失函数如下: J P P O θ ′ ( θ ) = J θ ′ ( θ ) − β K L ( θ , θ ′ ) J_{PPO}^{\theta'}(\theta)=J^{\theta'}(\theta)-\beta KL(\theta,\theta') J P P O θ ′ ​ ( θ ) = J θ ′ ( θ ) − β K L ( θ , θ ′ ) J θ ′ ( θ ) = E ( s t , a t ) ∼ π θ ′ [ p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) A θ ′ ( s t , a t ) ] J

强化学习:SARSA算法

ⅰ亾dé卋堺 提交于 2019-12-20 14:19:21
SARSA算法解决“有风的网格世界”问题 问题描述 一个有起始状态S和终止状态G的网格世界,在经过中间一段区域时,会有向上的风,风力强度如下标所示。0代表无风,1代表会被吹上去一格,2代表会被吹上去两格。 现在的目的是,从起始位置S想办法到达终点位置G,选择的动作可以是八个方向的(上、下、左、右、左上、左下、右上、右下)。这是一个标准的分幕式任务,在到达目标前,每一步的回报都是 -1。 我们的任务是采用 - 贪心策略得到在200幕的情况下,得到从S到G累计步数的增长情况。 贪心参数 epsilon = 0.1,步长参数 alpha = 0.5 ,折扣系数 gamma = 0.9 ,初始状态所有Q(s,a)= 0。 问题解决 动作数字化 动作:up down left right left-u left-down right-u right-d 动作:0 1 2 3 4 5 6 7 状态数字化 数字化后,状态-动作值函数的初始化就简单了,之后就是写算法了。 算法 经典的SARSA算法,编程时稍加修改。 程序 # _*_ coding : UTF-8 _*_ # 开发团队 : 一只猫 # 开发人员 : Jiang H.T # 开发时间 : 2019/12/19 9:00 # 文件名称 : Sarsa_wind.py # 开发工具 : PyCharm import random

深度强化学习系列(4): Q-Learning算法原理与实现

风格不统一 提交于 2019-12-17 08:14:51
论文地址: http://www.gatsby.ucl.ac.uk/~dayan/papers/cjch.pdf Q-Learning是发表于1989年的一种value-based,且model-free的特别经典的off-policy算法,近几年的DQN等算法均是在此基础上通过神经网络进行展开的。 1. 相关简介 强化学习学习过程中,通常是将学习的序列数据存储在表格中,通过获取表中的数据,利用greedy策略进行最大化Q值函数的学习方法。 2. 原理及推导 Q-Learning就是在某一个时刻的状态(state)下,采取动作a能够获得收益的期望,环境会根据agent的动作反馈相应的reward奖赏, 核心就是将state和action构建成一张Q_table表来存储Q值,然后根据Q值来选取能够获得最大收益的动作 ,如表所示: Q-Table a 1 a_{1} a 1 ​ a 2 a_{2} a 2 ​ s 1 s_{1} s 1 ​ Q ( s 1 , a 1 ) Q(s_{1},a_{1}) Q ( s 1 ​ , a 1 ​ ) Q ( s 1 , a 2 ) Q(s_{1},a_{2}) Q ( s 1 ​ , a 2 ​ ) s 2 s_{2} s 2 ​ Q ( s 2 , a 1 ) Q(s_{2},a_{1}) Q ( s 2 ​ , a 1 ​ ) Q ( s

深度强化学习泡沫及路在何方?

一笑奈何 提交于 2019-12-17 02:24:48
一、深度强化学习的泡沫 2015年,DeepMind的Volodymyr Mnih等研究员在《自然》杂志上发表论文Human-level control through deep reinforcement learning[1],该论文提出了一个结合深度学习(DL)技术和强化学习(RL)思想的模型Deep Q-Network(DQN),在Atari游戏平台上展示出超越人类水平的表现。自此以后,结合DL与RL的深度强化学习(Deep Reinforcement Learning, DRL)迅速成为人工智能界的焦点。 过去三年间,DRL算法在不同领域大显神通:在视频游戏[1]、棋类游戏上打败人类顶尖高手[2,3];控制复杂的机械进行操作[4];调配网络资源[5];为数据中心大幅节能[6];甚至对机器学习算法自动调参[7]。各大高校和企业纷纷参与其中,提出了眼花缭乱的DRL算法和应用。可以说,过去三年是DRL的爆红期。DeepMind负责AlphaGo项目的研究员David Silver喊出“AI = RL + DL”,认为结合了DL的表示能力与RL的推理能力的DRL将会是人工智能的终极答案。 RL论文数量迅速增长[8] 1.1 DRL的可复现性危机 然而,研究人员在最近半年开始了对DRL的反思。由于发表的文献中往往不提供重要参数设置和工程解决方案的细节,很多算法都难以复现

强化学习Numpy相关知识整理

醉酒当歌 提交于 2019-12-10 17:28:22
在使用python进行强化学习仿真实验的时候,numpy一定是会用到的一个工具库。numpy提供了很多有用的接口函数,但是要熟悉全部函数是有一定困难的。这里整理一些强化学习中比较常用的API函数,并说明它们一般使用的位置。 np.argmax 函数 这个函数主要用于取出矩阵中最大元素的位置,常用于对DQN的输出向量 import numpy as np a = np . array ( [ 3 , 5 , 6 , 8 , 1 ] ) b = np . argmax ( a ) print ( 'b=' , b ) 输出结果 b = 3 np.random.choice 函数 简单地介绍一下这个函数在强化学习用到的相关的语法,以下面这个案例为例 import numpy as np # replace 表示抽完仍旧放回去 # np.random.choice(a, size = None, replace = True, p = None) # 从0到5之间随机选取3个数 a = np . random . choice ( 5 , 3 ) # 表示分别以p=[0.1, 0, 0.3, 0.6, 0]的概率从[0,1,2,3,4]这四个数中选取3个数 b = np . random . choice ( 5 , 2 , p = [ 0.1 , 0.1 , 0.2 , 0.2 , 0

基于PaddlePaddle的强化学习算法DQN

爷,独闯天下 提交于 2019-12-10 08:48:11
项目简介 基于paddlepaddle复现了深度强化学习领域的DQN模型,在经典的Atari游戏上复现了论文同等水平的指标,模型接收游戏的图像作为输入,采用端到端的模型直接预测下一步要执行的控制信号,本项目需要在GPU环境下运行,论文原文:Human-level Control Through Deep Reinforcement Learning 问题提出: 强化学习中智能体(agent)在面对复杂外界环境时的局限性:他们需要从高维空间学习到输入数据的有效表征,并应用到新环境中,这是个富有挑战性的任务。 传统的强化学习的局限性:只能用在人工提取特征的有效表征(handcrafted feature representations)的情景,或用于可观测的低维状态空间。 该论文针对以上问题,将强化学习策略与深度卷积神经网络(CNN)结合起来,提出一种DeepQ-Network(DQN),它能够从输入的高维感知空间直接学习到知识,并通过端到端的强化学习策略(end-to-end)对智能体(agent)进行训练。该研究的两大亮点: 针对传统强化学习出现的不稳定甚至偏差现象,本文提出两种方式来解决这种不稳定问题。 a) 使用经验回放(experience replay)来去除观测值之间的相关性(removecorrelations),平滑数据分布(smooth over data