强化学习Reinforcement Learning概念理解篇(一)
在学习强化学习之前,应该对强化学习有一个大致的了解,即去分析一下强化学习的结构或者组成元素:
什么是强化学习?所谓强化学习,就是在与环境的互动当中,为了达到某一个目标而精心的学习过程,因此称之为Goal-directed learning from interaction with the environment,这其实就是强化学习的第1层结构。可将其称之为强化学习的基本元素,包括:第一Agent,第二Environment,第三Goal。其中Environment是环境,Goal是目标,与环境进行互动的主体称为Agent玩家。
这个Agent的中文翻译很成问题,有人翻译为代理,比较接近于它字面上的意思,有人翻译为主体,也就比较译义。还有得翻译为智能体,就是比较贴切与人工智能了。那么,我实际上不会去翻译这个字,很多时候就直接称为Agent。不过从中文的理解上来说,我们知道Agent这个词,它有特工的含义。这样理解其实比较有意思。另外,我更倾向于玩家,强化学习的过程,在很大程度上就像是一场游戏。
强化学习现在最为领先的应用于领域也就是棋牌、游戏,包括最开始的Atari-雅达利游戏以及强化学习的封神之战围棋,到之后Dota、星际争霸等等。
那么,从学习的角度上来说,我觉得就把强化学习看成一场游戏,更有意思一些,Agent你就理解为玩家,当然这不是很重要了,重要的是理解强化学习的第1层结构,也就是基本元素Agent玩家,Environment环境以及Goal目标。
强化学习是玩家在与环境的互动当中,为了达成一个目标而进行的学习过程。
有了玩家和环境,环境可以说就是这个游戏本身,那么这个游戏的玩法是什么,玩家的目标又是什么呢?这就是强化学习的第2层结构,称之为主要元素,包括第一State状态,第二Action行动,第三Reward奖励。
为什么称之为主要元素呢?因为整个强化学习的过程就是围绕着这三个元素展开的,具体来说,首先,玩家和环境会处于某种状态State,这个状态的含义很广泛,可以说包括了所有的相关信息。
如果说这个游戏是英雄联盟,那么,状态就应该包括敌方和队友的位置、等级、技能、双方的经济,野区的情况以及玩家自己的情况等等等等。如果说这个游戏是一场篮球,那么状态就应该包括所没有球员的位置,速度,球在谁手上,地板滑不滑等等。也就是说,状态是可以很复杂的。
举一个简单的例子-围棋,围棋的状态非常简单,也就是棋盘上361个落子点的状态的整体,对于每一个落子点来说,可以有黑棋、白棋、空三种状态,那么,整个围棋的状态,在理论上只有3的361次方。虽然这是一个巨大的天文数字,但是总的来说,围棋的状态是怎么样的,是很容易去分析的。
那么,继续以围棋为例,在一个状态之下,玩家需要做出某种行动,也就是Action。比如黑棋先手,当前的状态是棋盘上没有落子,黑棋则可以采取361种可能的行动,可以在任何一个位置落子,当黑棋采取了某一行动之后,比如黑棋走了星位,状态将会发生变化。比如白棋同样走星位,那么这就进入了下一个状态,星位再次做出行动。State和Action,状态和行动的往复就构成了强化学习的主体部分。
什么是Reward奖励呢?Reward是指Agent在一个状态之下采取了特定的行动之后,所得到的及时的反馈。在强化学习中,Reward通常是一个实数,并且可能是0。比如在围棋中玩家的目标是赢得棋局,那么只有在达到赢棋的状态时,才会有一个大于0的奖励,我们可以规定赢棋的奖励为1。输棋或者和棋的奖励为0,而在棋局结束之前,任何一次行动实际上得到的奖励都为0,如果是在一场篮球比赛中,当然玩家的目标仍然是赢得比赛,不过获胜的条件变成了得分数大于对手。那么我们可以规定奖励为己方投篮得分数以及对方投篮得分的相反数。
总的来说,奖励应该是由最终的目标所决定的。如果在围棋中对吃掉对方的子进行奖励,那么强化学习的结果就会倾向于吃掉对方的子,而围棋获胜的条件是围地,而不是吃子,一味的吃子可能适得其反,所以根据最终的目标,合理的设置奖励对于强化学习来说是很重要的。
反正强化学习的目的则是最大化总的奖励,也就是整个游戏过程中所获得的奖励之和。奖励是一个即时的反馈,而目标是一个长远的结果。这两者之间的关系是需要理解清楚的,那么以上就是强迫学习的第2层结构,我称之为主要元素,包括第一State状态,第二Action行动,第三Reword奖励。
最后则是强化学习的第3层结构,我称之为核心元素,一共有两个:policy策略以及Value价值。策略很好理解,就是指在某一个状态下应该采取什么样的行动?那么简单的说,在数学上策略,其实就是一个函数,他的自变量,或者说输入是一个状态,而因变量或者说输出则是一个行动,在围棋中将当前棋盘的状态告诉这个策略函数,它则会告诉你下一步应该在哪里落子。很显然,强化学习想要达到的最终效果就是一个好的策略。
所以说Policy策略是强化学习的核心元素之一。那么,什么是Value价值呢?价值同样是一个函数,并且策略函数就取决于价值函数,所以毫无疑问,价值也是强化学习的核心元素。价值函数通常有两种,第一种称为State Value状态价值函数。顾名思义,它的输入是一个状态,而输出则是一个实数,这个实数就称为这个状态的价值。价值的含义很关键,它指的是预期将来会得到的所有奖励之和,也就是说处于当前这一状态的情况下,玩家在将来能够得到的所有奖励的一个期望值。注意玩家的目标就是得到了奖励之和尽可能大,因此,通过状态价值函数,玩家应该选择进入价值尽可能大的状态,而这是通过特定的行动来实现的,这就是状态价值函数决定了玩家的策略,另一种价值函数称为State-Action Value状态行动价值函数。顾名思义,它指的不单单是一个状态所对应的价值,而是在特定状态下采取某种行动所具有的价值,同样,价值指的是在将来能够得到的所有奖励的一个期望值,那么,显然在一个特定的状态下,根据状态行动价值函数,玩家应该选择价值最大的那一个行动,这就是状态行动价值函数决定了玩家的策略。
综上,大家应该理解了,为什么Policy策略和Value价值是强化学习的核心元素。强化学习所要学习的东西,实际上就是一个好的价值函数,而一个好的价值函数决定一个好的策略。当然有一部分算法可以不依赖于价值直接学习策略,不过主流的,或者说,核心的强化学习算法通常都是基于价值的。
本节主要分析了强化学习的结构,首先,什么是强化学习?强化学习是Agent在于环境的互动当中,为了达成一个目标而进行的学习过程,我把这称之为强化学习的第1层结构,也就是基本元素,包括第一Agent玩家、第二environment环境、第三Goal目标。强化学习的第2层结构称之为主要元素,包括第一state状态、第二Action行动、第三Reword奖励。最后则是强化学习的第3层结构,称之为核心元素policy策略和Value价值。
强化学习Reinforcement Learning概念理解篇(一)相关推荐
- 强化学习(Reinforcement Learning)入门知识
强化学习(Reinforcement Learning) 概率统计知识 1. 随机变量和观测值 抛硬币是一个随机事件,其结果为**随机变量 X ** 正面为1,反面为0,若第 i 次试验中为正面,则观 ...
- 强化学习(Reinforcement Learning)入门学习--01
强化学习(Reinforcement Learning)入门学习–01 定义 Reinforcement learning (RL) is an area of machine learning in ...
- 强化学习 (Reinforcement Learning)
强化学习: 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能 ...
- 强化学习 Reinforcement Learning(三)——是时候用 PARL 框架玩会儿 DOOM 了!!!(下)
强化学习 Reinforcement Learning(三)-- 是时候用 PARL 框架玩会儿 DOOM 了!!!(下) 本文目录 强化学习 Reinforcement Learning(三)-- ...
- 强化学习(Reinforcement Learning)
背景 当我们思考学习的本质时,我们首先想到的可能是我们通过与环境的互动来学习.无论是在学习开车还是在交谈,我们都清楚地意识到环境是如何回应我们的行为的,我们试图通过行为来影响后续发生的事情.从互动中学 ...
- 强化学习(Reinforcement Learning)中的Q-Learning、DQN,面试看这篇就够了!
文章目录 1. 什么是强化学习 2. 强化学习模型 2.1 打折的未来奖励 2.2 Q-Learning算法 2.3 Deep Q Learning(DQN) 2.3.1 神经网络的作用 2.3.2 ...
- 强化学习Reinforcement Learning
Abstract Abstract 背景 强化学习算法概念 背景 (1) 强化学习的历史发展 1956年Bellman提出了动态规划方法. 1977年Werbos提出只适应动态规划算法. 1988年s ...
- 强化学习 (Reinforcement Learning) 基础及论文资料汇总
持续更新中... 书籍 1. <Reinforcement Learning: An Introduction>Richard S. Sutton and Andrew G.Barto , ...
- Deep QLearning算法详解(强化学习 Reinforcement Learning)
一.算法详解 文章最后附有博主自己实现的深度qlearning玩space invader游戏 本文介绍的是基于神经网络的qlearning算法.我们知道传统的qlearning算法只能处理状态和动作 ...
最新文章
- AI如何赋能金融行业?百度、图灵深视等同台分享技术实践
- 机器学习笔记七:损失函数与风险函数
- 突破androidstudio 的控制
- 0311互联网新闻 | 知乎增加“视频回答”入口;苹果将最早于今年年底生产AR设备...
- Django 3.2.5博客开发教程:HelloWorld欢迎页面
- 湖南计算机职业中专学校,()湖南职业中等专业学校介绍全日制中专学校2021招生计划...
- RocketMQ消息的存储结构
- CodeForces - 620E New Year Tree(线段树+dfs序+状态压缩)
- XSS:RPO(Relative Path Overwrite)攻击
- 张一鸣这一条微博,阿里P8的我,竟然想了一夜
- linux nginx 清除缓存文件,linux nginx 内置缓存怎么去掉
- spring aop和事务同时开启带来的一些问题
- js获取某年某月某天是一年中的第几周
- 【黑灰产犯罪研究】DDOS攻击
- 学会一招!如何利用 pandas 批量合并 Excel?
- 华大单片机HC32L130使用内部RCH时钟源倍频24M外设PCLK到48M
- 详解Java的自动装箱与拆箱(Autoboxing and unboxing)
- BZOJ 1812 IOI 2005 riv
- Spring Boot整合Freemarker
- html游戏导出存档,Savedatafiler使用教程 Savedatafiler导出cia存档
热门文章
- C++ std::regex | 正则表达式
- 我为什么反对用各类框架
- html实现播放器下一集方法,本地化DPLAYER和CKPLAYER播放器自动下一集
- odroid平台——ASUS Xtion Pro Live + Openni + ROS搭建(Xu4升级版)
- 解决gns3连接不上本地的几种情况
- 复合辛普森公式求解定积分 matlab
- 编写一个函数,判断某个数是否为水仙花数。
- SDWebImage 第三方框架的使用——网络图片的处理操作
- transform改变图片大小以及位置
- docker更换国内镜像(网易docker镜像)解决docker下载镜像慢问题