cartpole强化学习DQN实战

本文介绍如何使用DQN算法通过Keras实现解决倒立摆(CartPole)环境的平衡问题。采用两层全连接层的神经网络模型,通过与环境交互收集经验并不断调整策略,最终使倒立摆保持长时间平衡。

本文章通过keras实现DQN算法来解决倒立摆的平衡问题
一.环境
cartpole是一个经典的环境,可以验证许多的算法。这次我用的是cartpole-v0,一个离散动作空间的倒立摆环境,该环境有两个动作,即左和右,并且包含环境的四个状态观测值。
然后就瞅瞅这个环境:
在这里插入图片描述
黑色的载体可以左右移动,来保持平衡杆直立

然后看一下gym官方的描述:
在这里插入图片描述
这里面尤其要注意的一点就是关于“Reward”的描述,每一步都给“1”分的回报,而且最关键的是,即使这一步导致一轮交互结束了,也给予“1”分的回报。这样显然是不可取的,因此要在交互过程结束后,给这一步的Reward赋予“坏”的回报,这里我设置了-10。

reward = reward if not done else -10

二.DQN代码
代码部分我直接用了我上一篇文章解决“MountainCar”的主体代码部分,该文章链接在末尾会附上。

%%time
from tensorflow.keras import Sequential,layers
from tensorflow.keras.models import load_model
from tensorflow.keras.optimizers import Adam
from collections import deque
import numpy as np
import random
import gym 

class Agent(object):

def __init__(self,):
    '''
    初始化类的变
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值