1 .前言

深度增强学习Deep Reinforcement Learning是将深度学习与增强学习结合起来从而实现从Perception感知到Action动作的端对端学习End-to-End Learning的一种全新的算法。简单的说,就是和人类一样,输入感知信息比如视觉,然后通过深度神经网络,直接输出动作,中间没有hand-crafted engineering的工作。深度增强学习具备使机器人实现真正完全自主的学习一种甚至多种技能的潜力。

虽然将深度学习和增强学习结合的想法在几年前就有人尝试,但真正成功的开端就是DeepMind在NIPS 2013上发表的Playing Atari with Deep Reinforcement Learning一文,在该文中第一次提出Deep Reinforcement Learning 这个名称,并且提出DQN(Deep Q-Network)算法,实现从纯图像输入完全通过学习来玩Atari游戏的成果。之后DeepMind在Nature上发表了改进版的DQN文章Human-level Control through Deep Reinforcement Learning,引起了广泛的关注,Deep Reinfocement Learning 从此成为深度学习领域的前沿研究方向。

而Hinton,Bengio及Lecun三位大神在Nature上发表的Deep Learning综述一文最后也将Deep Reinforcement Learning作为未来Deep Learning的发展方向。引用一下原文的说法:

We expect much of the future progress in vision to come from systems that are trained end-to-end and combine ConvNets with RNNs that use reinforcement learning to decide where to look.

从上面的原文可见三位大神对于Deep Reinforcement Learning的期待。而显然这一年来的发展没有让大家失望,AlphaGo横空出世,将进一步推动Deep Reinforcement Learning的发展。

Deep Reinforcement Learning的重要关键在于其具备真正实现AI的潜力,它使得计算机能够完全通过自学来掌握一项任务,甚至超过人类的水平。也因此,DeepMind很早受到了Google等企业的关注。DeepMind 50多人的团队在2014年就被Google以4亿美元的价格收购。而15年12月份刚刚由Elon Musk牵头成立的OpenAI,则一开始就获得了10亿美元的投资,而OpenAI中的好几位成员都来自UC Berkerley的Pieter Abbeel团队。

Pieter Abbeel团队紧随DeepMind之后,采用基于引导式监督学习直接实现了机器人的End-to-End学习,其成果也引起了大量的媒体报道和广泛关注。去年的NIPS 2015 更是由Pieter Abbeel及DeepMind的David Silver联合组织了Deep Reinforcement Learning workshop。可以说,目前在Deep Reinforcement Learning取得开拓性进展的主要集中在DeepMind和UC Berkerley团队。

为了研究Deep Reinforcement Learning,DQN的学习是首当其冲的。只有真正理解了DQN算法,才能说对Deep Reinforcement Learning入门。要理解并掌握DQN算法,需要增强学习和深度学习的多方面知识,笔者在2014年底开始接触DQN,但由于对基础知识掌握不全,导致竟然花了近1年的时间才真正理解DQN的整个算法。因此,本专栏从今天开始推出 DQN 从入门到放弃 系列文章,意在通过对增强学习,深度学习等基础知识的讲解,以及基于Tensorflow的代码实现,使大家能够扎实地从零开始理解DQN,入门Deep Reinforcement Learning。本系列文章将以一周一篇的速度更新。另外要说明的一点是DQN已被Google申请专利,因此只能做研究用,不能商用。

2 .预备条件

一定的概率论和线性代数基础(数学基础)
一定的Python编程基础(编程基础,后面的代码实现将完全基于Tensorflow实现)

3. 强化学习是什么

强化学习中,一般用智能体Agent作为动作的发出者,通过与环境Environment的交互获得奖励Reward,那么强化学习考虑的问题就是智能体Agent和环境Environment之间交互的任务。比如一个智能体要走到桌子旁边,那么这个智能体所全部能接收感知的信息周围就是环境,而智能体所能接收到的环境信息称之为观察Observation,而观察的集合就是智能体所处的状态,称之为State。当智能体发出一个动作后,相应的环境和接收到的环境也会发生改变,而环境带给你的反馈就是Reward。假如智能体现在向前走了一步,那他所观察到的环境会发生改变,收到环境变化的好坏(离桌子更近还是更远)用Reward表示。

图片来自David Silver的课程的ppt

在每个时间点time-step Agent都会从可以选择的动作集合中选择一个可执行动作执行,这个动作集合可以是连续的也可以是离散的。

所以我们的目标就是要能获取尽可能多的Reward。而且是累计Reward而不单单是每次动作获得的Reward(可以类比为最优化中局部最优与全局最优)

在每个time-step Agent 根据当前的Observation 来获得下一步的 Action。由此可见状态State和动作Action存在映射关系,也就是一个state可以对应一个action,或者对应不同动作的概率(常常用概率来表示,概率最高的就是最值得执行的动作),状态与动作的关系其实就是输入与输出的关系,而状态State到动作Action的过程就称之为一个策略Policy,一般用π表示,也就是需要找到以下关系:

其中a是action,s是state。第一种是一一对应的表示,第二种是概率的表示。
强化学习的任务就是找到一个最优的策略Policy从而使Reward最多。

我们一开始并不知道最优的策略是什么,因此往往从随机的策略开始,使用随机的策略进行试验,就可以得到一系列的状态,动作和反馈:

这就是一系列的样本Sample。增强学习的算法就是需要根据这些样本来改进Policy,从而使得得到的样本中的Reward更好。由于这种让Reward越来越好的特性,所以这种算法就叫做增强学习Reinforcement Learning。

转载来源于DQN 从入门到放弃1 DQN与增强学习 - Flood Sung的文章 - 知乎
https://zhuanlan.zhihu.com/p/21262246

机器学习——强化学习概述相关推荐

  1. 强化学习 --- 概述

    C. 人工智能 - 强化学习 - 概述 概述 思路 Agent -> Action -> Environment Environment -> Reward -> Agent ...

  2. 强化学习笔记-强化学习概述

    强化学习笔记-强化学习概述 机器学习分类 强化学习与监督学习的异同点 强化学习基本原理 强化学习解决的是什么样的问题 强化学习分类 请分别解释随机性策略和确定性策略 回报.值函数.行为值函数三个指标的 ...

  3. 【学习笔记】强化学习1——强化学习概述

    强化学习概述 机器学习主要分为监督学习.非监督学习.强化学习.强化学习的训练样本没有标记,根据训练样本学习迭代获得最优策略,强化学习需要与环境不断地交互学习. 强化学习的基本原理是智能体从环境中接收一 ...

  4. python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)

    [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...

  5. 增强学习or强化学习概述

    增强学习or强化学习概述 强化学习是一个非常与众不同的"巨兽".它的学习系统(在强化学习语境中,一般称作智能体)能够观察环境,做出选择,执行操作,并获得回报(reward),或者以 ...

  6. 强化学习笔记1:强化学习概述

    七个字概括强化学习适用的问题:多序列决策问题 1 agent和environment         强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment) ...

  7. 杭州内推 | 之江实验室招聘机器学习/强化学习/联邦学习算法实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 之江实验室 之江实验室成立于2017年9月,坐落于杭州城西科创大走廊核心地 ...

  8. 机器学习 | 强化学习,解决决策问题的行家(上)

    http://www.woshipm.com/ai/2529645.html 本文笔者将与大家讲述:强化学习的基本原理.两个基本类型,以及基于这两个类型下的相关算法. 一般地,我们认为,机器学习领域最 ...

  9. 交互式机器学习/ 强化学习在图像领域中的应用

    交互式机器学习 参考: 深度学习在交互式图像分割中的应用 - 知乎 Nat. Methods | ilastik:为生物图像分析而生的交互式机器学习平台_DrugAI-CSDN博客 https://d ...

最新文章

  1. Android开发之sdcard读写数据(源代码分享)
  2. python模块使用_PYthon模块使用教程(最新).doc
  3. 一、烧写最小linux系统
  4. 「Apollo」Cyber RT 学习笔记
  5. Outlook Express 错误代码表
  6. 不会演讲的你,一开口就输了!
  7. 计算机教师资格考试试题,全国教师资格考试信息技术练习题(二)
  8. python-类的装饰器-主要给类添加属性用途
  9. 第 10 章 数组和指针
  10. IIS故障:World Wide Web Publishing无法启动 提示1721错误
  11. 工具类与工具函数 —— fatal.h
  12. 14. Controller
  13. windows10安装ninja过程记录
  14. you-get下载酷我音乐付费歌曲
  15. 山东省农村信用计算机社考试,山东省农村信用社计算机专业考试题.doc
  16. 图片路径不存在,替换问题图片
  17. python两张图合成一张_Python图像处理实现两幅图像合成一幅图像的方法【测试可用】...
  18. 医生学python_Python微医挂号网医生数据抓取
  19. 【预测模型】基于DNN深度神经网络实现minist数据集预测matlab源码
  20. 测试管理及项目测试流程

热门文章

  1. 2021-10-22Pupu的问题记录|1
  2. 【微信小程序】多多房产小程序V2.5.81全开源安装包+小程序前端,一款专属于您的置业顾问小程序源码
  3. 【Vue】快乐学习第四篇,组件访问及插槽使用
  4. DAY DAY UP 1
  5. Concurnas语言利用JVM开发高性能应用程序
  6. 讲解电脑重装系统后硬盘消失要如何解决
  7. nginx在Linux的安装和简单使用
  8. Java 之 数据库
  9. jedis的操作和使用
  10. jmeter-阶梯式性能指标监听