【王树森】深度强化学习(DRL)


【王树森】深度强化学习(DRL)

注:以下内容中,大写的为随机变量,小写的为观测值

强化学习基础

Terminologies

image-20220406144008102

这里$\pi$ 是一个离散的概率密度,在当前状态$s$的情况下,做出$a$动作的概率

image-20220406144318818

强化学习的目标就是获得的奖励尽量要高

image-20220406144638115

image-20220406144901171

agent与enviroment交互

image-20220406145146387

强化学习的随机性

动作的随机性 and 状态转移的随机性

image-20220406145259007

image-20220406145512607

过程

image-20220406145740342

Reward and Return(回报)

image-20220406150406051

引入$\gamma$作为”折扣”

image-20220406150311759

image-20220406150939506

Value Function

  • 行动价值函数(Action-Value Function)
  • 状态价值函数(State-Value Function)

$U_t$依赖于未来$S_t,S_{t+1},S_{t+2}… and\ A_t,A_{t+1}…$,是一个随机变量

image-20220406151536993

行动价值函数$Q_{\pi}$ 和策略$\pi$有关,它是对随机变量$U_t$求条件期望得到的一个数;最优行动价值函数$Q^*$是所有$\pi$中,让$Q$最大的那个$\pi$

image-20220406152828798

状态价值函数可以对某一局面进行打分

image-20220406153726031

它对$Q_{\pi}$中的A求期望消掉A

image-20220406153751889

image-20220406153856824

Summarize

image-20220406154744815

基于策略或者基于价值

image-20220406155554540

检验平台-Gym

11111

image-20220406160114826

render()渲染,展示环境

image-20220406160425164

Summary

image-20220406161126581

image-20220406161330030

image-20220406161532616

价值学习(Value-Based)

上节课我们学习了行动价值函数(Action-Value)

$U_t$是一个随机变量,依赖于将来的行动Action和状态S,我们$U_t$求期望,消除未来的影响,使得$Q_{\pi}(s_t,a_t)$依赖于$s_t,a_t,\pi$。

image-20220407213539771

进一步,我们可以求$\pi$最大化,求最优状态价值函数$Q^*$ ,$Q^*(s_t,a_t)$意味着在$s_t$状态加,做出行动$a_t$所得到的价值分数

image-20220407213829512

DQN(Deep Q-Network (DQN))

image-20220407214756368

$Q(s,a;w)$ :神经网络的参数是$w$,输入是$s$,输出是做出动作$a$的价值分数

image-20220407214945521

image-20220407215347810

做出动作$up$的价值分数最高,所以选择$up$,然后状态转移函数$p(|)$会人random一个新的状态

image-20220407215402636

根据输入$s_t$,选择价值分数最大的动作$a_t$

image-20220407215543076

怎么训练DQN?

  • TD Learning(不完成旅程也能更新参数)
    1. Sarsa
    2. Q-learning
    3. Multi-Step TD Target
Temporal Difference (TD) Learning

image-20220407221012136

时序差分算法的目标就是让$TD\ Error$尽可能的小,趋近于0

image-20220407221107415

$\gamma$ 是介于0 和 1之间的折扣率

image-20220407221400441

image-20220407221731179

image-20220407223107328

image-20220407223132861

image-20220407224025114

Summary

image-20220407224254280

image-20220407224426374

策略学习(Policy-Based)

策略函数Policy Function

image-20220410145317863

由于输入的状态$s$是多种多样的,所以我们可以用一个函数来近似

image-20220410145724667

image-20220410145800853

策略梯度

image-20220410150313207

image-20220410150345678

这里我的理解是:选择最优的策略动作,才能最大化状态价值函数$V(s;\theta)$,所以现在我们的目的变为了最大化$V(s;\theta)$,我们用梯度上升算法来更新$\theta$

image-20220410150647616

Policy Gradient 的推导

image-20220410152738513

image-20220410152747888

这里我们加设$Q_{\pi}$函数与$\theta$无关,但实际上是有关的,所以这里推导是不严谨了,但是方便理解

image-20220410152941922

image-20220410153002529

image-20220410153056975

image-20220410153115024

image-20220410153123226

image-20220410153258705

因为神经网络是一个很复杂的函数,我们无法对此进行积分,所以我们用蒙特卡洛方法进行近似

image-20220410153923601

因为$g(\widehat{a},\theta)$是策略梯度的无偏估计,所以我们用它来近似策略梯度

image-20220410154013275

image-20220410154603754

Summary For 策略梯度算法(梯度上升更新$\theta$)

image-20220410155718966

image-20220410160158450

image-20220410164828795

image-20220410165048955

Summary

image-20220410170124341

Actor-Critic Methods

image-20220410201847055

image-20220410202502258

image-20220410204004353

image-20220410204731343

image-20220410204755256

让运动员的平均分越来越高,并且让裁判的打分越来越精准

image-20220410204857526

image-20220410205636174

image-20220410205712046

image-20220410212401511

image-20220410212416267

图解

运动员根据$state$做出$Action$

image-20220410213118659

裁判会根据做出的动作$a$和$state$进行打分,并将分数反馈给运动员

image-20220410213043711

运动员会根据分数来调整自己的动作(迎合裁判)

image-20220410213053209

裁判也会提高自己的水平(根据Reward $r$),以此让运动员做出更好的动作

image-20220410213428597

Summary of AC算法

image-20220410214556084

第九步,$q_t$和$\delta_t$ 都对,不过$\delta_t$ 是叫做带baseline的策略梯度算法

image-20220410214913193

image-20220410215003521

Summary

image-20220410221300023

image-20220410221317599

image-20220410221422626

实例分析:AlphaGo的基本原理

image-20220411090519196

image-20220411090526718

image-20220411090535634

image-20220411091057001

image-20220411091111303

image-20220411091404630

image-20220411091509588

1. Behavior Cloning

image-20220411094646849

image-20220411094750375

image-20220411094801389

image-20220411094827138

image-20220411095019226

image-20220411095043614

2. 训练策略网络

image-20220411095412839

image-20220411095731972

这里没有折扣,如果赢了,我们认为之前下的每一步棋都是好棋,如果输了,认为每一步棋都是臭棋(没有办法区分一步棋是好是坏)

image-20220411095852009

image-20220411104755790

image-20220411104956481

直接用策略网络还是不够好,所以采用蒙特卡洛树搜索+策略网络的方法

image-20220411105137788

用蒙特卡洛树搜索需要训练一个价值网络,这个价值网络是对$状态价值函数v$的近似,而不是对行动价值Q的近似

3. 训练价值网络

image-20220411105257686

image-20220411105616742

image-20220411105725110

这并不是之前讲的AC算法,这里需要先训练策略网络,然后再根据策略网络训练价值网络。

如下第一步Play a game to the end中用到了策略网络进行博弈

image-20220411110516785

4. 蒙特卡洛树搜索

image-20220411150934676

image-20220411151543765

image-20220411152349569

image-20220411153158719

image-20220411153836217

image-20220411153846943

image-20220411153901618

image-20220411154432315

image-20220411154454624

image-20220411155032532

image-20220411155107351

image-20220411155120749

image-20220411155233107

image-20220411155331825

image-20220411155348539

一开始$Q(a)$为零,所以$score$的分数主要取决于$\pi(|)$,之后随着搜索次数的增加,$N(a)$增大,第二项变小,$score$的分数主要取决于$Q(a)$

image-20220411155644266

经过许多次搜索迭代之后

$Q(a)$值和$\pi$ 越大,访问次数$N(a)$值就会越大

image-20220411155941786

Summary Of MCTS$\P$

image-20220411160655312

Summary of AlphaGo

image-20220411161137181

AlphaGo Zero v.s. AlphaGo

旧版MCTS 是模仿人类玩家,而新版MCTS是模仿自己搜索

image-20220411161459613

仿真环境behavior可能是无用的,实际环境下behavior是有用的(不然代价太大)

image-20220411161649054

新版在train时就用了MCTS,用策略网络预测P,用MCTS预测n,我们应该让p接近n才行,因为搜索得到的结果是比较靠谱的,我们用梯度下降来更新策略网络以此修正

image-20220411162137126

image-20220411162331260

Monte Carlo Algorithms

蒙特卡罗方法(Monte Carlo method),也称 统计模拟方法
蒙特卡洛方法的理论基础是大数定律。大数定律是描述相当多次数重复试验的结果的定律,在大数定理的保证下:

利用事件发生的 频率 作为事件发生的 概率 的近似值。

所以只要设计一个随机试验,使一个事件的概率与某未知数有关,然后通过重复试验,以频率近似值表示概率,即可求得该未知数的近似值。

样本数量越多,其平均就越趋近于真实值。

此种方法可以求解微分方程,求多重积分,求特征值等。

image-20220411193336575

image-20220411193347633

image-20220411193359051

image-20220411193409271

image-20220411193426734

image-20220411193512800

TD算法

image-20220413195749233

image-20220413195759449

image-20220413195910881

image-20220413195952647

image-20220413200004272

用蒙特卡洛算法近似期望

image-20220413200019118

image-20220413200053912

image-20220413200114955

$Q_\pi$是纯估计,蒙特卡洛近似的期望有部分真实值,我们的目标是让$Q_\pi$去接近$y_t$

image-20220413200319666

Sarsa算法

image-20220413200354148

image-20220413200735863

image-20220413200805069

image-20220413200900933

image-20220413200945348

image-20220413201008127

如果$state$和$action$很复杂,那么表格将不在适用,我们用神经网络近似动作价值函数$Q_\pi$

动作价值函数函数$Q$

image-20220413201620277

image-20220413201712555

image-20220413201831738

$Summary$

image-20220413202301198

Q-Learning

Sarsa 对应$Q_{\pi}$,Q-learning 对应$Q^*$

image-20220413203538265

image-20220413204004211

image-20220413205131281

image-20220413205322853

image-20220413205753754

image-20220413205805454

image-20220413205914409

image-20220413205927895

image-20220413210303310

image-20220413210316673

image-20220413210328403

image-20220413210430890

image-20220413220828396

image-20220413220838657

image-20220413220933917

$Summary$

image-20220413221053749

Multi-Step TD Target

image-20220414103549951

image-20220414103603117

image-20220414103624729

image-20220414103653331

image-20220414103809981

image-20220414103827649

image-20220414104705587

image-20220414104718659

image-20220414104838373

价值函数学习高级技巧

image-20220414112803774

image-20220414112840325

image-20220414112905907

image-20220414112959058

image-20220414113156609

但是,它会有两个主要的缺点

image-20220414113607616

image-20220414113656197

Experience Replay

image-20220414120029346

image-20220414120042422

image-20220414120127571

image-20220414120135580

image-20220414120145571

优先经验回放

image-20220414120151981

222

image-20220414120251578

image-20220414120327196

抽样概率不同,会出现偏差,为了消除偏差我们动态调整学习率

image-20220414120342097

抽样概率越大,学习率应该相应较小;抽样概率越小,学习率应该相应较大

image-20220414120617358

image-20220414120628963

image-20220414120649396

高估问题&解决方法

image-20220417135621674

image-20220417135809073

image-20220417135900628

image-20220629165215185

image-20220629165416308

image-20220629165850605

image-20220629170047620

image-20220629170255199

循环往复,高估现象会加剧

image-20220629170516587

image-20220629170907781

image-20220629171023878

image-20220629171538169

image-20220629174206330

image-20220629180649955

image-20220629180705703

image-20220629180717343

Target Network 无法解决高估问题,只能缓解,因为$W^-$ 与 $W$有关

image-20220629180854342

image-20220629181450599

image-20220629181500094

image-20220629181507760

Double DQN中,$a^*$是在原DQN网络中选出的,而$y_t$是在Target Network中得出的,所以并不是$max\ Q$的问题。但是DQN只是更好的缓解了高估问题,并没有根除。

image-20220629181910298

Summary

image-20220629182134235

image-20220629182313742

Dueling Network

Advantage Function(优势函数)

动作小$a$越好,$A^*$的值越大

image-20220630094914862

两个基本定理

image-20220630095159232

image-20220630095213612

image-20220630095419011image-20220630095437647

image-20220630095520096

Dueling Network

image-20220630100835734

image-20220630100849692

$A^*$和$V^*$共享卷积层

image-20220630104509568

Dueling Network 比DQN结构要好,所以它的表现更好

image-20220630104532830

用Q-Learning算法来训练Dueling Network,Dueling Network只是网络结构与DQN不同,训练方法是一样的

image-20220630104826321

image-20220630110757488

image-20220630110814526

image-20220630110843035

在实验中,发现mean的效果哦会更好

image-20220630110912593

在训练时,把V和A看做一个整体,直接训练Q

image-20220630111008777

策略学习

策略梯度中的Baseline

image-20220630191247411

image-20220630191331356

image-20220630191350457

image-20220630191408550

image-20220630191419503

image-20220630191452817

image-20220630191512246

image-20220630191524827

image-20220630191703470

image-20220630191713965

image-20220630191740955

算法中,用蒙特卡洛近似如下公式,虽然$b$不影响如下公式,但是会影响蒙特卡洛近似,如果$b$选择好,近似于$Q_\pi$的话,那么会使得蒙特卡洛的方差降低,算法会收敛更快。

image-20220630191756023

蒙特卡洛方法近似期望

image-20220630192736852

$g(a_t)$是对策略梯度的蒙特卡洛近似

image-20220630192829881

$\beta$是学习率,$g(a_t)$是随机梯度

image-20220630193425221

$b$不会影响$g(a_t)$的方差,但是会影响$g(a_t)$的数值,如果$b$的选取恰当,那么会降低$g(a_t)$的方差

image-20220630193753051

image-20220630194305623

$v_\pi$是$Q_\pi$的期望,所以是比较接近$Q_\pi$的

image-20220630194321330

Reinforce With Baseline

目标:用Reinforce算法训练策略网络,同时训练价值网络作为Baseline起辅助作用

image-20220708095652404

image-20220708095731245

image-20220708095807575image-20220708100732349

image-20220708100809527

image-20220708100821855

image-20220708100833420

image-20220708100847600

image-20220708100909176

image-20220708100924556

image-20220708101042979image-20220708105012798image-20220708105039908image-20220708105057629image-20220708105106955

A2C 方法

与AC算法不同的是,AC算法中Critic用的是动作价值函数Q,而A2C方法中用的是状态价值函数V,比Q好训练(Q依赖于S和A,V只依赖于S)

image-20220708105701606

也是用到了两个神经网络,结构和上个算法相似

image-20220708105940359

训练方法

image-20220708110207000

数学推导

image-20220708110346846

Reinforce 与 A2C的区别

神经网络结构一样

image-20220708112557260

区别1:

价值网络v的用途不一样。

image-20220708112812811

image-20220708112857997

image-20220708112920797

A2C用的是$y_t$,而Reinforce用的是真实奖励$u_t$

A2C versus Reinforce

Reinforce 是A2C的一种特例

image-20220708113614882

image-20220708113750488

离散控制与连续控制

image-20220715093949982

image-20220715094040757

对连续控制的处理1——离散化,适用于自由度比较小的问题

image-20220715095118470

image-20220715095302122

确定策略梯度

Deterministic Policy Gradient (DPG)

image-20220715095607290

image-20220715100504414image-20220715100516884

image-20220715100702568

image-20220715101038285

image-20220715101129682

image-20220715103226340

image-20220715103310295

image-20220715103445811

image-20220715103712641

image-20220715103830560

image-20220715103907781

image-20220715104321212

随机策略做连续控制

多智能体强化学习

image-20220715190538158

基本概念

image-20220715191928740

image-20220715192041303

image-20220715192239403

image-20220715192502775

image-20230212195715652

image-20230212195837555

image-20230212195925149

image-20230212200008289

image-20230212200106721

image-20230212200212878

image-20230212200232704

image-20230212200320032

image-20230212200407685

image-20230212200426901

image-20230212200603207

Summary

image-20220722111636957

image-20220722111756809

image-20220722111838279

Multi-Agent RL的三种架构

multil-agent模型下,不同agent之间要通信来共享信息,通信方 式主要是中心化和去中心化

image-20220722112802289

image-20230212201235443

image-20230212201307248

image-20230212201442043

每个agent只能观察到部分,没有充分信息来做决策,所以让中央控制器来做
image-20230212201653122

image-20230212201914888

image-20230212201948467

image-20230212202054442

image-20230212202103909

image-20230212202253634

image-20230212202330467

image-20230212202500030

image-20230212203033780

image-20230212203049891

image-20230212203137813

image-20230212203232671

image-20230212203251989

Summary

image-20220722115240930

image-20220722115335299

image-20220722115407574

image-20220722115735656

关于multi-agent,王老师推荐的综述论文

image-20230212204131930


文章作者: 马克图布
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 马克图布 !
评论
  目录