乐于分享
好东西不私藏

强化学习是什么:让 AI 在试错中学会做选择

强化学习是什么:让 AI 在试错中学会做选择

强化学习不是让 AI 背标准答案,而是让它在环境中不断行动、观察反馈、调整策略。本文用游戏和多臂老虎机的直觉,解释智能体、状态、动作、奖励、策略等核心概念,并说明强化学习真正关心的是:如何在一连串选择中追求长期收益。

如果把机器学习想象成“教机器学东西”,那不同的学习方式,其实对应着不同的教学场景。

有一种场景很熟悉:你给机器很多题目,每道题都有标准答案。比如这张图片是猫还是狗,这封邮件是不是垃圾邮件,这段文字应该翻译成什么。机器看得多了,就慢慢学会从输入推断输出。

这更像是在做题。

但现实里还有另一类学习,不太像做题,更像练习。

比如你第一次玩一个游戏,不知道哪个操作会得分,只能先试试看。走错一步可能扣分,走对一步可能奖励,但有时候眼前拿到一点小奖励,反而会让后面陷入更差的局面。你不是靠别人提前告诉你每一步的标准答案,而是靠自己不断行动、观察反馈、调整策略。

这就是强化学习想研究的问题。

强化学习关心的核心问题

强化学习(Reinforcement Learning)研究的是:一个智能体如何在环境中不断做选择,并根据反馈逐渐学会更好的行为策略。

这里有几个关键词:

  • 智能体(Agent):做决策的人或系统,比如游戏里的玩家、自动驾驶汽车、机器人,或者一个会调用工具的 AI。
  • 环境(Environment):智能体所处的世界,比如游戏地图、道路交通、机器人所在的房间。
  • 状态(State):当前局面,比如棋盘上所有棋子的位置、车当前的速度和道路情况。
  • 动作(Action):智能体可以做的选择,比如向左走、刹车、落下一枚棋子。
  • 奖励(Reward):环境给智能体的反馈,比如得分、扣分、任务完成、撞墙失败。
  • 策略(Policy):智能体决定“在什么状态下做什么动作”的规则。

把它们串起来,就是一个循环:

智能体看到当前状态,选择一个动作;环境根据这个动作发生变化,并给出奖励;智能体再看到新的状态,继续选择动作。

强化学习要解决的,就是让智能体在这个循环里越做越好。

它和普通监督学习有什么不同

监督学习里,通常有明确的标准答案。

比如模型看到一张图片,答案就是“猫”。它预测错了,我们马上知道错在哪里,可以直接调整。

强化学习不一样。

很多时候,没有人提前告诉智能体“这一步的正确答案是什么”。它只能通过行动之后的结果来判断自己做得好不好。

更麻烦的是,反馈还可能延迟。

比如下棋时,某一步看起来没什么特别,但十几步之后才发现它埋下了胜负的关键。又比如训练机器人走路,某个动作当下没有摔倒,但后面可能让身体越来越失衡。

所以强化学习的难点不是简单地“预测对不对”,而是:

怎样在一连串行动之后,判断哪些选择真的带来了长期收益。

这也是它比很多入门机器学习问题更有意思的地方。

一个最小例子:探索,还是利用

我们先不讲复杂的机器人,也不讲深度神经网络,只看一个很小的问题。

假设你面前有几台老虎机,每台老虎机的中奖概率都不一样,但你一开始不知道哪台最好。你有有限次机会,每次只能选择一台拉一下。

如果你一直拉当前看起来中奖最多的那台,可能会错过真正更好的机器。因为也许另一台只是刚开始运气差,实际上中奖率更高。

但如果你总是尝试新机器,又会浪费很多机会,迟迟不去利用已经发现的好选择。

这就出现了强化学习里非常经典的矛盾:

探索(Exploration),还是 利用(Exploitation)

探索,是去尝试不确定的选项,获取更多信息。

利用,是选择目前看起来最好的选项,尽快拿到收益。

一个好的智能体,不能永远冒险,也不能太早保守。它要学会在探索和利用之间做平衡。

这个问题看起来很小,但它其实是强化学习的第一道门。后面很多复杂算法,都绕不开这个矛盾。

为什么强化学习重要

强化学习重要,是因为它处理的是“决策”。

很多 AI 问题不只是识别、分类、生成,而是要行动。

比如:

自动驾驶汽车要决定什么时候加速、减速、变道。

机器人要决定怎样移动关节,才能站稳、行走、抓取物体。

游戏 AI 要决定当前局面下最值得采取的操作。

推荐系统要决定给用户展示什么内容,既要满足当下点击,也要考虑长期体验。

智能体要决定什么时候搜索、什么时候调用工具、什么时候停下来给出答案。

这些问题都有一个共同点:一次选择会影响后面的局面,后面的局面又会影响未来的选择。

也就是说,智能体不是在回答一道孤立的题,而是在一条不断展开的路径上做决策。

强化学习就是研究这种问题的一套语言和方法。

学强化学习,真正要学什么

刚开始看强化学习,很容易被一堆算法名字淹没:

多臂老虎机、马尔可夫决策过程、动态规划、蒙特卡洛、时序差分、Q-learning、DQN、策略梯度、Actor-Critic、TRPO、PPO……

这些名字当然重要,但如果只背名字,很快就会乱。

真正要学的是背后的主线:

第一,怎么描述一个决策问题。

也就是状态是什么,动作是什么,奖励是什么,环境怎么变化。这会引出强化学习最核心的数学框架:马尔可夫决策过程(MDP, Markov Decision Process)。

第二,怎么评价一个选择好不好。

一个动作当下得分高,不一定长期好;当下看起来亏,也可能是为了未来更大的收益。于是我们需要价值函数、回报、贝尔曼方程这些概念。

第三,怎么从经验中学习。

智能体不可能一开始就知道环境规律,只能通过一次次尝试积累经验。时序差分、Q-learning、DQN 这些方法,本质上都是在回答“如何边玩边学”。

第四,怎么直接优化策略。

有些时候,与其先估计每个动作的价值,不如直接调整策略本身,让好动作出现得更频繁。这就会走向策略梯度、Actor-Critic 以及更稳定的策略优化方法。

如果沿着这条线学,算法之间就不是散的,而是一层层长出来的。

我准备怎么学,也怎么写

这个系列会以学习笔记的方式展开:沿着经典教材和公开教程的脉络,边学边整理,把每个阶段的关键概念、算法直觉和推导逻辑写成适合公众号阅读的文章。

主要学习路线会从伯禹学习平台的《动手学强化学习》开始,也就是这个公开教程:https://hrl.boyuai.com/chapter/1/初探强化学习。

后续文章会以这套教程的知识结构为基础,结合我自己的阅读、推导和实验理解,对关键概念做重新组织和解释。重点不只是记录“学到了什么”,也包括梳理“为什么要这样定义”“算法之间如何衔接”“哪些地方容易误解”。

我希望写出来的东西有三个特点。

第一,先讲直觉。

每个概念出现之前,先说明它要解决什么问题。比如为什么需要价值函数,为什么需要贝尔曼方程,为什么 DQN 要引入经验回放和目标网络。

第二,保留必要的公式。

强化学习里有些东西,只靠比喻很容易失真。必要的公式还是要写,但会把符号拆开,解释每一项在做什么。

第三,把算法放回问题里。

算法不是凭空出现的。一个新方法通常是为了解决前一个方法的缺陷。只要把“旧方法哪里不够好”讲清楚,新方法就容易理解很多。

所以后面的文章会从小问题开始,一步一步往前走。

从下一篇开始

强化学习的世界很大,但入口可以很小。

下一篇,我们就从多臂老虎机开始。

它几乎是强化学习的最简版本:没有复杂状态,没有长期路径,只有一个朴素问题:

面对多个不确定的选择,你该继续探索未知选项,还是利用当前最好的选择?

这个问题讲清楚之后,我们就可以慢慢进入更完整的强化学习框架。

从这里开始,我们一起学一遍强化学习。