跳转至

RL

从强化学习到DeepSeek R1

1. 什么是强化学习(RL, Reinforcement Learning)

传统的机器学习,包括深度学习,其本质是数学性的,严格遵守函数的数学定义:对于给定输入,产生确定的输出

\[F(x) = y\]

随着输入\(x\)和输出\(y\)的不同,这一范式可以适配各种不同的任务,比如:

  • \(x\) 是图像,\(y\)是类别,那么\(F\)就是Resnet这种图像模型;
  • \(x\) 是语音信号,\(y\)是文字,那么\(F\)就是一个语音识别模型;
  • \(x\) 是文本输入,\(y\)是文本输出,那么\(F\)就是时下火热的大语言模型;

强化学习(Reinforcement Learning)的本质上则是哲学性的,它探讨三个核心问题:

  • 我是谁?一个Agent
  • 我在哪?处于某个State
  • 到哪里去?采取一个Action

如果站在上帝视角去观测这个Agent,我们还会发现:

  • Agent处在一个环境中(Environment)
  • Agent有一个用来策略(Policy)告诉我该采取什么动作(Action)
  • 每执行一个动作(Action),环境都会给我反馈 (Reward)

以上就是强化学习中的主要概念。

alt text

2. 如何进行强化学习

这里以一个迷宫问题为例,介绍如何进行强化学习:

迷宫:(S: Start, E: End, W: Wall)

block-beta
  columns 3
  S1["S1(S)"] S2 S3["S3(W)"]
  S4 S5 S6
  S7["S7(W)"] S8 S9["S9(E)"]

这个迷宫就是一个Environment。我们放置一个机器人在开始处(Start),让机器人自动学习如何走迷宫的策略(Policy)。这个策略可以记成\(\pi(s)\rightarrow a, s \in [1-9], a \in [上, 下, 左, 右]\)。开始时机器人对于迷宫一无所知,所以\(\pi(s)会随机输出一个方向\)