CHAPTER 34 / 37
强化学习:真正的智能,是在不确定中不断做选择
强化学习的本质,不是找到一次正确的答案,而是在真实反馈中持续优化每一次决策。
在前面的文章里,我们讨论的几乎都是同一类问题:
给定数据
预测一个结果例如判断一封邮件是不是垃圾邮件,预测用户是否会点击广告,推荐用户可能喜欢的内容……这些问题有一个共同特点:答案是静态的。
但现实世界里,有一类问题完全不同:
你做了一个决定
环境发生变化
你必须继续做下一个决定例如自动驾驶、游戏 AI 、机器人控制、动态定价、投资策略……这类问题的本质不是预测,而是持续决策。
这就是强化学习存在的原因。
什么是强化学习?
强化学习,是一种通过不断尝试和反馈,学习如何做决策的算法。
注意这里的关键词:
尝试
反馈
长期效果与监督学习不同,强化学习不会告诉系统正确答案是什么,而是告诉它:结果好不好,系统必须自己探索。
这正是强化学习最核心的思想:你只需要定义奖励函数,而不需要告诉系统具体怎么执行每一步操作。
假设你在做一个电商平台,你可以给用户:
5 元优惠券
10 元优惠券
不发优惠券问题是:哪个最合适?这并不是一个简单的预测问题,因为今天给了优惠券,会影响明天的行为。例如:
发 10 元券 → 用户立即购买
但以后只等优惠所以系统必须考虑长期效果,这就是强化学习的典型场景。
强化学习最核心的四个元素
你只需要记住这四个词:
State
Action
Reward
Next State用一个真实例子理解:智能客服机器人。
状态(State)
系统当前的情况:
用户情绪:不满
订单状态:未发货
等待时间:3 天动作(Action)
系统可以做什么:
回复解释
提供退款
赠送优惠券
转人工客服奖励(Reward)
系统得到的反馈:
用户满意 → +1
用户投诉 → -10
用户流失 → -100下一状态(Next State)
系统执行动作后的新情况:
用户满意度提升
问题解决
订单取消强化学习的每一步,本质就是:当前状态 → 选择动作 → 获得奖励 → 进入新状态 ,这正是强化学习问题的标准结构。
奖励函数(Reward Function)
强化学习的关键不是算法,而是你定义了什么是成功。
例如你在做一个推荐系统,假设你的目标是点击率最大化,奖励函数可能是:
点击 → +1
未点击 → 0系统会学到:推荐最容易点击的内容。但如果目标改成用户长期满意度,奖励函数可能是:
长期留存 → +10
短期点击 → +1
用户流失 → -50系统行为会完全不同。
这就是强化学习最危险,也最强大的地方。这意味着,强化学习真正优化的不是“下一步”,而是长期收益(Return)。
另一个非常直观的例子,假设你面前有两个选择:
选项 A:马上得到 5 元
选项 B:30 分钟后得到 10 元哪个更好? 答案取决于时间成本。这正是强化学习里的一个核心概念:折扣因子(Discount Factor)。直觉理解就是说,未来的奖励不如现在的奖励值钱。例如:
今天 100 元 > 明年 100 元系统会用一个参数:γ(Gamma)来控制未来奖励的重要程度,奖励越晚,价值越低。
这就是强化学习中“回报(Return)”的定义方式:未来奖励会按折扣因子逐步降低权重。
强化学习真正学到的,是一种策略(Policy)
很多人以为强化学习学的是答案,但实际上它学的是规则。
一句话定义什么是策略(Policy) ,是指在什么情况下,做什么动作。例如:
如果库存低 → 提价
如果库存高 → 降价这就是一个策略。
强化学习的目标就是找到一个策略,使长期收益最大化。
一个完整流程示意
环境(Environment)
↓
当前状态(State)
↓
选择动作(Action)
↓
获得奖励(Reward)
↓
进入新状态(Next State)
↓
循环这就是强化学习的核心循环。
下面这段Tensorflow代码模拟的是一个系统学习选择最优动作,无需看懂,只需要理解,系统不断试错,然后根据结果调整策略:
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、自动驾驶
系统不断决定:
加速
减速
转向目标是安全、高效、平稳。
2、广告竞价
系统不断决定:
出价多少
什么时候出价目标是收益最大。
3、库存管理
系统不断决定:
什么时候补货
补多少目标是库存成本最低,且缺货率最低。
4、游戏 AI
例如:
围棋
星际争霸
Dota系统必须长期规划。
奖励函数设计错误
奖励函数设计错误,会可能导致即使系统会变得非常“聪明”,但方向错了。
例如,如果奖励函数是:
用户停留时间越长 → 奖励越高系统可能学到的是,推荐极端内容。
因为这样更容易吸引用户注意力,这就是为什么强化学习系统必须非常谨慎。
如果把强化学习放回产品语境里,它其实并不陌生。很多产品每天都在做类似的事情:不断尝试新的策略,观察用户反馈,然后根据结果调整下一步的决策。例如:
什么时候推送通知
什么时候发放优惠券
什么时候调整价格
什么时候改变推荐逻辑这些选择,很少有一个固定的“正确答案”。真正重要的,是系统能否在变化的环境中持续学习,并逐渐找到更优的路径。
从这个角度看,强化学习不仅仅是一种算法,更像是一种产品运营方式。它强调的不是一次性的判断,而是长期的反馈机制;不是静态的规则,而是动态的策略演进。
而一个成熟的产品团队,往往也会形成类似的工作方式:不急于追求最优解,而是通过小步试验,让系统在真实环境中逐渐变得更好。
这或许也是强化学习最有价值的一点。
它提醒我们,真正复杂的系统,不需要一开始就完美,而是需要具备持续试错、持续反馈、持续优化的能力。
附录:本文涉及的专有名词中英文对照(标红为最核心)