强化学习 之 Deep Q Network

参考

1、深度强化学习(一): Deep Q Network(DQN)(两个网络的区别)
2、深度强化学习——DQN(工作流程图、误差计算方法)

DQN简介

DQN是一种融合了神经网络和 Q learning 的方法,因为传统表格形式的强化学习有这样一个瓶颈:当问题过于复杂,状态过多时,全用表格来存储它们是不现实的。
使用神经网络,我们就可以将状态和动作当成神经网络的输入, 然后经过神经网络分析后得到动作的 Q 值,这样我们就没必要在表格中记录 Q 值,而是直接使用神经网络生成 Q 值。
还有一种形式的是这样,我们也可以只输入状态值,输出所有的动作值,然后按照 Q learning 的原则,直接选择拥有最大值的动作当做下一步要做的动作。

算法原理

在这里插入图片描述

流程结构

在这里插入图片描述

实现步骤

1.初始化记忆库D和容量N,初始化Q的估计值、真实值等参数
2.在每一轮训练中,首先初始化状态序列 和 预处理序列,并在训练中的每一步进行如下操作:
(1)根据贪婪度epsilon概率选择下一步的动作action
(2)在当前状态state采用行动action后,得到下一状态state’和反馈reward
(3)保存这一步的记忆到记忆库D中
(4)当积累一定的步数记忆后,从记忆库D中随机抽取一定数量的记忆作为样本并进行学习,以及更新网络参数
(5)将本次训练的将下一个 state_ 作为 下次循环训练的起始 state

代码架构

# 定义DeepQNetwork类,用于实现神经网络结构
RL = DeepQNetwork(env.n_actions, env.n_features,
		learning_rate=0.01,
        reward_decay=0.9,
        e_greedy=0.9,
        replace_target_iter=200,  # 每 200 步替换一次 target_net 的参数
        memory_size=2000,  # 记忆上限
        # output_graph=True   # 是否输出 tensorboard 文件
)
	# 用来控制什么时候学习
    step = 0
    for episode in range(300):
        # initial observation
        observation = env.reset()

        while True:
            # 刷新环境
            env.render()

            # DQN 根据观测值选择行为
            action = RL.choose_action(observation)

            # 环境根据行为给出下一个 state, reward, 是否终止
            observation_, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值