在控制理论课上,老师教我们要建模: $G(s) = \frac{K}{Ts+1}$ 我们要分析系统的极点、零点,设计 PID 参数,画根轨迹…
但是,强化学习 (Reinforcement Learning, RL) 给了我一种全新的震撼: 去他的模型,让它自己撞!
🐭 实验背景:一只“贪吃”的小车
为了入门 RL,我没有直接上复杂的深度学习,而是从最经典的 Q-Learning 开始。
我想象了一个场景:
- 环境:一个 5x5 的网格迷宫,有墙(障碍物),有坑(陷阱),有宝藏(终点)。
- 主角:一个小红点(Agent)。
- 规则:
- 走到终点:+100 分(大鸡腿)。
- 掉进坑里:-100 分(暴打一顿)。
- 每走一步:-1 分(肚子饿了,鼓励走最短路径)。
🧠 核心逻辑:Q 表 (Q-Table)
Q-Learning 的核心思想其实特别简单,就是一张作弊小抄。
这张表记录了在每个位置(State),往哪个方向走(Action)能得到多少好处(Q-Value)。 一开始,这张表是全 0 的。小车根本不知道往哪走,只能瞎蒙。
🎢 训练过程:从智障到天才
第一阶段:无头苍蝇 (Episode 0-100)
我按下了运行键。
小车开始在起点附近疯狂转圈,或者一头撞死在墙上。
看着控制台不断打印 Reward: -100, Reward: -100… 我甚至有点心疼它。
这时候起作用的是 $\epsilon$-greedy 策略。 我设置了 $\epsilon = 0.9$,意味着它有 90% 的概率是在瞎逛 (Exploration),只有 10% 的概率是根据经验走。 这是必须的,因为如果它一开始就只走“经验之路”,那它可能永远发现不了那条虽然远一点、但能绕过陷阱的正确道路。
第二阶段:初窥门径 (Episode 100-500)
随着撞墙次数的增加,Q 表里的一些格子开始有了负值。 小车学会了:“那个坐标 (2, 3) 是个坑,打死也不能去。”
它开始能偶尔跌跌撞撞地走到终点,拿到那 +100 分。 每一次成功,Q-Learning 的公式就会把这份喜悦(Reward)反向传播给路径上的每一个格子: $$Q(s, a) \leftarrow Q(s, a) + \alpha [r + \gamma \max_{a’} Q(s’, a’) - Q(s, a)]$$ 翻译成人话就是:“既然这一步让我吃到了鸡腿,那上一步也是好步,上上一步也是好步!”
第三阶段:老司机 (Episode 500+)
我把 $\epsilon$ 逐渐降到了 0.1。 这时候的小车,简直神了。 无论我把它扔在迷宫的哪个角落,它都能瞬间规划出一条最短路径,直奔终点。它甚至学会了贴着墙角漂移,因为那样步数最少。
🤔 思考:Reward 是把双刃剑
在调试过程中,我发现 Reward Function (奖励函数) 的设计简直是玄学。
有一次,我为了让它跑快点,把“每走一步”的惩罚从 -1 改成了 -10。 结果你猜怎么着? 小车学会了自杀。 因为它发现,与其在迷宫里绕半天扣几百 分,不如直接跳进旁边的坑里,只扣 100 分来得划算。
AI 没有道德,它只有 KPI。 这让我对未来 AI 的安全性产生了一丝深深的担忧。
🚀 下一步
Q-Learning 虽然好用,但它只能处理离散的状态(格子)。 现实世界是连续的。我的倒立摆、我的四足机器人,它们的状态是连续变化的浮点数。 所以,下一站:DQN (Deep Q-Network)。用神经网络来拟合这张 Q 表,让 AI 真正掌控物理世界。