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 | [监督学习] |