在没有标签的世界中探索模式,在试错交互中习得最优策略
在现实世界中,绝大多数数据是没有标签的。给数百万张图片人工标注成本极高,给所有客户打上"高价值/低价值"标签往往不可行。无监督学习(Unsupervised Learning)正是在这种场景下发挥作用——它从没有任何标签的数据中发现隐藏的模式和结构。
聚类将数据样本分成若干组(簇),使得同一组内的样本彼此相似,不同组的样本彼此不同。聚类不需要预先知道有哪些类别,类别数量也往往由算法或用户指定。
聚类的本质是对相似性的量化。最常用的相似性度量是欧氏距离(直线距离)和余弦相似度(方向一致性)。选择合适的距离度量至关重要:对于文本数据,余弦相似度通常优于欧氏距离;对于地理坐标,可能需要使用球面距离。
降维将高维数据映射到低维空间,同时尽量保留重要信息。降维不仅可以减少计算开销,还能帮助人类可视化高维数据。
关联规则用于发现数据项之间的共现关系。经典的"啤酒与尿布"案例就是关联规则分析的成果——超市发现购买尿布的男性顾客也倾向于购买啤酒。
监督学习回答"我知道要问什么"的问题;无监督学习回答"数据中隐藏着什么"的问题。在客户分群中,你可能事先并不知道客户有哪些自然分组;在异常检测中,你并不知道正常行为的边界在哪里。无监督学习是数据探索的强大工具。
强化学习(Reinforcement Learning, RL)是一种通过与环境交互来学习最优行为策略的范式。与监督学习不同,RL 没有现成的正确答案;与无监督学习不同,RL 有明确的反馈信号——奖励(Reward)。
在每一个时间步 t:
这个过程不断重复,直到达到终止状态或时间限制。
游戏 AI(AlphaGo / OpenAI Five):通过与自己对弈数百万盘,RL agent 学会了超越人类顶级选手的围棋和 Dota2 策略。关键挑战是奖励稀疏(只有终局才有明确胜负)。
机器人控制:训练机械臂抓取物体、双足机器人行走。RL 直接在物理仿真环境中学习,然后将策略迁移到真实机器人。奖励函数设计是关键——如何量化"走得稳""抓得牢"。
广告投放优化:在预算约束下,决定向哪些用户展示哪些广告以最大化点击率或转化率。环境是用户反馈,动作是广告选择,奖励是点击/转化收益。
自动驾驶决策:RL 可以学习换道、超车、等红灯等高层驾驶策略。安全约束需要通过奖励 shaping 或安全层来保障。
Q-learning 是最经典的强化学习算法之一,由 Watkins 于 1989 年提出。它不需要知道环境的动力学模型(model-free),直接从交互经验中学习。
Q(s, a) 表示在状态 s 下执行动作 a 的预期累积奖励。如果智能体知道所有状态-动作对的 Q 值,它只需要在每个状态选择 Q 值最高的动作,就能获得最大长期奖励。
其中:
Q-learning 属于时序差分(Temporal Difference, TD)学习。它不需要等到 episode 结束才更新,而是根据当前估计的"目标值"(r + γ·max Q(s', a'))与当前估计值 Q(s, a) 之间的差异来实时更新。这种"自举"(bootstrapping)的方式让学习更加高效。
强化学习面临一个根本性的两难困境:探索(Exploration)与利用(Exploitation)的权衡。
如果永远利用,可能陷入局部最优;如果永远探索,则无法积累已知的最佳策略。如何平衡二者是 RL 的核心挑战之一。
最简单的平衡方法是 Epsilon-Greedy:
在训练初期,智能体对环境一无所知,应该大量探索;随着经验积累,应该逐渐减少探索,更多利用已知信息。常见的衰减方式包括:
衰减太快:智能体还没有充分探索环境就过早收敛到局部最优策略。
衰减太慢:训练后期仍然大量随机探索,导致收敛缓慢,且最终策略不稳定。
经验法则:让智能体在至少数千个 episode 中保持 ε > 0.1,以确保充分探索。对于复杂环境(如围棋),可能需要数百万步的探索。
这个权衡不仅存在于机器学习中,也存在于人类生活中:是去尝试新餐厅(探索),还是去最爱的老店(利用)?是去新城市旅行,还是留在熟悉的环境?优秀的 RL 系统需要像智慧的人类一样,在适当的时候保持好奇,在适当的时候专注已知。
判断以下场景属于无监督学习还是强化学习:
(a) 将新闻文章按主题自动分组(事先未定义主题)
(b) 训练无人机在复杂环境中飞行避障
(c) 发现超市购物篮中经常一起购买的商品组合
(d) 自动驾驶汽车学习在路口做出最优决策
(a) 无监督学习(聚类):没有预定义标签,算法自动发现文章的主题分组。
(b) 强化学习:无人机通过与环境交互(碰撞/顺利飞行)获得奖励信号来学习。
(c) 无监督学习(关联规则):从交易数据中发现商品之间的共现模式。
(d) 强化学习:汽车在路口的决策影响后续状态和安全性,有明确的延迟奖励(安全到达目的地的正面奖励,事故的负面奖励)。
在一个网格世界问题中,智能体位于状态 s,执行动作"向右"后到达状态 s',获得即时奖励 r = 5。已知:
请计算更新后的 Q(s, 右)。
目标值 = r + γ · max Q(s', a') = 5 + 0.9 × 12 = 5 + 10.8 = 15.8
TD 误差 = 目标值 - 当前 Q 值 = 15.8 - 10 = 5.8
更新量 = α × TD 误差 = 0.2 × 5.8 = 1.16
新 Q(s, 右) = 10 + 1.16 = 11.16
某智能体使用 ε-greedy 策略,当前 ε = 0.3。在某状态下有三个可选动作,当前 Q 值分别为:
(a) 智能体选择"上"的概率是多少?
(b) 如果 ε 衰减到 0.05,选择"上"的概率变为多少?
(a) 在 ε-greedy 中:
以概率 ε = 0.3 随机选择(三个动作各 0.1)
以概率 1-ε = 0.7 选择 Q 值最高的动作("上")
P(上) = 0.7 + 0.1 = 0.8
P(下) = 0.1,P(左) = 0.1
(b) 当 ε = 0.05 时:
P(上) = 0.95 + 0.05/3 ≈ 0.967
随着 ε 衰减,智能体越来越倾向于选择已知最优动作。
某电商平台有 4 个用户,其年消费金额(万元)和登录频次(次/月)如下:
| 用户 | 消费金额 | 登录频次 |
|---|---|---|
| A | 0.5 | 2 |
| B | 8.0 | 25 |
| C | 0.8 | 3 |
| D | 9.0 | 30 |
使用 K=2 的 K-Means 聚类,初始中心点为 (1, 2) 和 (8, 20)。请完成第一次迭代后的中心点更新。
第一步:分配样本到最近中心
到 C1(1,2) 的距离:A=√[(0.5-1)²+(2-2)²]=0.5;B=√[(8-1)²+(25-2)²]≈24.0;C=√[(0.8-1)²+(3-2)²]≈1.02;D=√[(9-1)²+(30-2)²]≈29.1
到 C2(8,20) 的距离:A≈22.5;B≈5.4;C≈21.9;D≈11.7
分配结果:簇1 = {A, C};簇2 = {B, D}
第二步:更新中心点
新 C1 = ((0.5+0.8)/2, (2+3)/2) = (0.65, 2.5)
新 C2 = ((8.0+9.0)/2, (25+30)/2) = (8.5, 27.5)
本节演示 sklearn K-Means 聚类和一个简化的 Q-learning 迷宫求解模拟,帮助你直观理解无监督学习和强化学习的核心机制。
KMeans.fit_predict() 同时完成模型训练和样本分配。n_init=10 表示运行 10 次取最优结果,避免陷入局部最优。
Q-learning 模拟中,智能体从状态 0 出发,目标在最右端(状态 4)。经过 100 轮训练,所有状态都学会了"向右"是最优策略。
注意状态 4(目标)的 Q 值为 0,因为到达后 episode 结束,没有后续动作。Q 值从右向左递减(10 → 9 → 8.1 → 7.29),反映了到达目标所需的步数差异。