博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
强化学习之Q-learning ^_^
阅读量:6946 次
发布时间:2019-06-27

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

许久没有更新重新拾起,献于小白

 

这次介绍的是强化学习  Q-learning,Q-learning也是离线学习的一种

关于Q-learning的算法详情看

下文中我们会用openai gym来做演示

 简要

q-learning的伪代码先看这部分,很重要

 

简单的算法语言描述就是

开始执行任务:

  随机选择一个初始动作

  执行这些动作

  若未达到目标状态,则执行一下几步

    在当前状态s所有可能的行为中选择一个a

    利用a得到下一个状态s_

    计算Q(s,a) (对当前的行为进行学习)

    下一个状态等于当前状态

    开始下一个循环

 

 

有重要的几个参数,GAMMA(gamma 是对未来 reward(分数) 的衰减值),ALPHA(学习率),EPSILON(策略)

GAMMA是什么意思呢,就是对获取过的奖励为了防止再次获取后得到的分数一样,于是对reward进行一个衰减,这样就会有长远的眼光,机器人就不只专注于眼前的奖励了

EPSILON 是一种策略,0.8代表的意思就是我们有80%的概率来选择之前的经验剩下的20%的概率来进行新的探索

 

游戏开始

首先我们初始化环境

import numpy as npimport gymGAME = 'FrozenLake-v0'env = gym.make(GAME)MAX_STEPS=env.spec.timestep_limitEPSILON=0.8GAMMA=0.8ALPHA=0.01q_table=np.zeros([16,4],dtype=np.float32)

q_table就是Q-Learning的Q表了,里面有所有我们进行学习的经验,程序的动作选择都是从Q表中选择

 

def action_choise(obervation):    if np.random.uniform()

上面代码为策略选择,80%的概率总Q表中选择最优策略,20%的概率进行随机操作

 

 

 

def learn(state,action,reward,obervation):    q_table[state][action]+=ALPHA*(reward+GAMMA*max(q_table[obervation])-q_table[state,action])

此部分为学习部分,重要部分用红线标示出来了

Q表的更新方式为   学习率 * (真实值 - 预测值)  将判断误差传递回去 以此来进行学习

 对应算法部位为

 

GAME OVER

以上就是Q-learning的简单介绍

下面是全部的代码

1 import numpy as np 2 import gym 3  4 GAME = 'FrozenLake-v0' 5 env = gym.make(GAME) 6  7 MAX_STEPS=env.spec.timestep_limit 8 EPSILON=0.8 9 GAMMA=0.810 ALPHA=0.0111 q_table=np.zeros([16,4],dtype=np.float32)12 13 def action_choise(obervation):14     if np.random.uniform()

 

 

大家把Q表的信息打印出来,断点执行一下,相信会对Q-learning有更深入的了解

欢迎大家一起学习共同提高,

独乐乐不如众乐乐 ^_^

转载于:https://www.cnblogs.com/lonenysky/p/8258528.html

你可能感兴趣的文章
离开网易的转型之路2:无悔选择测试之路-路上的抉择、进取
查看>>
2014年中回首与展望
查看>>
局域网共享
查看>>
mysql建表-主键-索引-外键
查看>>
Android Studio第三十期 - 介绍几种网络请求方式写法
查看>>
计划任务导致的邮件系统故障
查看>>
《从零开始学Swift》学习笔记(Day 35)——会使用下标吗?
查看>>
盛大私有化和陈天桥的土皇帝心态
查看>>
Exchange Server 2013 公网发布疑难解答
查看>>
Oracle 12c dataguard云上挖坑记--为某机场贵宾业务部署oracle 12c到云端
查看>>
前端开发在不久的将来定会成为主导
查看>>
jQuery内ready与load事件的区别
查看>>
[笔记].关于Stratix III使用非易失加密后,无法正常配置启动的问题探讨
查看>>
一个通用的单元测试框架的思考和设计03-实现篇-核心类源码
查看>>
万能导出数据到Excel
查看>>
[感谢坑娘][回忆3年前]茜色的终点线....
查看>>
减少垃圾广告 让你的电子邮箱更安全
查看>>
载入史册 改变IT安全历程的十大里程碑
查看>>
UVA 624 CD
查看>>
Windows phone 7: DataBinding and UI Refresh系列教程
查看>>