首页 > 其他分享 >强化学习

强化学习

时间:2022-12-10 11:05:41浏览次数:36  
标签:状态 概率 动作 St 学习 方向键 强化


目录​

第一讲:什么是强化学习

  1. 机械学习的分类​
  2. 强化学习的过程​
  3. 强化学习的理论基础​

第一讲:什么是强化学习​

1.机械学习的分类​


强化学习_状态转移


机器学习占据人工智能领域研究中很大的一部分。在机器学习下,又包括监督学习、非监督学习、以及强化学习三个主要分支。​

强化学习(RL)是机器学习(ML)的一个分支,它能随时间的推移,自动学习最优决策。​

当我们把深度学习与强化学习相结合的时候,就是我们这门课所要涉及的内容:深度强化学习(DRL),它可以对某一个状态或者某一个事物,提出决策。​

DRL实例

强化学习_状态转移_02

强化学习_强化学习_03


1)AlphaGo战胜李世石​

2)小老鼠在设置电击装置的迷宫中取得食物。小老鼠需要通过不断学习做出决策(找出路径),以受到最少的电击次数和最快时间为要求取得全部食物。​

2.强化学习的过程​

强化学习_方向键_04


强化学习_状态转移_05


模型运行过程:

强化学习_方向键_06


1)智能体观察到自己处于状态St(t时刻的状态)下​

小老鼠通过观察确定了自己在t时刻时在迷宫内的位置​

2)智能体做出决策,执行了决策动作​

小老鼠在通过对自己所处位置的认知,做出了动作(向上,向下,向左或者向右运动)​

3)智能体执行完决策动作后,环境随动作发生了改变,产生了新的状态。同时环境产生了与动作相对应的反馈信号Rt。​

小老鼠执行完动作,位置发生了改变,同时根据动作的不同,获得了不同的奖励(被电击、无事发生、取得食物)​

  1. 智能体观察到自己处于状态S t+1(t+1时刻的状态)下,S t+1变为当前时刻的状态St,返回步骤1)。我们可以把Rt+1也可以作为下一个状态的输入,也可以不把它作为下一个状态的输入。​

小老鼠通过观察确定当前时刻在迷宫中的位置。小老鼠可以选择把之前环境给出的反馈信号(电击、取得食物)进行记录和处理来辅助决策下一步动作,也可以完全不管该反馈信号。​

实例

强化学习_强化学习_07


每一帧游戏图像都可以作为状态信号输入给神经网络,玩家根据状态会做出决策,执行与决策对应的动作,动作执行完成后会得到新的状态,同时得到上一步动作后游戏给出的奖励信号。将新的状态和奖励信号再次输入给神经网络。​

体现在游戏中就是玩家为了通关和获取最高分,会不断优化自己的决策和动作。​

3.强化学习的理论基础​

状态集:从S0到Sn的所有时刻状态的集合(有限多个)。​

强化学习_强化学习_08


马尔可夫性质:取任意时刻的St为当前状态,St以前为过去的状态,St以后为将来的状态,则将来某一时刻的状态St+1一定为过去所有时刻状态的函数。即​

强化学习_方向键_09


简化该模型,如果我们仅仅知道St的状态就可以知道St+1及以后的所有状态,我们就可以说,该模型符合马尔可夫性质。​

强化学习_方向键_10


3.1马尔可夫过程定义​

1)首先从状态集中取出有限个状态(本次取出的为S0,S1,S2,S4,即设定该过程只有四种状态)​

强化学习_状态转移_11


  1. 建立状态转移矩阵​

强化学习_状态转移_12


状态转移矩阵描述的是源状态转移至另目标状态发生的概率。​

以第一行为例:​

源状态为S0,由S0状态转移至S0的状态的概率为0.4,由S0状态转移至S1的状态的概率为0.2,由S0状态转移至S2的状态的概率为0.1,由S0状态转移至S3状态的概率为0.3。​

马尔可夫过程正式定义

强化学习_状态转移_13


实例1​

强化学习_方向键_14


当前状态为晴天时,下一状态为晴天的概率为0.8,下一状态为雨天的概率为0.2.​

转化图

强化学习_状态转移_15


实例2​

强化学习_状态转移_16


转化图​

强化学习_方向键_17


3.2如何建立转移矩阵​

强化学习_状态转移_18


以实例2为例,如何得出从一个状态转移至另一个状态的概率?​

其实现过程如下:​

  1. 截取出系统状态的观察片段
  2. 将观察片段的状态计数
  3. 根据计数得出转移矩阵

3.3马尔可夫奖励过程​

在状态转移之间引入价值的概念,可以通过分数量化状态转移过程的价值。​

强化学习_状态转移_19


例如,可以将源状态(家)->目标状态(家)这一过程计-1分,将源状态(家)->目标状态(咖啡)计1分等。​

实例

强化学习_方向键_20


取St为当前时刻的状态,St+1,St+2....为预测的将来的状态,我们依次给将来的状态赋分Rt+1,Rt+2....,将预测的将来状态依次赋分相加可得该过程的总分Gt。​

引入折扣率γ​

强化学习_状态转移_21


因为St+1,St+2.....状态是未发生的状态,都会有相对应的转移概率。以St+2为例,该过程为St状态->St+1状态->St+2状态,状态发生的概率会依次递减,引入折扣率γ修正该过程的分数Gt。​

根据预测过程的状态可以得到不同的分数Gt​

强化学习_强化学习_22


将每个过程得到的分数Gt取平均​

强化学习_强化学习_23


上述过程中St后会依次转移6个状态。穷举出所有状态链,并依次计算状态链的得分Gt,最终对Gt取期望,因为该期望仅与所选时刻的状态St有关,所以可以得到关于St的函数V(s)。根据初始St的不同,后续状态链的得分Gt也会发生改变,进而改变V(s)的值。V(s)就是对应St下的状态价值。​

实例​

强化学习_状态转移_24


取St为喝咖啡,该模型没有终点,所以状态转移会不断发生,Gt也会不断增加。但根据γ值取值的不同,所以V(s)最终应该会收敛于某值或者发散为∞。​

强化学习_状态转移_25


根据γ取值不同,会得到不同的V(s)​

1)取γ为0​

取初始状态St为聊天,则该St下的状态价值记为V(chart):​

强化学习_状态转移_26


同理根据初始状态St不同得出不同的V(s)值:​

强化学习_状态转移_27


2)取γ为1​

强化学习_方向键_28


  1. 取γ为0~1​

强化学习_方向键_29


我们取第n次的状态Sn,计算从Rt+1到Rt+n的n项和求得Gt,进而取得V(s)。​

n由下式计算:​

强化学习_状态转移_30


当此式成立时,可以认为取得的n能够使V(s)收敛。​

强化学习_方向键_31


  1. learning方法求取奖励过程的状态价值此需要后续学习。​

3.4马尔可夫决策过程

强化学习_方向键_32




强化学习_强化学习_33

强化学习_强化学习_34

强化学习_强化学习_35


强化学习_状态转移_36


引入动作维度前:状态i->状态j的转移概率。​


引入动作维度后:在动作k的情况下,状态i->状态j的转移概率,在动作k+1的状态下,状态i->状态j的转移概率,两者因为动作的不同,发生状态i->状态j的转移概率显然也是不同的。​

同样可以将二维矩阵下的奖励过程拓展到三维矩阵,如在动作k的状态下,状态i->状态j,赋分为1分。在动作k+1的状态下,状态i->状态j赋分为2分等。​

实例

摁方向键操纵机器人移动,但是方向键有一定的概率失灵(0.1),当方向键正常工作(0.9)时,机器人按照方向键的指令移动,当方向键失灵时,机器人原地不动。​

强化学习_状态转移_37


强化学习_方向键_38


本实例中,各方向键失灵的概率均为0.1,但也存在上方向键失灵的概率为0.1,左方向键失灵的概率为0.2,右方向键失灵的概率为0.3的情况,失灵的情况也可以表现为摁上方向键机器人向左,或者向右移动或者原地不动的情况。这样机器人的状态转移概率显然与操作指令即摁方向键这一动作相关联,即可建立三维的状态转移矩阵。​

3.5策略

强化学习_强化学习_39


实例

在马里奥游戏中,在这一帧的游戏画面上(在当前状态下),玩家可能会做三种动作(动作集),向上的概率0.7,为向左的概率为0.2,向右的概率为0.1。​

强化学习_强化学习_40


那么我们可以说在此状态下的策略为:​

动作action

左移​

右移​

上移​

概率

0.1​

0.2​

0.7​


以上表格可以通过数学表达式体现:​

强化学习_状态转移_41


即策略是在给定状态St = s下,执行动作集中的某一动作a的概率。​

决策即为选出策略(动作概率分布)中,选择某一动作集中的动作去执行。​

小结

强化学习_状态转移_42


  1. 确定学习目标:深度强化学习(DRL)
  2. 强化学习过程​

强化学习_方向键_43


3)强化学习的理论基础​

标签:状态,概率,动作,St,学习,方向键,强化
From: https://blog.51cto.com/u_15862591/5927295

相关文章

  • html学习笔记二 表单标签
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <metaname="viewport"content=......
  • 【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?
    通过前面的学习,我们已经知道,怎么将本地自己制作的镜像发布到阿里云远程镜像仓库中去。但是在实际工作开发中,一般,我们都是将公司的镜像发布到公司自己搭建的私服镜像仓库中,那......
  • for循环的使用与学习
    在Linux中使用BashFor循环你会嘛!原创 入门小站 入门小站 2022-12-0921:50 发表于湖北收录于合集#Linux645个入门小站分享运维技巧及10k+Stars的开......
  • 人工智能与机器学习
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • 【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?
    通过前面的学习,我们已经知道,怎么将本地自己制作的镜像发布到阿里云远程镜像仓库中去。但是在实际工作开发中,一般,我们都是将公司的镜像发布到公司自己搭建的私服镜像仓库中,......
  • PyTorch中学习率调度器可视化介绍
    神经网络有许多影响模型性能的超参数。一个最基本的超参数是学习率(LR),它决定了在训练步骤之间模型权重的变化程度。在最简单的情况下,LR值是0到1之间的固定值。选择正确的......
  • 算法学习笔记(37)——扩展欧几里得算法
    扩展欧几里得算法扩展欧几里得算法欧几里得算法/辗转相除法(Euclideanalgorithm)裴蜀定理(Bézout定理)扩展欧几里得算法(ExtendedEuclideanalgorithm)求解线性同余方......
  • 算法学习笔记(36)——快速幂
    快速幂快速幂快速幂快速幂求逆元快速幂用于快速(在\(O(\logk)\)的时间复杂度之内)求出\(a^k\bmodp\)的结果,\(1\lea,p,k\le10^9\),核心是反复平方法。算......
  • 算法学习笔记(35)——欧拉函数
    欧拉函数欧拉函数用公式求欧拉函数用筛法求欧拉函数欧拉函数:在数论中,对正整数\(N\),欧拉函数\(\varphi(N)\)是小于等于\(N\)的正整数中与\(N\)互质的数的......
  • 算法学习笔记(34)——约数
    约数约数约数的定义算数基本定理的推论正约数集合正约数个数正约数之和一、试除法求约数二、约数个数三、约数之和四、最大公约数欧几里得算法更相减损......