用DQN实现Atari game(Matlab代码实现)

该文介绍了强化学习中的深度Q网络(DQN)方法,用于处理高维状态空间的问题。DQN通过神经网络估计状态-动作值函数,解决表格方法的局限性。文中还提及了学习过程中的损失函数计算和权重更新,并展示了在pong游戏中的应用。此外,文章引用了一项基于改进DQN的机器人路径规划研究。
摘要由CSDN通过智能技术生成

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

强化学习研究的是Agent和环境交互中如何学习最优策略,以获得最大收益。Agent需要能够观察环境(observe)所处的状态,评判(value)状态下每个动作的价值,并选出最优的动作(act)来和环境交互。因此,observe,value和act是强化学习Agent必不可少的元素。

对于复杂的问题,state维度非常大,我们很难基于tabular method来判断每一个(state, action)的价值。这种情况下,我们利用function approximation方法,构建一个深度神经网络(Deep-Q Network, DQN),来估计(state, action)的价值。value()中Deep-Q Network模块就是一个神经网络,输入是atari game中的一帧图像,输出是每个action的价值。

强化学习,指的就是Agent与环境交互,不断强化,不断学习,最终找到解决问题的最优策略,那么学习(learn)就是强化学习必不可少的元素。在深度强化学习中,主要关注的就是DQN权重的学习,与深度神经网络的学习很相近,都是算一个loss,然后通过back-prop更新权重。

📚2 运行结果

主函数部分代码:

% RunDQN.m

clear; clc; close all;

tic;

% First specify if you use Octave (true) or Matlab (false)

Octave = false;

% Set State for Random Generator

if Octave

 rand('state', 895647); % 895647

else

 rng(895647);

end

global fieldHeight

global fieldWidth

global Memory

% Fix size of the Pong Field

fieldHeight = 64;

fieldWidth = 32;

% ---------------------- Step 1: Initializazion ------------------------ %

% ---------------------- 1. Setup Learning Parameters ------------------ %

if Octave

 StartLearning = 1600 ;   % # of Random Episodes before Learning starts

 NEpisodes   = 20000;   % Octave is much slower but this works as well (at least on Windows?)

 LearningRate  = 6e-1 ;

 MaxMemory   = 1e4  ;   % Size of the Memory (Again smaller for Octave)

 UpdateTarget  = 4001 ;   % Periode with which Target is updated

else

 StartLearning = 5000 ;   % # of Random Episodes before Learning starts

 NEpisodes   = 46000; 

 LearningRate  = 4e-1 ;

 MaxMemory   = 1e5 ;   % Size of the Memory

 UpdateTarget  = 10001;   % Periode with which Target is updated

end

🎉3 参考文献

​[1]董永峰,杨琛,董瑶等.基于改进的DQN机器人路径规划[J].计算机工程与设计,2021,42(02):552-558.DOI:10.16208/j.issn1000-7024.2021.02.037.

👨‍💻4 Matlab代码

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值