莫烦老师,DQN代码学习笔记

详情请见莫烦老师DQN主页:DQN 算法更新 (Tensorflow) - 强化学习 Reinforcement Learning | 莫烦Python

莫烦老师代码(没有我繁琐注释代码直通车):MorvanZhou/Reinforcement-learning-with-tensorflow

参考文献:Playing Atari with Deep Reinforcement Learning

cs.toronto.edu/~vmnih/d

看图片版代码,见下一篇,等我学会贴代码。。。


第一次在网上写文章,不知怎么注明参考出处,如涉及侵权问题请评论告诉我。

本人初入强化学习,看莫烦老师的课受益匪浅,再次由衷的感谢老师的无私奉献,笔芯❤~

由于本人不懂的地方太多,所以注释的比较多,当然也加入了老师的注释。供以后学习参考,和其他小白一起进步。

建议参考DQN算法的英文流程,我也不知道这种中文注释能在哪里更方便的上传,就在这里发好啦,这里排版没准乱如果真要参考,就拷到编辑器上吧

废话不多说:


-----------这里是run_this.py文件嘿嘿嘿-----------------------------------------------------

#更新的步骤

from maze_env import Maze

from RL_brain import DeepQNetwork#引入了自己写的maze_env,RL_brain模块中class maze,class DeepQNetwork



def run_maze():

step = 0#为了记录当前走的第几步,因为先要存储一些记忆,当记忆库中有一些东西的时候才去学习

for episode in range(300):

# initial observation

observation = env.reset()#环境给出初始坐标


while True:

# fresh env更新环境

env.render()


# RL choose action based on observation根据观测值选择一个动作

action = RL.choose_action(observation)


# RL take action and get next observation and reward选择动作后得到观测值,奖励,是否终结done的信息

observation_, reward, done = env.step(action)


RL.store_transition(observation, action, reward, observation_)##重要:存储记忆:现在这步观测值,采取的动作。会得到的奖励,采取行动后下一步观测值


# 控制学习起始时间和频率 (先累积一些记忆再开始学习)

if (step > 200) and (step % 5 == 0):#当步数大于两百的时候才开始学习,每五步学习一次

RL.learn()


# swap observation

observation = observation_#更新观测值


# break while loop when end of this episode

if done:

break

step += 1


# end of game

print('game over')

env.destroy()



if __name__ == "__main__":

# maze game

env = Maze()#引入环境

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=False # 是否输出 tensorboard 文件

)

env.after(100, run_maze)

env.mainloop()

RL.plot_cost() # 观看神经网络的误差曲线


--------------这里是RL_brain.py,核心啊,看了好几天哭------------------------------------

import numpy as np

import tensorflow as tf


np.random.seed(1)

tf.set_random_seed(1)



# Deep Q Network off-policy

class DeepQNetwork:

def __init__(

self,

n_actions,#输出多少个action的值

n_features,#接受多少个观测值的相关特征

learning_rate=0.01,#NN中learning_rate学习速率

reward_decay=0.9,#Q-learning中reward衰减因子

e_greedy=0.9,

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值