专栏首页机器学习AI算法工程一个强化学习 Q-learning 算法的简明教程

一个强化学习 Q-learning 算法的简明教程

本文是对 http://mnemstudio.org/path-finding-q-learning-tutorial.htm 的翻译,共分两部分,第一部分为中文翻译,第二部分为英文原文。翻译时为方便读者理解,有些地方采用了意译的方式,此外,原文中有几处笔误,在翻译时已进行了更正。这篇教程通俗易懂,是一份很不错的学习理解 Q-learning 算法工作原理的材料。

第一部分:中文翻译

用python实现

QLearning: 1. :给定参数γγ和R矩阵 2. 初始化 Q 3. for each episode: 3.1随机选择一个出事状态s 3.2若未达到目标状态,则执行以下几步 (1)在当前状态s的所有可能行为中选取一个行为a (2)利用选定的行为a,得到下一个状态 。 (3)按照 Q(s,a)=R(s,a)+γγmax{Q(s^s^,a^a^)} (4) s:=s^s:=s^ γγ 为学习参数, R为奖励机制, 为在s状态下,执行Q所得到的值。随机选择一个一个状态,即开始搜索的起点,在为100的点为终点。下面是程序。

import numpy as np
GAMMA = 0.8
Q = np.zeros((6,6))
R=np.asarray([[-1,-1,-1,-1,0,-1],
   [-1,-1,-1,0,-1,100],
   [-1,-1,-1,0,-1,-1],
   [-1,0, 0, -1,0,-1],
   [0,-1,-1,0,-1,100],
   [-1,0,-1,-1,0,100]])
def getMaxQ(state):
return max(Q[state, :])
def QLearning(state):
curAction = None
for action in xrange(6):
    if(R[state][action] == -1):
            Q[state, action]=0
        else:
            curAction = action
            Q[state,action]=R[state][action]+GAMMA * getMaxQ(curAction)
count=0
while count<1000:
    for i in xrange(6):
        QLearning(i)
    count+=1
print Q/5

第二部分:英文原文

本文分享自微信公众号 - 大数据挖掘DT数据分析(datadw)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 上海地铁一卡通刷卡数据挖掘

    原文:www.kesci.com 源码地址 :https://github.com/icomingi/metro "游族杯"上海开放数据创新应用大赛 本次大赛...

    机器学习AI算法工程
  • Python Excel操作

    最近公司要把Excel导入到mysql数据库,查了几篇博文,这几项是非常有用的,记录下来。 一、安装xlrd模块 到python官网下载http://pyp...

    机器学习AI算法工程
  • 基于LSTM搭建一个文本情感分类的深度学习模型:准确率往往有95%以上

    基于情感词典的文本情感分类 ? 传统的基于情感词典的文本情感分类,是对人的记忆和判断思维的最简单的模拟,如上图。我们首先通过学习来记忆一些基本词汇,如否定词语...

    机器学习AI算法工程
  • PLC远程控制系统

    随着工业物联网的快速发展和互联网的高速使用,信息传输速度更快、更稳定、更可靠。经过无线网络的实时传输技能,设备的长途毛病诊断与监控体系不仅能够突破地域和时刻的约...

    用户6789871
  • 【大咖周语录】互联网时代教育的本质依旧是为了传承文化、创造知识、培养人才

    大数据对传统行业的改变很多,有的甚至是颠覆式的改变,可在某些行业,比如教育行业,大数据永远也改变不了某些东西。 编辑 | Sharon 官网 | www.dat...

    数据猿
  • 网游内存数据库的设计(2)

    续第一篇,前两天对核心存储做了些修改,以前只打算与关系数据库的行与表做对应,value类型只能使array或list, 现在把7种基本类型也加入到value支持...

    李海彬
  • spss C# 二次开发 学习笔记(四)——Spss授权

    Spss的授权方式有两种,单机版和网络版。 Spss的激活,在联网的情况下,通过20位的激活码激活,在未联网的情况下,Spss根据机器获取一个类似4-XXXX的...

    用户1637609
  • 网游内存数据库的设计(2)

    续第一篇,前两天对核心存储做了些修改,以前只打算与关系数据库的行与表做对应,value类型只能使array或list, 现在把7种基本类型也加入到value支持...

    李海彬
  • 网游内存数据库的设计(2)

    续第一篇,前两天对核心存储做了些修改,以前只打算与关系数据库的行与表做对应,value类型只能使array或list, 现在把7种基本类型也加入到value支持...

    李海彬
  • jQuery formValidator表单验证插件

    jQuery formValidator表单验证插件是客户端表单验证插件。 Query formValidator表单校验插件支持的验证功能(还有很多功能没有罗...

    wangxl

扫码关注云+社区

领取腾讯云代金券