机器学习基础:监督、无监督、半监督与强化学习
说到模式分类,机器学习是绕不开的基石。我刚开始接触这个领域时,也被这四种学习范式搞得有点懵。后来在项目中一个个试过来,才慢慢摸清它们的脾气。今天我用自己的理解,把这四兄弟的区别和联系给你捋一遍。
监督学习:有正确答案的“考试型”学习
监督学习的核心,说白了就是“给答案,学规律”。训练数据里每一条样本都带着标签,模型的任务就是学会从输入到输出的映射。我在银行做信用评分项目时就用过——几千条已标注“好客户/坏客户”的数据,让模型自己找规律。
常见算法:
- 分类:逻辑回归、决策树、SVM、神经网络
- 回归:线性回归、岭回归、Lasso
评估指标也直白:准确率、精确率、召回率、R²。你想想看,考试型学习的好处是标准明确,坏处是标签成本高——医疗影像标注一张图可能得花几百块。
无监督学习:没有答案的“探索型”学习
无监督学习就不一样了。数据没有标签,模型自己去发现结构。聚类、降维、密度估计都属于这类。我曾在一个电商用户行为项目中用 K-Means 做客户分群,结果找到了三组完全不同的购物模式,比业务方自己拍脑袋分成“高/中/低”客户精准多了。
常用算法:
- 聚类:K-Means、DBSCAN、层次聚类
- 降维:PCA、t-SNE、UMAP
- 密度估计:高斯混合模型 (GMM)
评估就比较头疼了——因为没有答案,你只能靠轮廓系数、Davies-Bouldin 指数这些内部指标,或者结合业务验证。记得我第一次用 DBSCAN 时参数调了半天,结果发现数据标准化没做,嗯,基础真的不能丢。
半监督学习:标签不够,脑补来凑
现实中的常态:你有少量标注数据,大量无标注数据。半监督学习就是为这种情况设计的。我参与过的一个工业缺陷检测项目,只有 500 张标注图片,但流水线上存了 10 万张未标注。用自训练(self-training)的方法,先用 500 张训练一个初始模型,然后对未标注数据预测,挑置信度高的加入训练集,反复迭代,最终准确率提升了 8%。
常用方法:
- 自训练 (Self-training)
- 协同训练 (Co-training)
- 图半监督 (Graph-based SSL)
- 生成式半监督 (如 MixMatch, FixMatch)
半监督学习的关键假设是“连续性”和“聚类假设”——相似的样本应该有相同的标签,这在实际中基本成立,但遇到混合分布时要小心。
强化学习:与环境互动的“玩家型”学习
强化学习是另一种思路:没有历史数据集,只有一个环境和奖励信号。智能体通过执行动作、获得奖励、调整策略来学习。我记得做机器人抓取任务时,训练一个强化学习模型在仿真环境里跑了上千万步,才学会把方块从桌上推到杯子里。刚开始策略完全是随机抖动,到后期动作就非常柔和了。
经典算法:
- 基于价值:Q-Learning, DQN, Double DQN
- 基于策略:REINFORCE, PPO, SAC
- Actor-Critic:A3C, TD3
你可能会问:强化学习有序列决策、延迟奖励的问题,训练不稳定,收敛难度大。没错,所以我个人建议,除非你的问题天然是“序列交互+延迟奖励”(如游戏、机器人、推荐系统的在线优化),否则别轻易上强化学习——它需要的计算量和调参精力远超前三种范式。
区别与联系:一张表说清楚
我用一个表格把这四种范式在数据、目标、反馈、典型算法上做对比。你可以在项目初期对着这个表快速判断该用哪条路。
| 维度 | 监督学习 | 无监督学习 | 半监督学习 | 强化学习 |
|---|---|---|---|---|
| 数据标签 | 全部有标签 | 无标签 | 少量标签 + 大量无标签 | 无标签(通过奖励反馈) |
| 目标 | 输入→输出映射 | 发现隐藏结构 | 利用无标签提升性能 | 最大化累积奖励 |
| 反馈形式 | 即时、直接 | 无外部反馈 | 部分监督 + 自生成 | 延迟、稀疏、随机 |
| 典型算法 | LR, SVM, XGBoost | K-Means, PCA, GMM | Self-training, MixMatch | DQN, PPO, SAC |
| 适用场景 | 分类、回归、推荐 | 聚类、降维、异常检测 | 标签稀缺但数据量大 | 游戏、机器人、调度 |
事实上,这四种范式不是孤立的。我曾在同一个项目里混合使用:先用无监督学习做数据清洗和特征提取,再用监督学习做精准分类,遇到冷启动问题又用了半监督学习。你不必死守一种,灵活组合才是常态。
知识体系结构
为了让你更直观地看到它们之间的关系,我画了一张图:
该如何选择?我的实战建议
每次拿到新项目,我会先问自己三个问题:
- 有没有标签? 有 → 监督学习;没有 → 无监督学习。
- 标签够不够? 不够但数据量大 → 半监督学习。
- 问题有没有序列交互和延迟奖励? 有 → 强化学习。
最后提醒一句:不要教条主义。我记得有一次,我为了用强化学习硬套一个推荐场景,训练了两个月效果还不如简单协同过滤。有时候,简单的逻辑回归加几个好特征,比花哨的模型管用得多。选对范式比堆模型重要一万倍。