无垠之码

深度剖析代码之道


图解机器学习 | 0. 绪论与学习路线

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E. ——Tom Mitchell,Machine Learning

机器学习是人工智能的一个核心分支,致力于开发算法和技术,使计算机无需进行明确的显式编程,即可从数据中自动分析规律、获取经验,并通过构建模型对未知数据进行预测或决策。

1.人工智能里程碑


机器学习的核心目标是获取泛化能力,这里的泛化指的是学习机器在经历了训练数据集之后,能够在新出现的、未曾见过的样本或任务上准确表现的能力。

  1. 20世纪70~80年代,专家系统(知识库+推理引擎),人工写规则模拟专家决策,主要问题规则爆炸,泛化能力差,知识更新成本高
  2. 2000年前后,统计学习理论成熟,数据互联网化,机器学习成为研究主流方向
  3. 2012年,在ImageNet竞赛中,Geoffrey Hinton团队用AlexNet大幅领先传统机器学习方法,全面神经网络化,深度学习转换为主流方向

2.学习范式


机器学习方法传统上被划分为以下几类:

  1. 监督学习,训练集中的目标是由人标注的,带有预期的输出标签,模型的任务是学习输入与输出之间的映射关系
  2. 无监督学习,训练集没有人为标注的结果,模型需要在没有明确答案的情况下,自主发现其中的模式或结构
  3. 强化学习,为了达成特定目标,在与环境的不断交互中逐步调整行为策略,没有直接的标签告诉它“对错”,而是通过评估每个行动后获得的回馈(正向奖励或负向惩罚)来学习最优路径

3.问题域


通常可以将机器学习待解决的问题分为以下几种类型:

2.1回归问题

通过训练数据(监督学习),寻找一个函数$f(x)$,使得这个函数生成的预测值与实际观察到的值之间的差距最小

针对参数化模型

  1. 参数非常多,无法书面化表达,(支持向量机,深度学习)
  2. 参数少,显式函数,简单的数学等式表达(线性回归,多项式回归,Ridge岭回归,Lasso岭回归)
  3. 过程性函数,通过规则或记忆来解决问题(决策树,随机森林,K-近邻)

其中,岭回归形式上依然是$f(x)=w^\top \cdot x + b$,但在寻找$w$的过程中加入了约束,Ridge倾向于让所有权重$w$都变小,但不为0,Lasso倾向于让不重要的特征权重$w$直接变成0,意味特征选择。

2.2分类问题

与回归问题类似,只是将输出集合限制在有限的分类集合,回归问题的一个特殊受限版本

  1. 逻辑回归,线性数值$w^\top \cdot x + b$回归,然后通过一个Sigmoid函数把数值压缩到0到1之间,代表属于某一类的概率
  2. 支持向量机
  3. 朴素贝叶斯,基于贝叶斯定理,计算在当前特征下,属于各个类别的概率(假定所有特征之间是独立的)
  4. K-近邻(KNN),新数据通过计算到K个分类的距离, 判断属于所属的类簇
  5. 决策树与随机森林

2.3聚类问题

无监督学习,只给出输入样本空间$\left\{x_i\right\}_{i=1}^n$,判断各样本属于那个类簇,相同簇样本之间具有相似的性质

  1. K-Means算法
1. 随机选取 K 个点作为初始聚类中心 C = {c₁, c₂, ..., cₖ}
2. Repeat (直至中心点不再移动/收敛):
   a. 【分配阶段】:
      FOR 每一个样本点 xᵢ ∈ S:
          计算 xᵢ 到所有中心点 cⱼ 的距离
          将 xᵢ 归类到距离最近的中心点所属的簇 Gⱼ
   b. 【更新阶段】:
      FOR 每一个簇 Gⱼ:
          计算该簇内所有成员坐标的平均值 (Mean)
          更新中心点 cⱼ = Mean(Gⱼ)
3. Return 最终的聚类中心和分类结果
  1. DBSCAN,基于密度的聚类

2.4检测问题

在输入样本$\left\{x_i\right\}_{i=1}^n$中,寻找异常数据的问题。在已知正常数据与异常数据的情况下,与有监督的分类问题相同。无监督的异常检测任务一般采用密度估计的方法,将密度中心的数据归纳为正常数据,否则为异常数据。

2.5降维问题

从高维数据中提取关键信息,将其转换为易于计算的低维度问题进而求解。

  1. PCA,主成份分析
  2. LDA,线性判别分析

2.6生成问题

学习原始数据的分布规律,然后在这个规律内创造出全新的、从未存在过但又看起来非常真实的数据。

  1. GANs,生成对抗网络
  2. VAE,变分自编码器
  3. Diffusion Models,扩散模型
  4. Transformer LLM,大语言模型

4.机器学习的流派


3.1看待参数的统计学的立场

如何通过已知样本,解决模型的生成问题

a.频率派

在现有的数据样本中,通过最大似然估计,获取最优的模型参数$\theta$,其最好的解释当前数据集。通过不断调整模型的参数$\theta$,直到让这一堆已经发生的样本$(x_i, y_i)$出现的联合概率达到最高。

数学本质:$\max_{\theta} \prod_{i=1}^{n} q(x_i, y_i; \theta)$

b.贝叶斯派

贝叶斯派认为当前样本只是真实样本中的一部分,参数$\theta$是随机变量。

数学本质:$P(\theta|\mathcal{D}) = \frac{P(\mathcal{D}|\theta)P(\theta)}{P(\mathcal{D})}$

3.2建模目标的视角的技术路线

如何通过现有模型,对未知数据的预测问题

a.判别式分类

核心思想:

建模条件分布$P(Y|X)$,在已知输入数据$x$的特性(一个数据包的大小、它的目的端口、它的协议类型)的情况下,计算其属于各个分类的条件概率(正常流量,DDoS攻击,扫描行为),使用计算结果的最大条件概率最为分类估计。

数学公式: $\hat{y} = \arg\max_{y} p(y|x)$

常用方法: 逻辑回归、支持向量机

b.生成式分类

核心思想:

建模联合分布$P(X,Y)$,在已知数据分布特性的情况下,它会先学习每一个类别$y$产生特征$x$的规律,即$P(x|y)$称为似然,同时也统计每个类别出现的频率,即$P(y)$,称为先验。当面对一个待分类的样本$x$时,它通过贝叶斯公式将这些画像信息综合起来,计算出该样本属于各类的概率,从而完成识别。

数学公式: $\hat{y} = \arg\max_{y} P(x|y)P(y)$

常用方法:朴素贝叶斯、高斯混合模型、隐马尔可夫模型

结论:

现实世界中在样本有限的情况下,想知道数据的分布规律$P(X,Y)$是非常困难的。进而利用这种分布规律,推倒出待预测的数据分类是非常困难的。但是样本有限的情况下,通过样本学习到分类方法P(Y|X)是很简单的事情,学习到分类方法后,只需要将待分类数据,作为分类方法的输入,就可以判断样本类别。

5.参考文献

  1. https://zh.wikipedia.org/zh-hans/机器学习
  2. https://webdav.diyao.me/图解机器学习%20((日)杉山将著)%20(Z-Library).pdf