深入浅出强化学习
文章平均质量分 70
Wwwilling
深度强化学习 知识图谱 Transformer
展开
-
【深入浅出强化学习-编程实战】 8 DDPG(单摆系统)
【深入浅出强化学习-编程实战】 10 DDPGPendulum单摆系统MDP模型代码训练效果代码学习Pendulum单摆系统MDP模型该系统只包含一个摆杆,其中摆杆可以绕着一端的轴线摆动,在轴线施加力矩τ\tauτ来控制摆杆摆动。Pendulum目标是:从任意状态出发,施加一系列的力矩,使得摆杆可以竖直向上。状态输入为s=[θ,θ˙]s=[\theta,\dot{\theta}]s=[θ,θ˙]动作空间为τ∈[−2,2]\tau\in[-2,2]τ∈[−2,2],连续空间回报函数为r=−θ2−原创 2021-03-31 21:42:47 · 1431 阅读 · 0 评论 -
【深入浅出强化学习-编程实战】 8 Actor-Critic-Pendulum(单摆系统)
【深入浅出强化学习-编程实战】 8 Actor-Critic-PendulumPendulum单摆系统MDP模型TD-AC算法TD-AC算法代码解析Pendulum单摆系统MDP模型该系统只包含一个摆杆,其中摆杆可以绕着一端的轴线摆动,在轴线施加力矩τ\tauτ来控制摆杆摆动。Pendulum目标是:从任意状态出发,施加一系列的力矩,使得摆杆可以竖直向上。状态输入为s=[θ,θ˙]s=[\theta,\dot{\theta}]s=[θ,θ˙]动作空间为τ∈[−2,2]\tau\in[-2,2]τ原创 2021-03-30 13:09:52 · 1122 阅读 · 0 评论 -
【深入浅出强化学习-编程实战】 7 基于策略梯度的强化学习-Pendulum(单摆系统)
【深入浅出强化学习-编程实战】 7 基于策略梯度的强化学习-PendulumPendulum单摆系统MDP模型Pendulum单摆系统MDP模型状态输入为s=[θ,θ˙]s=[\theta,\dot{\theta}]s=[θ,θ˙]动作空间为τ∈[−2,2]\tau\in[-2,2]τ∈[−2,2],连续空间回报函数为r=−θ2−0.1θ˙2−0.001τ2r=-{\theta}^2-0.1{\dot{\theta}}^2-0.001{\tau}^2r=−θ2−0.1θ˙2−0.001τ2...原创 2021-03-27 22:08:11 · 1084 阅读 · 0 评论 -
【深入浅出强化学习-编程实战】 7 基于策略梯度的强化学习-Cartpole(小车倒立摆系统)
【深入浅出强化学习-编程实战】 7 基于策略梯度的强化学习-Cartpole小车倒立摆MDP模型代码解析小车倒立摆MDP模型状态输入:s=[x,x˙,θ,θ˙]s = [x,\dot{x},\theta,\dot{\theta}]s=[x,x˙,θ,θ˙],维数为4动作输出为a={[1,0],[0,1]}a = \{[1,0],[0,1]\}a={[1,0],[0,1]}回报函数:f(x)={1ifs∈Ω0ifs∉Ωf(x)= \begin{cases}1 & if s原创 2021-03-26 17:31:31 · 1625 阅读 · 1 评论 -
【深入浅出强化学习-编程实战】6 基于函数逼近的方法-flappy bird
【深入浅出强化学习-编程实战】6 基于函数逼近的方法-flappy bird代码解析玩家通过控制小鸟上下运动躲避不断到来的柱子,有两个动作可选:一个是飞,一个是不进行任何操作。采用动作飞时,小鸟会向上飞;不进行操作,小鸟会向下掉。小鸟飞行一步没有撞到柱子立即回报0.1;当小鸟撞到柱子立即回报-1;当小鸟躲过一个柱子时立即回报为1。玩家的目的是控制小鸟躲过尽可能多的柱子,得到尽量多的分数。dqn_bird.py# 经验池类# 该类用于经验数据的存储和训练数据的采集from __future__ i原创 2021-03-23 22:49:35 · 1077 阅读 · 5 评论 -
【深入浅出强化学习-编程实战】6 基于函数逼近的方法-鸳鸯系统
【深入浅出强化学习-编程实战】6 基于函数逼近的方法-鸳鸯系统6.1 鸳鸯系统——基于函数逼近的方法代码困惑6.1 鸳鸯系统——基于函数逼近的方法左上为雄鸟,右上为雌鸟,中间有两道障碍物。目标:雄鸟找到雌鸟。代码困惑LFA_RL.py——line 21phi_s_a[0,100*a+s] = 1这是是想说这是个one-hot的矩阵,不应该是phi_s_a[a,s]=1吗?LFA_RL.py——line 110[0,0]*np.transpose(self.feature_tr(s,原创 2021-03-23 14:00:00 · 594 阅读 · 3 评论 -
【深入浅出强化学习-编程实战】4 基于时间差分的方法-鸳鸯系统
【深入浅出强化学习-编程实战】4 基于时间差分的方法4.1 鸳鸯系统——基于时间差分的方法4.1 鸳鸯系统——基于时间差分的方法左上为雄鸟,右上为雌鸟,中间有两道障碍物。目标:雄鸟找到雌鸟。yuanyang_env_td.pyimport pygamefrom resource.load import *import mathimport timeimport randomimport numpy as npclass YuanYangEnv: def __init__(sel原创 2021-03-20 19:50:42 · 737 阅读 · 7 评论 -
【深入浅出强化学习-编程实战】3 基于蒙特卡洛的方法的鸳鸯系统
【深入浅出强化学习-编程实战】3 基于蒙特卡洛的方法2.1 鸳鸯系统——基于蒙特卡洛的方法2.1.3 部分代码思考2.1 鸳鸯系统——基于蒙特卡洛的方法左上为雄鸟,右上为雌鸟,中间有两道障碍物。目标:雄鸟找到雌鸟。yuanyang_env.pyimport pygamefrom resource.load import *import mathimport timeimport randomimport numpy as npclass YuanYangEnv: def __i原创 2021-03-19 18:48:52 · 858 阅读 · 10 评论 -
【深入浅出强化学习-编程实战】3 基于动态规划的方法-鸳鸯系统
line 244pygame.draw.rect(self.viewer,[255,0,0],[rec_position[0],rec_position[1],120,90],3)原型:pygame.draw.rect(Surface, color, Rect, width=0): return Rect用途:在Surface上绘制矩形,第二个参数是线条(或填充)的颜色,第三个参数Rect的形式是((x, y), (width, height)),表示的是所绘制矩形的区域,其中第一个元组(x,.原创 2021-03-18 20:21:01 · 865 阅读 · 2 评论 -
【深入浅出强化学习-编程实战】2 马尔可夫决策过程-鸳鸯系统
【深入浅出强化学习-编程实战】2 马尔可夫决策过程2.1 鸳鸯系统马尔可夫决策过程2.1.1 代码展示2.1.2 部分代码解析2.1 鸳鸯系统马尔可夫决策过程左上为雄鸟,右上为雌鸟,中间有两道障碍物。目标:雄鸟找到雌鸟。2.1.1 代码展示main.pyimport pygamefrom resource.load import *import mathimport timeimport randomimport numpy as npclass YuanYangEnv: #原创 2021-03-16 20:01:23 · 1195 阅读 · 6 评论 -
【深入浅出强化学习-编程实战】1 多臂赌博机
# 多臂赌博机import numpy as npimport matplotlib.pyplot as pltclass KB_Game: def __init__(self,*args,**kwargs): # 属性 # q 每个臂的平均回报,假设臂的数目是3,初始值都为0.0 self.q = np.array([0.0,0.0,0.0]) # action_counts 摇动每个臂的次数,初始值为0 se原创 2021-03-16 15:33:33 · 484 阅读 · 0 评论 -
【深入浅出强化学习-原理入门】2 基于模型的动态规划方法
【深入浅出强化学习-原理入门】2 基于模型的动态规划方法2.1 基于gym的机器人找金币游戏2.1.1 基于策略迭代算法2.1.2 基于值迭代算法2.2 基于gym迷宫游戏2.2.1 基于策略迭代算法2.2.2 基于值迭代算法2.1 基于gym的机器人找金币游戏2.1.1 基于策略迭代算法import gymimport randomimport timeenv = gym.make('GridWorld-v0')class Learn: def __init__(self,gri原创 2021-03-15 21:00:17 · 714 阅读 · 3 评论 -
【深入浅出强化学习-原理入门】1 基于gym的MDP(作业)
题目:基于gym构建如下迷宫世界:全部代码:maze_mdp.pyimport logging #日志模块import numpyimport randomfrom gym import spacesimport gymlogging = logging.getLogger(__name__)# Set this in SOME subclassesclass MazeEnv(gym.Env): metadata = { 'render.modes':原创 2021-03-15 14:59:13 · 806 阅读 · 2 评论 -
【深入浅出强化学习-原理入门】1 基于gym的MDP
【深入浅出强化学习-原理入门】1 基于gym的MDPwindows版本强化学习gym找金币游戏第一步:grid_mdp.py代码展示import logging #日志模块import numpyimport randomfrom gym import spacesimport gymlogging = logging.getLogger(__name__)# Set this in SOME subclassesclass GridEnv(gym.Env): meta原创 2021-03-15 11:41:00 · 630 阅读 · 3 评论