博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个强化学习 Q-learning 算法的简明教程
阅读量:3482 次
发布时间:2019-05-19

本文共 1149 字,大约阅读时间需要 3 分钟。

 向AI转型的程序员都关注了这个号???


大数据挖掘DT数据分析  公众号: datadw

本文是对 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^, a^)} 
(4)  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

第二部分:英文原文

人工智能大数据与深度学习

搜索添加微信公众号:weic2c

长按图片,识别二维码,点关注



大数据挖掘DT数据分析

搜索添加微信公众号:datadw


教你机器学习,教你数据挖掘

长按图片,识别二维码,点关注

转载地址:http://ipmoj.baihongyu.com/

你可能感兴趣的文章
Mybatis配置log4j文件 分页查询(limit,rowBounds)
查看>>
Mysql利用注解进行开发
查看>>
Mybatis一对多查询,多对一查询
查看>>
Spring配置bean.xml文件的头目录模板
查看>>
代理模式之------动态代理
查看>>
Spring实现AOP的三种方式
查看>>
Mybatis-Spring简单的配置和使用,配置事务
查看>>
SpringMVC的简单使用与配置
查看>>
SpringMVC和Mybatis整合使用的配置文件
查看>>
代码特效插件pycharm
查看>>
python实现tcp客户端从服务端下载文件
查看>>
将字符串 “k:1|k1:2|k2:3|k3:4” 转换成字典{“k”:1,”k1”:2,”k2”:3,”k3”:4}
查看>>
AttributeError: 'tuple' object has no attribute 'decode'
查看>>
node爬虫(牛刀小试)
查看>>
关于vue的seo优化
查看>>
字符串在html中的页面中的换行
查看>>
react父子组件间的通信和传值
查看>>
vue-cli3.0设置环境变量
查看>>
vue父组件直接操作子组件的方法(不通过$emit和$on)
查看>>
vue上传文件到UCloud
查看>>