前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个强化学习 Q-learning 算法的简明教程

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

作者头像
机器学习AI算法工程
发布2018-03-30 15:48:37
1.4K0
发布2018-03-30 15:48:37
举报

本文是对 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的点为终点。下面是程序。

代码语言:javascript
复制
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

第二部分:英文原文

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据挖掘DT数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用python实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档