机器学习基础:监督学习、无监督学习与强化学习解析

发布时间:2026/10/31 19:12:33
机器学习基础:监督学习、无监督学习与强化学习解析

1. 机器学习基础概念解析

机器学习作为人工智能的核心技术领域,其本质是让计算机系统通过数据自动改进性能。想象一下教孩子识别动物:我们不会直接告诉孩子"狗有四条腿、会汪汪叫"这样的规则,而是展示大量狗和其他动物的图片,让孩子自己总结特征。机器学习的工作方式与此惊人地相似。

1.1 监督学习:有导师的教学模式

监督学习就像有个全能导师在身边,每个训练样本都带有标准答案。最常见的两种类型是:

  • 分类任务:预测离散标签

    • 垃圾邮件过滤(垃圾/非垃圾)
    • 医疗影像诊断(良性/恶性)
    • 情感分析(正面/负面)
  • 回归任务:预测连续值

    • 房价预测
    • 销售额预估
    • 股票价格走势

典型算法包括:

  • 线性回归(房价预测)
  • 逻辑回归(二分类)
  • 支持向量机(文本分类)
  • 随机森林(特征重要性分析)

实践提示:标注数据质量决定模型上限。我曾遇到一个案例,由于标注人员对"轻度抑郁"的判断标准不一致,导致模型在临界值附近预测极不稳定。建议至少安排3人交叉标注,计算Kappa系数评估一致性。

1.2 无监督学习:发现数据的内在密码

当没有现成标签时,无监督学习能自动发现数据中的隐藏模式。主要应用场景:

  • 聚类分析

    • 客户细分(RFM模型)
    • 异常检测(信用卡欺诈)
    • 基因序列分组
  • 降维技术

    • PCA用于特征压缩
    • t-SNE可视化高维数据
  • 关联规则

    • 购物篮分析(啤酒与尿布)
    • 推荐系统协同过滤

以K-means聚类为例,其迭代过程包括:

  1. 随机选择K个中心点
  2. 将每个点分配到最近的中心
  3. 重新计算中心点位置
  4. 重复2-3步直到收敛
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3) kmeans.fit(X) labels = kmeans.predict(X)

1.3 强化学习:通过试错成长

强化学习框架包含三个核心要素:

  • 智能体(Agent):学习主体
  • 环境(Environment):交互场景
  • 奖励(Reward):行为反馈

经典应用案例:

  • AlphaGo的围棋策略
  • 机器人路径规划
  • 广告竞价策略
  • 自动驾驶决策系统

关键算法演进:

  1. Q-Learning:基于价值表格
  2. Deep Q Network:结合神经网络
  3. Policy Gradient:直接优化策略
  4. Actor-Critic:综合价值与策略

2. 机器学习项目生命周期

2.1 数据准备阶段

数据质量决定模型效果上限,需重点关注:

  • 数据收集

    • 爬虫技术(Scrapy框架)
    • 公开数据集(Kaggle、UCI)
    • 传感器采集(IoT设备)
  • 数据清洗

    • 缺失值处理(均值填充/删除)
    • 异常值检测(3σ原则/箱线图)
    • 重复数据去重
  • 特征工程

    • 数值特征标准化
    • 类别特征编码(One-Hot)
    • 时间特征分解(年/月/日)
    • 文本特征向量化(TF-IDF)

血泪教训:曾因忽略数据分布变化导致线上事故。训练数据来自夏季,而实际应用在冬季,温度相关特征完全失效。建议进行时序交叉验证(TimeSeriesSplit)。

2.2 模型训练技巧

2.2.1 评估指标选择

不同任务需要不同评估标准:

任务类型常用指标适用场景
分类Accuracy, F1, AUC-ROC均衡数据集
分类Precision-Recall类别不平衡
回归MAE, RMSE, R²连续值预测
聚类Silhouette Score无监督分组
2.2.2 超参数调优

常用方法对比:

  1. 网格搜索(GridSearchCV)

    • 遍历所有参数组合
    • 计算成本高但全面
  2. 随机搜索(RandomizedSearchCV)

    • 随机采样参数空间
    • 效率更高
  3. 贝叶斯优化

    • 基于高斯过程
    • 适合昂贵评估场景
from sklearn.model_selection import GridSearchCV params = {'max_depth': [3,5,7], 'n_estimators': [50,100]} grid = GridSearchCV(RandomForestClassifier(), params) grid.fit(X_train, y_train)

2.3 模型部署要点

2.3.1 服务化方案
  • REST API(Flask/FastAPI)
  • gRPC服务(高性能场景)
  • 批处理模式(Spark)
2.3.2 监控指标
  • 预测延迟(P99<200ms)
  • 吞吐量(QPS)
  • 数据漂移检测(KL散度)
  • 预测结果分布变化

3. 常见问题诊断手册

3.1 训练误差分析

问题现象可能原因解决方案
训练集表现差模型太简单增加复杂度
验证集差距大过拟合正则化/Dropout
指标波动大学习率过高动态调整LR
收敛速度慢特征相关性低特征选择

3.2 线上故障排查

  1. 内存泄漏

    • 检查预测服务对象生命周期
    • 使用内存分析工具(Valgrind)
  2. 性能下降

    • 监控GPU利用率
    • 优化预处理流水线
  3. 结果异常

    • 验证输入数据分布
    • 检查特征编码一致性

4. 大模型时代的新范式

4.1 预训练+微调模式

典型技术路线:

  1. 海量无监督预训练

    • 语言模型(GPT)
    • 图像生成(Stable Diffusion)
  2. 下游任务微调

    • 适配具体业务场景
    • 小样本学习(Few-shot)

4.2 提示工程实践

  • 零样本提示 "将以下文本分类为正面/负面:{文本}"

  • 少样本提示 """ 示例1: 这电影太棒了 → 正面 示例2: 服务很差 → 负面 现在分类:{新文本} """

  • 思维链(CoT) " step by step..."

4.3 大模型部署优化

  • 量化技术

    • FP16 → INT8
    • 权重共享
  • 推理加速

    • Flash Attention
    • KV Cache复用
  • 硬件适配

    • CUDA核心优化
    • NPU专用指令集

实际部署中发现,7B参数的LLM在A10G显卡上:

  • FP16需要14GB显存
  • INT8量化后降至7GB
  • 结合梯度检查点可进一步压缩
python -m vllm.entrypoints.api_server \ --model meta-llama/Llama-2-7b-chat-hf \ --quantization awq \ --max-model-len 2048

在医疗问答场景测试中,量化后模型:

  • 推理速度提升2.3倍
  • 显存占用减少60%
  • 准确率下降<2%