Skip to content

强化学习在自然语言处理中的应用篇

来源:AiGC面试宝典 日期:2024年05月09日


一、强化学习基础面

1.1 介绍一下强化学习?

强化学习(Reinforcement Learning,简称RL)是一种时序决策学习框架,通过智能体(Agent)和环境(Environment)交互来学习最优策略。

核心交互流程:

  • 智能体根据观测选择动作:$a_t = \pi(o_t)$
  • 环境返回奖励:$r_t = r(o_t, a_t)$
  • 智能体根据奖励更新策略$\pi$,使其能够在环境中自主学习

[图表描述]:强化学习的基本交互循环示意图。左侧为Environment(环境),右侧为Agent(智能体),中间通过Action(动作)和Reward、Observation(奖励和观测)进行循环交互。

📝 通俗解释:强化学习就像训练一只小狗。小狗(智能体)做出动作(比如坐下),主人会根据它的表现给出奖励(零食或表扬)或惩罚。通过不断尝试和反馈,小狗逐渐学会什么动作能获得奖励,最终形成一套稳定的行为策略。


1.2 介绍一下强化学习的状态(States)和观测(Observations)?

  • 状态(States):对世界状态的完整描述,包含环境的全部信息
  • 观测(Observations):对状态的部分描述,可能会缺失一些信息
    • 当 $O = S$ 时,称 $O$ 为完美信息(fully observed)
    • 当 $O < S$ 时,称 $O$ 为非完美信息(partially observed)

📝 通俗解释:状态就像你通过上帝视角看到的整个棋盘;而观测就像你在游戏中只能看到自己的手牌。状态是完整信息,观测是部分信息,有时候你看不到全部情况。


1.3 强化学习有哪些动作空间(Action Spaces)?他们之间的区别是什么?

  • 离散动作空间:智能体只能采取有限个动作,如下棋、文本生成选择词汇
  • 连续动作空间:智能体的动作是实数向量,如机械臂转动的角度、汽车方向盘的角度

区别:两者会影响policy网络的具体实现方式。

📝 通俗解释:离散动作空间就像选择题,只能从给定选项中选择(如:石头、剪刀、布);连续动作空间就像填空题,可以在连续范围内取任意值(如:水温从0度到100度可以取任何值)。


1.4 强化学习有哪些Policy策略?

  • 确定性策略(Deterministic Policy):$a_t = \mu(s_t)$,输出一个确定的动作,通常用于连续动作空间
  • 随机性策略(Stochastic Policy):$a_t \sim \pi(\cdot|s_t)$,输出一个动作分布,通常用于离散动作空间

📝 通俗解释:确定性策略就像固定菜谱——输入原材料,输出必定是同一道菜;随机性策略就像抛骰子——根据当前情况,按一定概率选择不同的动作。比如玩石头剪刀布时,你会按一定概率出石头、剪刀或布。


1.5 介绍一下强化学习的轨迹?

轨迹(Trajectory):状态和动作的序列 $$\tau = (s_0, a_0, s_1, a_1, \dots)$$

  1. 状态转换函数(Transition Function): $$s_{t+1} \sim P(\cdot|s_t, a_t)$$

  2. 初始状态采样: $$s_0 \sim \rho(\cdot)$$

📝 通俗解释:轨迹就像一部电影,从开头到结尾的所有画面连在一起。在强化学习中,就是智能体从开始到结束经历的所有"状态-动作"画面组成的一条路线。


1.6 介绍一下强化学习的奖励函数?

奖励函数定义了每一步的好坏: $$r_t \sim R(s_t, a_t, s_{t+1}) \quad \text{或} \quad r_t \sim R(s_t, a_t)$$

智能体的目标是最大化整条轨迹的累计奖励: $$R(\tau) = \sum_{t=0}^{\infty} \gamma^t r_t$$

其中 $\gamma$ 是折扣因子,表示未来奖励的重要性。

📝 通俗解释:奖励函数就像游戏里的得分系统。每做一个动作,环境会给你打分(奖励)。累计奖励就是这场游戏的总分。折扣因子就像"及时满足"的系数——现在的1分比未来的1分更值钱,这样智能体会更看重近期收益。


1.7 介绍一下强化学习问题?

核心问题:选择一种策略从而最大化预期收益

  1. T步轨迹概率(假设环境转换和策略都是随机的): $$P(\tau \mid \pi) = \rho_0(s_0) \prod_{t=0}^{T-1} P(s_{t+1} \mid s_t, a_t) \pi(a_t \mid s_t)$$

  2. 预期收益: $$J(\pi) = \int_{\tau} P(\tau \mid \pi) R(\tau) = \underset{\tau \sim \pi}{\mathrm{E}} [R(\tau)]$$

  3. 核心优化问题:找到最优策略 $$\pi^* = \arg \max_{\pi} J(\pi)$$

📝 通俗解释:强化学习的核心就是"怎样做才能得高分"。预期收益就是平均每次能得多少分,优化问题就是找到能让你平均分最高的那个策略——就像找到考试得高分的最佳答题策略。


二、RL发展路径(至PPO)

[图表描述]:强化学习算法分类与发展路径树状图

RL Algorithm
├── Multi-agent(多智能体)
└── Single Agent(单智能体)
    ├── Model-based(基于模型)
    │   ├── World Model
    │   └── ......
    └── Model-free(无模型)
        ├── Value-based(基于价值)
        │   ├── Offline RL (Batch RL)
        │   │   ├── Imitation Learning
        │   │   └── BCQ
        │   └── Online RL
        │       ├── On-Policy → Sarsa
        │       └── Off-Policy → Q-learning → DQN
        │           ├── Double DQN
        │           ├── Prioritized Experience Reply
        │           ├── Dueling DQN
        │           └── → DDPG
        └── Policy-based(基于策略)
            └── Policy Gradients
                └── Actor-Critic
                    ├── → DDPG
                    ├── A2C → A3C
                    └── PPO

2.1 介绍一下强化学习中优化方法Value-based?

Value-based方法:通过估计状态的值$V(s)$或状态-动作对的值$Q(s,a)$,来评估累积奖励,然后通过最大化值函数来得到最优策略。

  1. 最优值函数(Optimal Value Function): $$V^*(s) = \max_{\pi} \underset{\tau \sim \pi}{\mathbb{E}} [R(\tau) \mid s_0 = s]$$

  2. 最优动作-值函数(Optimal Action-Value Function): $$Q^*(s, a) = \max_{\pi} \underset{\tau \sim \pi}{\mathbb{E}} [R(\tau) \mid s_0 = s, a_0 = a]$$

    最优动作: $$a^(s) = \arg \max_a Q^(s, a)$$

  3. 两者的关系: $$V^{\pi}(s) = \underset{a \sim \pi}{\mathbb{E}} [Q^{\pi}(s, a)] \quad ; \quad V^(s) = \max_a Q^(s, a)$$

📝 通俗解释:Value-based方法就像评估每个位置的价值。在棋类游戏中,值函数V(s)告诉你"当前局面大概能赢多少",Q(s,a)告诉你"在这个局面走这一步能赢多少"。选择动作时,只需要选Q值最大的那一步,就像选胜率最高的走法。


2.2 介绍一下强化学习中的贝尔曼方程?

中心思想:当前值估计 = 当前奖励 + 未来值估计(打折扣)

值函数的贝尔曼方程: $$V^\pi(s) = \underset{\substack{a \sim \pi \ s' \sim P}}{\mathbb{E}} [r(s, a) + \gamma V^\pi(s')]$$

$$Q^\pi(s, a) = \underset{s' \sim P}{\mathbb{E}} \left[ r(s, a) + \gamma \underset{a' \sim \pi}{\mathbb{E}} [Q^\pi(s', a')] \right]$$

最优值函数的贝尔曼方程: $$V^(s) = \max_a \underset{s' \sim P}{\mathbb{E}} [r(s, a) + \gamma V^(s')]$$

$$Q^(s, a) = \underset{s' \sim P}{\mathbb{E}} \left[ r(s, a) + \gamma \max_{a'} Q^(s', a') \right]$$

📝 通俗解释:贝尔曼方程的核心是"递归"思想。就像计算"从北京到广州的最短距离",可以变成"从北京到郑州的最短距离 + 从郑州到广州的最短距离"。当前状态的价值 = 当前这一步的奖励 + 下一状态的价值(打折扣)。这样就可以一步步递归计算下去。


2.3 介绍一下强化学习中的优势函数?

强化学习中,有时不需要知道一个行动的绝对好坏,只需要知道它相对于其他动作的相对优势

$$A^\pi(s, a) = Q^\pi(s, a) - V^\pi(s)$$

  • $A > 0$:这个动作比平均水平好
  • $A < 0$:这个动作比平均水平差
  • $A = 0$:这个动作就是平均水平

📝 通俗解释:优势函数就像考试中的"相对排名"。如果你考了90分,班级平均是70分,你的优势是+20;但如果班级平均是95分,你的优势就是-5。优势函数告诉我们:这个动作比"通常情况"好多少,而不是绝对好坏。这样智能体就能知道哪个选择比一般选择更有优势。

基于 MIT 许可发布