在前面的文章里,我们讨论的几乎都是同一类问题:

CODE
给定数据
预测一个结果

例如判断一封邮件是不是垃圾邮件,预测用户是否会点击广告,推荐用户可能喜欢的内容……这些问题有一个共同特点:答案是静态的。

但现实世界里,有一类问题完全不同:

CODE
你做了一个决定
环境发生变化
你必须继续做下一个决定

例如自动驾驶、游戏 AI 、机器人控制、动态定价、投资策略……这类问题的本质不是预测,而是持续决策。

这就是强化学习存在的原因。

什么是强化学习?

强化学习,是一种通过不断尝试和反馈,学习如何做决策的算法。

注意这里的关键词:

CODE
尝试
反馈
长期效果

与监督学习不同,强化学习不会告诉系统正确答案是什么,而是告诉它:结果好不好,系统必须自己探索。

这正是强化学习最核心的思想:你只需要定义奖励函数,而不需要告诉系统具体怎么执行每一步操作。

假设你在做一个电商平台,你可以给用户:

CODE
5 元优惠券
10 元优惠券
不发优惠券

问题是:哪个最合适?这并不是一个简单的预测问题,因为今天给了优惠券,会影响明天的行为。例如:

CODE
发 10 元券 → 用户立即购买
但以后只等优惠

所以系统必须考虑长期效果,这就是强化学习的典型场景。

强化学习最核心的四个元素

你只需要记住这四个词:

CODE
State
Action
Reward
Next State

用一个真实例子理解:智能客服机器人。

状态(State) 

系统当前的情况:

CODE
用户情绪:不满
订单状态:未发货
等待时间:3 天

动作(Action) 

系统可以做什么: 

CODE
回复解释
提供退款
赠送优惠券
转人工客服

奖励(Reward) 

系统得到的反馈: 

CODE
用户满意 → +1
用户投诉 → -10
用户流失 → -100

下一状态(Next State) 

系统执行动作后的新情况: 

CODE
用户满意度提升
问题解决
订单取消

强化学习的每一步,本质就是:当前状态 → 选择动作 → 获得奖励 → 进入新状态 ,这正是强化学习问题的标准结构。

奖励函数(Reward Function)

强化学习的关键不是算法,而是你定义了什么是成功。

例如你在做一个推荐系统,假设你的目标是点击率最大化,奖励函数可能是: 

CODE
点击 → +1
未点击 → 0

系统会学到:推荐最容易点击的内容。但如果目标改成用户长期满意度,奖励函数可能是:

CODE
长期留存 → +10
短期点击 → +1
用户流失 → -50

系统行为会完全不同。 

这就是强化学习最危险,也最强大的地方。这意味着,强化学习真正优化的不是“下一步”,而是长期收益(Return)。

另一个非常直观的例子,假设你面前有两个选择:

CODE
选项 A:马上得到 5 元
选项 B:30 分钟后得到 10 元

哪个更好? 答案取决于时间成本。这正是强化学习里的一个核心概念:折扣因子(Discount Factor)。直觉理解就是说,未来的奖励不如现在的奖励值钱。例如:

CODE
今天 100 元 > 明年 100 元

系统会用一个参数:γ(Gamma)来控制未来奖励的重要程度,奖励越晚,价值越低。

这就是强化学习中“回报(Return)”的定义方式:未来奖励会按折扣因子逐步降低权重。

强化学习真正学到的,是一种策略(Policy)

很多人以为强化学习学的是答案,但实际上它学的是规则。

一句话定义什么是策略(Policy) ,是指在什么情况下,做什么动作。例如:

CODE
如果库存低 → 提价
如果库存高 → 降价

这就是一个策略。

强化学习的目标就是找到一个策略,使长期收益最大化。

一个完整流程示意

CODE
环境(Environment)
      ↓
  当前状态(State)
      ↓
    选择动作(Action)
      ↓
     获得奖励(Reward)
      ↓
   进入新状态(Next State)
      ↓
      循环

这就是强化学习的核心循环。

下面这段Tensorflow代码模拟的是一个系统学习选择最优动作,无需看懂,只需要理解,系统不断试错,然后根据结果调整策略:

CODE
import tensorflow as tf
import numpy as np
num_states = 5
num_actions = 3
q_table = tf.Variable(
    tf.random.uniform(
        [num_states, num_actions]
    )
)
def choose_action(state):
    return tf.argmax(
        q_table[state]
    )
learning_rate = 0.1
for step in range(100):
    state = np.random.randint(0, num_states)
    action = choose_action(state)
    reward = np.random.randn()
    next_state = np.random.randint(
        0,
        num_states
    )
    best_next = tf.reduce_max(
        q_table[next_state]
    )
    target = reward + 0.9 * best_next
    q_table[state, action].assign_add(
        learning_rate *
        (target - q_table[state, action])
    )

强化学习最典型的应用场景

强化学习在越来越多的领域运用,以下是一些比较代表的行业:

1、自动驾驶 

系统不断决定:

CODE
加速
减速
转向

目标是安全、高效、平稳。

2、广告竞价 

系统不断决定:

CODE
出价多少
什么时候出价

目标是收益最大。

3、库存管理 

CODE
系统不断决定:
什么时候补货
补多少

目标是库存成本最低,且缺货率最低。

4、游戏 AI 

例如:

CODE
围棋
星际争霸
Dota

系统必须长期规划。

奖励函数设计错误

奖励函数设计错误,会可能导致即使系统会变得非常“聪明”,但方向错了。 

例如,如果奖励函数是:

CODE
用户停留时间越长 → 奖励越高

系统可能学到的是,推荐极端内容。

因为这样更容易吸引用户注意力,这就是为什么强化学习系统必须非常谨慎。


如果把强化学习放回产品语境里,它其实并不陌生。很多产品每天都在做类似的事情:不断尝试新的策略,观察用户反馈,然后根据结果调整下一步的决策。例如:

CODE
什么时候推送通知
什么时候发放优惠券
什么时候调整价格
什么时候改变推荐逻辑

这些选择,很少有一个固定的“正确答案”。真正重要的,是系统能否在变化的环境中持续学习,并逐渐找到更优的路径。

从这个角度看,强化学习不仅仅是一种算法,更像是一种产品运营方式。它强调的不是一次性的判断,而是长期的反馈机制;不是静态的规则,而是动态的策略演进。

而一个成熟的产品团队,往往也会形成类似的工作方式:不急于追求最优解,而是通过小步试验,让系统在真实环境中逐渐变得更好。

这或许也是强化学习最有价值的一点。

它提醒我们,真正复杂的系统,不需要一开始就完美,而是需要具备持续试错、持续反馈、持续优化的能力。

附录:本文涉及的专有名词中英文对照(标红为最核心)

中文
English
说明
强化学习
Reinforcement Learning
通过试错和奖励反馈学习如何做决策的算法
状态
State
系统当前所处的环境情况
动作
Action
系统可以采取的行为
奖励
Reward
衡量行为好坏的反馈信号
回报
Return
一段时间内累计获得的奖励
折扣因子
Discount Factor
控制未来奖励重要程度的参数
策略
Policy
在不同状态下选择动作的规则
环境
Environment
系统所处的外部世界
探索
Exploration
尝试新的行为
利用
Exploitation
使用已有经验