开启掘金成长之旅!这是我参与「掘金日新计划 · 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与环境交互当中,为了达成一个目标而进行的学习过程。
- 强化学习所要学习的东西,实际上就是一个好的价值函数,而一个好的价值函数决定一个好的策略
- 有一部分算法可以不依赖价值,直接学习策略,但主流的强化学习算法通常都是基于价值的
强化学习的结构
- 强化学习结构中的元素可以分为三类,以围棋为例:
基本元素
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