Unsupervised Learning, Recommenders, Reinforcement Learning

Unsupervised Learning, Recommenders, Reinforcement Learning

第八周:无监督学习——聚类与异常检测

1. 聚类 (Clustering)
  • 目标:将未标注数据划分成有意义的群组(簇)。
  • K-means 算法
    • 步骤:①随机初始化 K 个质心;②分配每个点到最近的质心;③更新质心为该簇均值的点;重复②③直到收敛。
    • 优化目标:最小化簇内平方和 (distortion) ( J = \frac{1}{m} \sum_{i=1}^m |x^{(i)} - \mu_{c^{(i)}}|^2 )。
    • 初始化策略:多次随机初始化并选择最低代价的结果(避免局部最优)。
    • 选择 K 值:尝试不同 K,利用“肘部法则”或考虑后续任务需求。
2. 异常检测 (Anomaly Detection)
  • 目标:识别与大多数数据分布显著不同的异常样本。
  • 高斯分布方法
    • 假设每个特征服从高斯分布,计算概率 ( p(x) = \prod_{j=1}^n p(x_j; \mu_j, \sigma_j^2) )。
    • 若 ( p(x) < \epsilon ) (阈值),则标记为异常。
  • 系统构建
    • 使用正常数据(和极少量异常数据)训练/验证。
    • 评估指标:因为类别极度不平衡,使用精确率、召回率、F1 分数。
  • 特征选择:选择更接近高斯分布的特征,或通过变换(log、sqrt)调整;可创建新特征以暴露异常(如组合特征)。
  • 与监督学习的对比
    • 异常检测:正样本(异常)极少且类型多样,无法学到完整模式;常用于欺诈检测、设备故障预警。
    • 监督学习:正负样本充足且平衡,能学到稳定决策边界。

项目应用提示

  • 客户分群:用 K-means 将用户按行为分群,制定差异化营销策略。先标准化特征,再用肘部法则尝试 K=3~8。
  • 欺诈检测:先尝试异常检测,当正常交易量远大于欺诈交易且欺诈手法不断变化时尤其有效。记得特征变换使其接近正态。
  • 评估异常检测时要看查全率(抓到多少真正的异常)和查准率,(避免误报过多)。

第九周:推荐系统 (Recommender Systems)

1. 协同过滤 (Collaborative Filtering)
  • 思想:根据用户-物品的交互矩阵(打分、喜欢/点击),学习用户偏好和物品属性。
  • 算法:分别学习用户向量 ( w_u ) 和物品向量 ( x_i ),使内积 ( w_u \cdot x_i ) 逼近评分。
  • 损失函数:同时优化 ( w ) 和 ( x )(以及偏置项),加上正则化项。
  • 二元标签处理:对“喜欢/点击/收藏”,可直接用逻辑回归模型,损失函数替换为交叉熵。
  • 均值归一化:处理新用户(冷启动),通过减去用户平均评分(或物品平均)来避免预测偏低。
  • 实现细节:TensorFlow 中可自定义训练循环,通过梯度带 (GradientTape) 同时更新用户向量和物品向量矩阵。
  • 寻找相关物品:计算物品向量间的相似度(如余弦相似度)。
2. 基于内容的过滤 (Content-based Filtering)
  • 与协同过滤的区别
    • 协同过滤:仅依赖交互矩阵,不需要物品/用户特征。
    • 内容过滤:利用物品和用户的特征(如电影类型、导演、用户人口统计)来学习向量。
  • 深度学习方法
    • 构建用户网络(接受用户特征输出用户向量 ( v_u ))和物品网络(接受物品特征输出物品向量 ( v_i ))。
    • 预测:( v_u \cdot v_i )。
  • 大规模推荐:使用近似最近邻检索(ANN)快速从百万级物品中筛选出 top-k,无需实时计算所有物品得分。
  • 伦理考量:过滤过度会导致“信息茧房”;注意有害内容推荐;保护用户隐私。

项目应用提示

  • 交互数据丰富但特征稀缺时用协同过滤;冷启动严重且有丰富物品/用户属性时用内容过滤。
  • 结合两者可构建混合推荐(Hybrid),通常效果更佳。
  • 部署时,用离线评估(命中率均方误差),后实施在线A/B测试。用 ANN 加速大规模召回。

可选:主成分分析 (PCA)

  • 目的:降低特征维度,加速训练、压缩数据或可视化(2D/3D)。
  • 步骤:先标准化,计算协方差矩阵,取前 k 个主成分向量进行投影。
  • 与聚类的差异:PCA 是非监督降维,K-means 是聚类;两者可结合(降维后再聚类)。

第十周:强化学习 (Reinforcement Learning)

1. 基本概念
  • 目标:智能体在环境中学习采取动作以最大化累积奖励。
  • 关键术语
    • 状态 (State) ( s ):环境的当前情况。
    • 动作 (Action) ( a ):智能体的选择。
    • 奖励 (Reward) ( R(s) ) 或 ( R(s,a) )。
    • 回报 (Return):从当前时刻开始的累积折扣奖励 ( G_t = \sum_{k=0}^\infty \gamma^k R_{t+k+1} )。
    • 策略 (Policy) ( \pi(s) ):状态到动作的映射,决定行为。
  • **状态-动作价值函数 (Q-function)**:( Q(s,a) ) 表示在状态 ( s ) 执行动作 ( a ) 之后,遵循最优策略所能获得的期望回报。
  • 贝尔曼方程:( Q(s,a) = R(s) + \gamma \max_{a’} Q(s’, a’) )。
2. 深度 Q-网络 (Deep Q-Network, DQN)
  • 解决连续状态空间:用神经网络 ( Q(s,a; \theta) ) 近似 Q 函数,输入状态,输出所有动作的 Q 值。
  • 训练方法
    • 经验回放 (Experience Replay):存储转移 (s,a,r,s’,done) 到缓冲区,随机抽小批量训练,打破数据相关性。
    • 固定 Q 目标 (Fixed Q-targets):定期更新目标网络参数,稳定训练。
    • ϵ-贪婪策略:以概率 ϵ 随机探索,否则选择最优动作,平衡探索与利用。
  • 改进技巧
    • 软更新 (Soft Updates):动量更新目标网络参数。
    • 小批量训练 (Mini-batch)。
  • 应用示例:月球着陆器 (Lunar Lander) 项目,通过 DQN 学习平稳着陆。

项目应用提示

  • 强化学习适用于序列决策问题:游戏AI、机器人控制、动态定价、库存管理。
  • 开始前先明确定义状态、动作、奖励函数;奖励函数设计直接影响学习效率和结果。
  • 用 DQN 处理有限离散动作空间;策略梯度方法(后续进阶)可处理连续动作。
  • 训练成本高,先在仿真环境中迭代,再迁移到现实(Sim-to-Real)。

🧭 完整课程知识图谱总览

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[监督学习]
├── 回归: 线性/多项式 (W1-2) → 正则化 (W3) → 神经网络回归 (W4-5)
├── 二分类: 逻辑回归 (W3) → 神经网络二分类 (W4-5)
└── 多分类: Softmax (W5) → 神经网络多分类 (W5)

[无监督学习] (W8)
├── 聚类: K-means
└── 异常检测: 高斯概率模型

[推荐系统] (W9)
├── 协同过滤
└── 深度内容过滤

[强化学习] (W10)
└── 深度 Q-网络 (DQN)

[通用实践]
├── 偏差/方差、学习曲线、误差分析 (W6)
├── 迁移学习、数据增强 (W6)
└── 决策树与集成: 随机森林、XGBoost (W7)