强化学习 Reinforcement Learning

389 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

推荐一个讲解强化学习原理的视频:[强化学习](https://www.bilibili.com/video/BV13a4y1J7bw?p=2&vd_source=62560e87a010b27bcb4ef067ca7ae9fa "https://www.bilibili.com/video/BV13a4y1J7bw?p=2&vd_source=62560e87a010b27bcb4ef067ca7ae9fa")

什么是强化学习

  • 强化学习:在Agent与环境交互当中,为了达成一个目标而进行的学习过程。
  • 强化学习所要学习的东西,实际上就是一个好的价值函数,而一个好的价值函数决定一个好的策略
  • 有一部分算法可以不依赖价值,直接学习策略,但主流的强化学习算法通常都是基于价值的

强化学习的结构

  • 强化学习结构中的元素可以分为三类,以围棋为例:

image.png

基本元素

Agent

  • 与环境互动的主体,称为Agent
  • 围棋中,Agent就是玩家

Environment

  • 在围棋中,包括棋盘以及对手

Goal

  • 在围棋中,目标就是要赢得这局棋

主要元素

State

  • 在围棋中,围棋状态就是棋盘上361个落子点的状态的整体,对于每个落子点来说,可以有黑棋、白棋、空三种状态,那么整个围棋的状态在理论上就有3的361次方

Action

  • 在一个状态下,Agent需要做出某种行动,也就是Action

Reward

  • Reward指Agent在一个状态之下,采取了特定的行动之后,所得到的及时的反馈
  • 在强化学习中,Reward通常是一个实数

核心元素

Policy

  • 策略指在某一个状态下应该采取什么样的行动
  • 它其实就是一个函数,输入是一个状态,输出是一个行动

Value

  • Value同样是一个函数,策略函数就取决于价值函数
  • 两种价值函数
    • State Value 状态价值函数

      • 输入是一个状态,输出是一个实数,这个实数就成为这个状态的价值
      • 价值指的是预期将来会得到的所有奖励之和
    • State-Action Value 状态行动价值函数

      • 它指定不单单是一个状态所对应的价值,而是在特定状态下,采取某种行动所具有的价值

强化学习特点

强化学习特点

试错学习 Trial and Error

  • 强化学习是一种试错学习,即在不断的尝试中去学习

延迟奖励 Delayed Reward

  • 即行动没有对应即时的奖励,但是每一步棋对于最后的胜利都是有贡献的。这就导致一个行动可能没有奖励,但是他一定有价值,不过一个许多所具有的价值只有在真正得到奖励之后才能得到体现,而这个奖励可能发生在一段时间之后,在玩家采取了很多其他的行动之后,这就是延迟奖励

核心问题 Explnoration vs. Exploitation

  • Explnoration和Exploitation之间的权衡是强化学习中的一个核心问题
  • Explnoration 利用:利用的是强化学习所学习到的价值函数,例如有了一个状态行动价值函数,想当然应该采取价值最高的行动,这就是Explnoration
  • Exploitation 探索:但是学习到的价值函数不一定是最优的价值函数,所以不仅仅需要利用已经学习到的价值函数,还应该要尝试不同的行动,从而优化价值函数,这就是Exploitation