强化学习 相关资源

  最近因为某个不可描述的原因需要迅速用强化学习完成一个小实例,但是之前完全不懂强化学习啊,虽然用了人家的代码但是在找代码的过程中还是发现了很多不错的强化学习资源,决定mark下来以后学习用

【1】如何用简单例子讲解 Q - learning 的具体过程?

  https://www.zhihu.com/question/26408259

【2】最简单的讲解Q-Learning过程的例子

  http://mnemstudio.org/path-finding-q-learning-tutorial.htm

  注:这个网站上还附带了代码,可惜都是用C++,java写的,看不懂,哎,感觉是一个不错的资源网站

  这篇博客是对应的中文翻译最简单的讲解Q-Learning过程的例子

  还有人用python按照上述教程完成了复现:

  https://github.com/JasonQSY/ML-Weekly/blob/master/P5-Reinforcement-Learning/Q-learning/Q-Learning-Get-Started.ipynb

具体代码如下:

import numpy as np
import random

In [44]:

# initial
q = np.zeros([6, 6])
q = np.matrix(q)

r = np.array([[-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]])
r = np.matrix(r)

gamma = 0.8

In [45]:

# training
for i in range(100):
    # one episode
    state = random.randint(0, 5)
    while (state != 5):
        # choose positive r-value action randomly
        r_pos_action = []
        for action in range(6):
            if r[state, action] >= 0:
                r_pos_action.append(action)

        next_state = r_pos_action[random.randint(0, len(r_pos_action) - 1)]
        q[state, next_state] = r[state, next_state] + gamma * q[next_state].max()
        state = next_state

In [46]:

# verify
for i in range(10):
    # one episode
    print("episode: " + str(i + 1))

    # random initial state
    state = random.randint(0, 5)
    print("the robot borns in " + str(state) + ".")
    count = 0
    while (state != 5):
        # prevent endless loop
        if count > 20:
            print(‘fails‘)
            break

        # choose maximal q-value action randomly
        q_max = -100
        for action in range(6):
            if q[state, action] > q_max:
                q_max = q[state, action]

        q_max_action = []
        for action in range(6):
            if q[state, action] == q_max:
                q_max_action.append(action)

        next_state = q_max_action[random.randint(0, len(q_max_action) - 1)]

        print("the robot goes to " + str(next_state) + ‘.‘)
        state = next_state
        count = count + 1

【3】这个人的博客有强化学习系列

  http://www.algorithmdog.com/ml/rl-series

【4】http://blog.csdn.net/u012192662/article/category/6394979

  粗看感觉写的还可以

  

时间: 2024-08-26 23:47:53

强化学习 相关资源的相关文章

ASP.NET学习相关资源

当我们在决定选择哪一个编程语言来做web开发的时候,很难选择,php.java.python这些语言是开源的,有很多的学习资源,但是当我们决定学习ASP.NET的时候,微软的东西都很贵,但是对于学生来说还是有很多免费的学习资源: 1.  IDE(Viusal Studio和SQL Server)等 这是学习一门编程语言的基本工具,然而这些工具非常贵,如果我们不想使用破解的软件有事一个学生的话微软给了我们一个很好的选择,DreamSpark这个网站,只需要用一个教育邮箱(@后边是学校域名的邮箱)就

我的centos7学习相关资源-不定时更新

centos7系统64位:CentOS-7-x86_64-Minimal-1511.iso   链接:http://pan.baidu.com/s/1mic4wsS 密码:e23s centos7系统32位:CentOS-7-i386-Minimal-1503.iso    链接:http://pan.baidu.com/s/1pKMjo0b 密码:51eg 虚拟机:vmware10  链接:http://pan.baidu.com/s/1kU5wwGv 密码:cojl

MVC5学习相关资源整理

1  官方 Getting Started http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started 英文不好,英文好的同学果然有优势,里头还有samples--. 2  各种客户端教程 html5 css3 js jquery  http://www.w3school.com.cn/  对我这种零基础的很重要啊 3  mvc5默认包含bootstrap  http://www.bootcss.com/ 官网 4  j

[Reinforcement Learning] 强化学习介绍

随着AlphaGo和AlphaZero的出现,强化学习相关算法在这几年引起了学术界和工业界的重视.最近也翻了很多强化学习的资料,有时间了还是得自己动脑筋整理一下. 强化学习定义 先借用维基百科上对强化学习的标准定义: 强化学习(Reinforcement Learning,简称RL)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益. 从本质上看,强化学习是一个通用的问题解决框架,其核心思想是 Trial & Error. 强化学习可以用一个闭环示意图来表示: 强化学习四元素

AngularJS的学习网站及相关资源整理

学习angularjs的网站及相关资源的整理,会不断更新. angularJs的官网:https://angularjs.org/       API文档:https://docs.angularjs.org/api 官方文档很详细,感觉是学习angularjs最好的方法 angularjs入门教程:http://www.runoob.com/angularjs/angularjs-tutorial.html 英语不太好可以先看这个,可以很快看完,看完就对angularjs有一个大概的了解, 有

深度强化学习(Deep Reinforcement Learning)的资源

来源:http://wanghaitao8118.blog.163.com/blog/static/13986977220153811210319/ Google的Deep Mind团队2013年在NIPS上发表了一篇牛x闪闪的文章,亮瞎了好多人眼睛,不幸的是我也在其中.前一段时间收集了好多关于这方面的资料,一直躺在收藏夹中,目前正在做一些相关的工作(希望有小伙伴一起交流). 一.相关文章 关于DRL,这方面的工作基本应该是随着深度学习的爆红最近才兴起的,做这方面的研究的一般都是人工智能领域的大

C++强化学习规划表

第一阶段 C语言加强以及C++语言详解(29天) 课程名称 课程内容 学习目标 C语言强化 · C语言基础复习(数据类型.变量.内存布局.指针基础) · C语言基础强化提高(C语言中的字符串.一维数组.二维数组) · C语言基础强化提高(一级指针,二级指针,三级指针实战,N级指针概念,指针数组和数组指针) · C语言基础强化提高(结构体.文件的使用) · 动态库的封装和设计 · 函数指针回调函数 · C语言面试题强化与提高 在基础班C语言知识点之上,掌握C语言深入技巧,为日后 做更大的项目打下坚

浅谈强化学习的方法及学习路线

介绍 目前,对于全球科学家而言,“如何去学习一种新技能”成为了一个最基本的研究问题.为什么要解决这个问题的初衷是显而易见的,如果我们理解了这个问题,那么我们可以使人类做一些我们以前可能没有想到的事.或者,我们可以训练去做更多的“人类”工作,常遭一个真正的人工智能时代. 虽然,对于上述问题,我们目前还没有一个完整的答案去解释,但是有一些事情是可以理解的.先不考虑技能的学习,我们首先需要与环境进行交互.无论我们是学习驾驶汽车还是婴儿学习走路,学习都是基于和环境的相互交互.从互动中学习是所有智力发展和

AI+游戏:高效利用样本的强化学习 | 腾讯AI Lab学术论坛演讲

3月15日,腾讯AI Lab第二届学术论坛在深圳举行,聚焦人工智能在医疗.游戏.多媒体内容.人机交互等四大领域的跨界研究与应用.全球30位顶级AI专家出席,对多项前沿研究成果进行了深入探讨与交流.腾讯AI Lab还宣布了2018三大核心战略,以及同顶级研究与出版机构自然科研的战略合作(点击 这里 查看详情). 腾讯AI Lab希望将论坛打造为一个具有国际影响力的顶级学术平台,推动前沿.原创.开放的研究与应用探讨与交流,让企业.行业和学界「共享AI+未来」. 彭健 美国伊利诺伊大学厄巴纳-香槟分校