机器学习笔记【Week9】

一、异常检测问题动机

  • 在现实中,我们经常会遇到 “异常检测” 的任务:识别罕见、异常、不符合正常模式的数据点。
    • 例:工业设备故障检测,银行欺诈识别,异常流量检测等。
  • 核心特点:异常样本稀少,难以用监督学习训练模型。

二、高斯分布

  • 建立算法前,需要假设每个特征满足 高斯(正态)分布

    • 在单一特征 x j x_j xj 上:
      p ( x j ; μ j , σ j 2 ) = 1 2 π   σ j exp ⁡ ( − ( x j − μ j ) 2 2 σ j 2 ) p(x_j; \mu_j, \sigma_j^2) = \frac{1}{\sqrt{2\pi}\,\sigma_j} \exp\left(-\frac{(x_j - \mu_j)^2}{2\sigma_j^2}\right) p(xj;μj,σj2)=2π σj1exp(2σj2(xjμj)2)

    • 参数:

      • μ j \mu_j μj:该特征的均值(样本平均)
      • σ j 2 \sigma_j^2 σj2:方差(样本方差)
  • 若所有特征相互独立,样本在多维空间上的概率为:
    p ( x ) = ∏ j = 1 n p ( x j ; μ j , σ j 2 ) p(x) = \prod_{j=1}^n p(x_j; \mu_j, \sigma_j^2) p(x)=j=1np(xj;μj,σj2)


三、算法流程

  1. 估计参数 μ j \mu_j μj, σ j 2 \sigma_j^2 σj2,使用训练集中每个特征的样本统计量。
  2. 计算异常概率:对于新样本 x x x,计算其在模型下的联合似然 p ( x ) p(x) p(x)
  3. 设定阈值 ϵ \epsilon ϵ
    • p ( x ) < ϵ p(x) < \epsilon p(x)<ϵ,则判定为异常(anomaly)。
    • 否则为正常样本。

通过此方法,我们能识别出那些在训练数据分布之下概率极低的样本。


四、异常检测系统的开发与评估

  • 开发流程:
    1. 从正常数据中估计 p ( x ) p(x) p(x)
    2. 设定阈值 ϵ \epsilon ϵ,根据历史异常样本调优。
    3. 使用混淆矩阵指标(TP, FP, FN, TN)评估系统效果。
  • 评估标准:
    • 精准率(Precision)召回率(Recall)F1 分数
    • 目标:低误报率、高召回率(尤其在安全或故障检测场景)。

五、与监督学习的对比

特性 异常检测(无监督) 监督学习
数据需求 正常样本丰富,异常样本稀少 同时需要正常和异常样本
应用场景 异常未知、难以标注的场景 标签已知、结构明确的分类任务
模型训练目标 学习正常分布 最小化预测误差
  • 异常检测更适合异常样本稀少或未知的情况。

六、特征选择

  • 特征选取关键性强:
    • 异常表现往往体现在特定特征上,不选择合适特征可能无法检测异常。
    • 可考虑大量候选特征,采用统计方法初筛,再人工选 +
    • 重要:避免冗余特征造成噪声、过拟合或高维问题。

七、实践建议

  • 建议基于领域知识选择特征,例如:
    • 监控系统:时间、人为操作数据、温度、压力等环境变量;
    • 金融领域:交易金额、频率、地理偏移等;
    • 一般场景:不仅采用数值特征,还应注意衍生与组合特征设计。
  • 数据预处理建议:
    • 标准化或归一化处理,保证每个特征都能被高斯假设合理拟合;
    • 挑选异常标签作为验证集,用于阈值设定和调优。

八、推荐系统问题背景

推荐系统帮助用户发现他们可能喜欢的物品,解决数据海量化导致的选择困难问题。
常见应用场景:

  • 电影推荐(Netflix, 豆瓣)
  • 商品推荐(Amazon, 淘宝)
  • 音乐推荐(Spotify, 网易云)

数据表示:

  • n u n_u nu 是用户数量, n m n_m nm 是物品数量。
  • y ( i , j ) y^{(i,j)} y(i,j):用户 j j j 对物品 i i i 的评分。
  • r ( i , j ) = 1 r(i,j) = 1 r(i,j)=1 如果评分存在,否则为 0。

九、协同过滤的动机

核心假设:喜欢相似物品的用户,通常对其他相似物品也有类似偏好。

数学上:

  • 每个物品 i i i 用向量 x ( i ) ∈ R n x^{(i)} \in \mathbb{R}^n x(i)Rn 表示其特征。
  • 每个用户 j j j 用向量 θ ( j ) ∈ R n \theta^{(j)} \in \mathbb{R}^n θ(j)Rn 表示其偏好。

预测评分:

y ^ ( i , j ) = ( θ ( j ) ) T x ( i ) \hat{y}^{(i,j)} = (\theta^{(j)})^T x^{(i)} y^(i,j)=(θ(j))Tx(i)
这里的内积表示:

  • 如果 θ ( j ) \theta^{(j)} θ(j) x ( i ) x^{(i)} x(i) 方向一致(高相似度),评分就高。
  • 如果方向相反(不匹配),评分就低。

十、协同过滤成本函数

我们希望学出使预测评分与真实评分尽量接近的参数:
J ( x , θ ) = 1 2 ∑ ( i , j ) : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) 2 + λ 2 ∑ j ∥ θ ( j ) ∥ 2 + λ 2 ∑ i ∥ x ( i ) ∥ 2 J(x, \theta) = \frac{1}{2} \sum_{(i,j): r(i,j)=1} \left( (\theta^{(j)})^T x^{(i)} - y^{(i,j)} \right)^2 + \frac{\lambda}{2} \sum_j \|\theta^{(j)}\|^2 + \frac{\lambda}{2} \sum_i \|x^{(i)}\|^2 J(x,θ)=21(i,j):r(i,j)=1((θ(j))Tx(i)y(i,j))2+2λjθ(j)2+2λix(i)2
原理解析:

  • 前半部分:最小化预测评分误差的平方和。
  • 正则化项:
    • 防止过拟合(防止 x ( i ) x^{(i)} x(i) θ ( j ) \theta^{(j)} θ(j) 的值无限增大以拟合少数评分)。
    • 控制模型复杂度,提升泛化能力。

十一、梯度更新公式

为了最小化成本函数,我们对每个参数求偏导:
∂ J ∂ x ( i ) = ∑ j : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) θ ( j ) + λ x ( i ) \frac{\partial J}{\partial x^{(i)}} = \sum_{j: r(i,j)=1} \left( (\theta^{(j)})^T x^{(i)} - y^{(i,j)} \right) \theta^{(j)} + \lambda x^{(i)} x(i)J=j:r(i,j)=1((θ(j))Tx(i)y(i,j))θ(j)+λx(i)

∂ J ∂ θ ( j ) = ∑ i : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) x ( i ) + λ θ ( j ) \frac{\partial J}{\partial \theta^{(j)}} = \sum_{i: r(i,j)=1} \left( (\theta^{(j)})^T x^{(i)} - y^{(i,j)} \right) x^{(i)} + \lambda \theta^{(j)} θ(j)J=i:r(i,j)=1((θ(j))Tx(i)y(i,j))x(i)+λθ(j)

用梯度下降或高阶优化方法(如 L-BFGS)同时更新 x ( i ) x^{(i)} x(i) θ ( j ) \theta^{(j)} θ(j)


十二、推荐系统与矩阵分解的关系

矩阵视角:
设评分矩阵 Y ∈ R n m × n u Y \in \mathbb{R}^{n_m \times n_u} YRnm×nu,协同过滤希望找到:
Y ≈ X Θ T Y \approx X \Theta^T YXΘT
其中:

  • X ∈ R n m × n X \in \mathbb{R}^{n_m \times n} XRnm×n:每行是物品特征 x ( i ) x^{(i)} x(i)
  • Θ ∈ R n u × n \Theta \in \mathbb{R}^{n_u \times n} ΘRnu×n:每行是用户参数 θ ( j ) \theta^{(j)} θ(j)

这类似于 低秩矩阵分解,但不同于传统 SVD:

  • 只拟合已评分项。
  • 通过正则化避免过拟合。

矩阵分解解释了推荐系统能在稀疏评分矩阵中填补空白。


十三、均值归一化

为什么需要?

有的物品评分普遍高(如经典电影),有的用户评分普遍高或低。
若不处理:

  • 模型可能学出错误的特征和偏好方向。

方法:

  • 每个物品减去均值:

y norm ( i , j ) = y ( i , j ) − μ ( i ) y_{\text{norm}}^{(i,j)} = y^{(i,j)} - \mu^{(i)} ynorm(i,j)=y(i,j)μ(i)

训练完成后预测值:
y ^ ( i , j ) = ( θ ( j ) ) T x ( i ) + μ ( i ) \hat{y}^{(i,j)} = (\theta^{(j)})^T x^{(i)} + \mu^{(i)} y^(i,j)=(θ(j))Tx(i)+μ(i)
均值归一化后:

  • 参数更易学。
  • 推荐结果不受评分基准偏置干扰。

十四、冷启动与扩展问题

冷启动

  • 新用户:没有历史评分,难以学出 θ ( j ) \theta^{(j)} θ(j)
  • 新物品:没有评分,无法学 x ( i ) x^{(i)} x(i)

解决方案:

  • 混合推荐(协同过滤 + 内容推荐)。
  • 初始阶段用物品属性或用户画像特征。

可扩展性

  • 协同过滤可以高效并行化,适合大规模分布式系统。
  • 常与近似优化(随机梯度下降、分布式矩阵分解)结合。

十五、推荐系统

主题 方法 本质 工程实践
协同过滤 矩阵分解,梯度下降 学习用户与物品的低维向量表示 正则化防过拟合、均值归一化去偏置、混合推荐应对冷启动
矩阵分解 评分矩阵低秩分解 潜在因子模型 适用于稀疏评分矩阵

十六、背后原理深挖

正则化的本质:

  • 避免在已评分样本上过拟合。
  • 让低维表示更平滑,提升泛化能力。

为什么是内积?

  • 内积度量向量相似性,符合“相似物品评分相近”的假设。
  • 简单高效,可快速计算所有物品的预测分数。

与 SVD 区别:

  • SVD 对整个矩阵分解,协同过滤只针对已评分项。
  • 协同过滤更灵活(可加正则、均值归一化、融合上下文)。

你可能感兴趣的:(人工智能,机器学习,人工智能)