强化学习系列文章(二十七):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有明确取值区间,高斯采样超出区间,就必须clip,毫无疑问会给policy gradient的估计产生影响。

采用Beta分布可以解决这个问题。Beta分布是定义在 [ 0 , 1 ] [0,1] [0,1]区间上的连续分布,受 a > 0 , b > 0 a>0,b>0 a>0,b>0两个参数的控制。有了 [ 0 , 1 ] [0,1] [0,1]区间上的连续分布,我们就能通过线性变换,得到任意封闭区间上的连续分布了。

下面是实验代码。

import argparse, math, os, sys
import numpy as np
import gym
from gym import wrappers
from configuration import config
from CartPoleContinuous import CartPoleContinuousEnv
import torch
from torch.autograd import Variable
import torch.autograd as autograd
import torch.nn.utils as utils

import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim

parser = argparse.ArgumentParser(description='PyTorch REINFORCE example')
parser.add_argument('--env_name', type=str, default='CartPoleContinuous') # 'CartPole-v0'
parser.add_argument('--gamma', type=float, default=0.99, metavar='G',
                    help='discount factor for reward (default: 0.99)')
parser.add_argument('--exploration_end', type=int, default=100, metavar='N',  # 
                    help='number of episodes with noise (default: 100)')
parser.add_argument('--seed', type=int, default=config.seed, metavar='N',             # 随机数种子
                    help='random seed (default: 123)')
parser.add_argument('--num_steps', type=int, default=1000, metavar='N',       # 一个episode最长持续帧数
                    help='max episode length (default: 1000)')
parser.add_argument('--num_episodes', type
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值