“敢于尝试,才有突破”

2017年5月27日,当今世界排名第一的中国棋手柯洁与AlphaGo 2.0的三局对战落败。该事件标志着最新的人工智能技术在围棋竞技领域超越了人类智能,借此机会,介绍一下AlphaGo背后的秘密——增强学习技术。

增强学习(Reinforcement Learning),也称强化学习,是一种在过程中学习提高机器智能的框架。该框架通常可用马尔可夫决策过程(Markov Decision Process)概念来描述,即假设存在智能体(Agent)在约束环境下执行某动作(Action),动作的执行会改变智能体状态(State),其结果会带来奖赏或惩罚。基于此,智能体通过探索最优策略(Policy)或是最大化长期回报(Reward),进而选择最优的执行动作序列。

增强学习应用的核心是建立智能体模型,包括几个核心概念:

  • 状态:智能体内在属性的定量描述
  • 动作:使智能体状态迁移的行为
  • 策略:状态和动作的映射转移函数,例如状态转移概率等
  • 回报:评价智能体执行某动作好坏的价值函数
  • 环境:与智能体交互的模型,例如建立的马尔可夫决策模型等

根据问题不同,智能体常常使用一个或多个上述概念进行建模,进而可将增强学习粗略分为基于策略的增强学习、基于值(回报)的增强学习,以及基于模型的增强学习。

基于智能体模型,增强学习以“状态”作为输入,通过可能的“动作”与环境进行交互,以“回报”作为动作的评价,利用该过程中累积的“尝试”数据进行训练,从而学习得到最优的策略函数。

相比于经典的有监督学习方法,增强学习无需标注数据,某种意义上可以看作“延迟标注数据”的监督学习方法。增强学习更关注于在线决策的性能,在难以计算最优解时可给出次优解。

相对于经典的近似动态规划方法,增强学习无需显式的建立马尔可夫决策数学模型,更适合求解计算状态空间更加复杂的问题,即人类操作层次的任务,例如游戏AI、无人驾驶、机器人等。

然而,对于语音识别、NLP、计算机视觉等一些很难定义长期回报的应用,增强学习便难以适用。另一方面,智能体建模常常过于抽象,因此一些增强学习的应用距离实际相差还较大。

回到开头,战胜柯洁的Alpha Go使用的便是最新的深度增强学习技术,即在上述介绍的增强学习概念基础上使用深度神经网络描述值函数、策略或者模型。从这项超越现今人类智能的技术上,我们或许可以得到如下启发:

  1. 基于深层卷积神经网络判断围棋棋盘的形势,无需数据特征工程,同时能处理巨大的状态空间;
  2. 历史棋手对弈数据有限,但可通过自我博弈显著提升人工智能但策略能力;
  3. 增强学习技术并不是万能的,它更适合游戏规则确定的应用。

最后,小虾米还将文章内容总结成了更直观的思维导图,需要的朋友,请在数据小虾米公众号后台回复“增强学习”,即可获取下载地址。


数据科学武林风起云涌,
随数据小虾米共闯江湖~

增强学习 | AlphaGo背后的秘密的更多相关文章

  1. (转) 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文)

    本文转自:http://mp.weixin.qq.com/s/aAHbybdbs_GtY8OyU6h5WA 专题 | 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文) 原创 201 ...

  2. 马里奥AI实现方式探索 ——神经网络+增强学习

    [TOC] 马里奥AI实现方式探索 --神经网络+增强学习 儿时我们都曾有过一个经典游戏的体验,就是马里奥(顶蘑菇^v^),这次里约奥运会闭幕式,日本作为2020年东京奥运会的东道主,安倍最后也已经典 ...

  3. 常用增强学习实验环境 II (ViZDoom, Roboschool, TensorFlow Agents, ELF, Coach等) (转载)

    原文链接:http://blog.csdn.net/jinzhuojun/article/details/78508203 前段时间Nature上发表的升级版Alpha Go - AlphaGo Ze ...

  4. 5.JavaScript优化及导航菜单背后的秘密

    JavaScript优化及导航菜单背后的秘密 伍星 学习目标1.进一步了解前端优化 学习如何编写良好的 JavaScirpt2.通过导航的学习,了解JavaScirpt的应用 JavaScript在用 ...

  5. 增强学习(三)----- MDP的动态规划解法

    上一篇我们已经说到了,增强学习的目的就是求解马尔可夫决策过程(MDP)的最优策略,使其在任意初始状态下,都能获得最大的Vπ值.(本文不考虑非马尔可夫环境和不完全可观测马尔可夫决策过程(POMDP)中的 ...

  6. Multi-armed Bandit Problem与增强学习的联系

    选自<Reinforcement Learning: An Introduction>, version 2, 2016, Chapter2 https://webdocs.cs.ualb ...

  7. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)

    1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名字来源于世界著名的赌城蒙特卡罗,而蒙特卡罗方法正是以概率为基 ...

  8. 增强学习————K-摇臂赌博机

    探索与利用增强学习任务的最终奖赏是在多步动作之后才能观察到,于是我们先考虑最简单的情形:最大化单步奖赏,即仅考虑一步操作.不过,就算这样,强化学习仍与监督学习有显著不同,因为机器要通过尝试来发现各个动 ...

  9. 增强学习(Reinforcement Learning and Control)

    增强学习(Reinforcement Learning and Control)  [pdf版本]增强学习.pdf 在之前的讨论中,我们总是给定一个样本x,然后给或者不给label y.之后对样本进行 ...

随机推荐

  1. Thinkphp模板简单入门

    Thinkphp模板概述: ThinkPHP内置了一个基于XML的性能卓越的模板引擎,这是一个专门为ThinkPHP服务的内置模板引擎,使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签, ...

  2. GitHub 常用命令使用介绍(新同学入门)

    经济在不断发展,社会在不断进步,以往的互联网在现在看来都可以称为传统互联网了,因为技术不断的在突破和革新. 本文主要介绍一下版本管理工具,我猜测很多人还是用SVN.CVS或者Resion,但是,今天我 ...

  3. JS中常用的几种时间格式处理-【笔记整理】

    //此处整理点平时常用到的时间格式处理方法 ------------------------------------------- //时间格式化函数 Date.prototype.format = ...

  4. php学习之重要内置函数

    1. require_once()函数 此函数在脚本执行期间包含并执行指定的文件,与require语句类似,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含. require_once()函数 ...

  5. Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦

    个人博客 对于技术人员来说,拥有自己的个人博客应该是一件令人向往的事情,可以记录和分享自己的观点,想到这件事就觉得有意思,但是刚开始写博客的时候脑海中是没有搭建个人博客这一想法的,因为刚起步的时候连我 ...

  6. Vector的浅析

    Vector 可实现自动增长的对象数组.java.util.vector 提供了向量类(vector)以实现类似动态数组的功能.在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提 ...

  7. JAVA并发编程实战---第三章:对象的共享(2)

    线程封闭 如果仅仅在单线程内访问数据,就不需要同步,这种技术被称为线程封闭,它是实现线程安全性的最简单的方式之一.当某个对象封闭在一个线程中时,这种方法将自动实现线程安全性,即使被封闭的对象本生不是线 ...

  8. 命令模式(Command Pattern)

    命令模式属于对象的行为模式.命令模式又称为行动(Action)模式或交易(Transaction)模式.命令模式把一个请求或者操作封装到一个对象中.命令模式允许系统使用不同的请求把客户端参数化,对请求 ...

  9. Jquery datatable 动态隐藏列(根据有无值)

    一场景: 前端利用datatable初始化的时候会向后端调用数据,需求是 要动态的使某一列根据传回来的一个标志位是否有值来决定显示与否 这是当前传回值有活动优惠幅度的情况下 这是没有活动优惠的情况下 ...

  10. MyBatis之级联——一对多关系

    上次我们讲到了MyBatis的一对一关系的表示,简单回顾一下一对一关系就是一个学生只有一个学生证.那么什么是一对多关系呢?一个学生有多个课程这就是一对多的关系.我们结合上一章中的学生和学生证,在此基础 ...