• 2021 增强式学习RL 李宏毅


     到目前为止,我們講的幾乎都是 Supervised Learning、就算是我們在講 Self Supervised Learning 的時候、其实也是很类似Supervised Learning的方法,只是label不需要特別僱用人力去標記,可以自动产生。或者是我們在講 Auto-encoder 的時候、我們雖然說它是一個 Unsupervised 的方法、没有用到人类的标记,但事实上,还是有一个label,只是这个label不需要耗费人力来产生。

    但是 RL 就是另外一個面向的問題了,当人类也不知道正确答案是什么的时候,,也许就是你该考虑RL的时候,

    藉由跟環境的互動、机器可以知道 它現在的輸出是好的還是不好的(Reward)

    what is RL

    介绍RL的基本概念时,有很多不同的切入點、也許你比較常聽過的切入點是從 Markov Decision Process 開始講起、那我們這邊選擇了一個比較不一樣的切入點、我要告诉你 RL 它跟我們這一門課學的 Machine Learning是一樣的框架(三个步骤)

     RL最早的几篇论文都是让机器去玩Space Invader这個非常簡單的小遊戲

     

    游戏操控者是Actor,Action是三个:向左、向右或者开火。如果杀掉一个外星人Reward=5,左右移动不得分。学习目标是使游戏得分最大。

    那接下來要告訴你說、RL 跟機器學習的 Framework、它們之間的關係是什麼

     RL 其實也是一模一樣的三個步驟

    Step1: Function with Unknown

    在還沒有把 Deep Learning 用到 RL 的時候、通常你的 Actor 是比較簡單的、不是network,它可能只是一個 Look-Up-Table

    Actor叫做Policy Network,其实是一个复杂的function,他的输入是游戏画面,输出是每一个可以采取的行为的分数。其实是一个分类任务。

    其实在RL里,你的  Policy Network跟分類的那個 Network其實是一模一樣的。至于这个Network架构,可以自己设计,比如如果输入是画面,network可以是CNN

    在作业里,不是直接讓我們的 Machine 去看遊戲的畫面、讓它直接去看遊戲的比较难做,所以是看跟現在遊戲的狀況有關的一些參數而已。在作业的simple code里还没有用CNN那么复杂,就是一個簡單的 Fully Connected Network

    如果要同时考虑整場遊戲到目前為止發生的所有事情,可以用RNN(过去)或者transformer(现在)。

    最后机器决定采取哪个action、取決於每一個 Action 取得的分數

    常见的做法是,直接把这个分数当做一个机率,然后按照这个机率去sample,去隨機決定要採取哪一個 Action

    为什么不直接看哪个分数最高就采取哪个?采取sample的好处是、就算是看到同樣的遊戲畫面,机器每次采取的行为也会略有不同,在很多游戏里这种随机性也许是重要的。还有一个理由等下再讲。

    Step2: Define “Loss”


    从游戏开始到结束 这一整个过程叫一个episode,

    total reward另一个名字叫return,RL的文献上常常同时看到这两个词。

     Reward 跟 Return 其實有點不一樣、Reward 指的是你採取某一個行為的時候、立即得到的好處、把整場遊戲裡面所有的 Reward 通通加起來 叫做 Return

    Step3: Optimization


    根据互动过程机器会得到Reward,可以把Reward想象成一个function,

    Reward Function有不同的表示方法、在有的遊戲裡面、也许reward只需要看你採取哪一個 Action 就可以決定。不過通常決定 Reward 的時候、光看 Action 是不夠的、還要看現在的 Observation 才可以、因為並不是每一次開火都一定會得到分數、要正好有擊到外星人、所以通常 Reward Function 在定義的時候,不仅需要看Action还需要看Observation


    目标是  找一个network的参数让R越大越好。

    乍看之下,如果Env、actor和reward都是 Network 的話、這個問題其實也沒有什麼難的、它看起來就有點像是一個 Recurrent Network

    而RL困难的地方是,這不是一個一般的 Optimization 的問題

    1. actor的输出有随机性,因为a1是sample出来的,

    所以假設你把 Environment Actor 跟 Reward合起來當做是一個巨大的 Network 來看待、這個 Network 裡面的某一個 Layer 它的輸出每次都是不一樣的

    2. 

    你的 Environment 跟 Reward它根本就不是 Network 啊、是一个黑盒子。遊戲機它裡面發生什麼事情你不知道、你只知道採取一個行為它會有對應的回應、但是到底是怎麼產生這個對應的回應、我們不知道。而Reward也不是一个network  是一个规则。

    而且往往Env和Reward也有随机性。

    所以 RL 真正的難點就是、我們怎麼解這一個 Optimization 的問題


    其实,跟GAN有异曲同工之妙,
    一样的地方:actor就像generator,Env和Reward就像discriminat

  • 相关阅读:
    vue实战入门后台篇四:springboot+mybatis实现网站后台-增删改查功能实现
    黎曼几何与切空间之间的投影
    SSM+美食论坛系统 毕业设计-附源码191023
    Android内存优化内存抖动的解决实战
    博客之QQ登录功能(二)
    Java集合
    设计模式- 适配器模式(Adapter Pattern)结构|原理|优缺点|场景|示例
    AEB强制标配?今年乘用车前装搭载率预计突破50%
    大咖说*计算讲谈社|自动驾驶,未来的移动智能载体?
    基于SpringBoot和Vue2.0的轻量级博客开发
  • 原文地址:https://blog.csdn.net/linyuxi_loretta/article/details/127661230