目录

1.机器学习基础

1.1.监督学习

1.1.1.基本原理

1.1.2.优缺点

1.1.3.典型算法

1.1.4.算法详解

1.线性回归 (Linear Regression)

2. 逻辑回归 (Logistic Regression)

3. 决策树 (Decision Tree)

4. 随机森林 (Random Forest)

5. k-最近邻 (k-NN)

6. 朴素贝叶斯 (Naive Bayes)

7. 支持向量机 (SVM)

8. 感知器 (Perceptron)

9. 深度神经网络 (DNN)

1.1.5.监督学案例之店铺评分逻辑场景

1.2.非监督学习

1.2.1.基本原理

1.2.2.优缺点

1.2.3.典型算法

1.2.4.算法详解

1.2.4.1.聚类算法

1.K-Means 聚类

2.DBSCAN (Density-Based Spatial Clustering)

3.Gaussian Mixture Model (GMM)

4.层次聚类 (Hierarchical Clustering)

1.2.4.2.降维算法

1.PCA (Principal Component Analysis)

2.t-SNE (t-Distributed Stochastic Neighbor Embedding)

3.UMAP (Uniform Manifold Approximation and Projection)

4.Autoencoder

1.2.4.3 异常检测算法

1.Isolation Forest

2.LOF (Local Outlier Factor)

1.2.5.K-mens聚类解析

1.3.半监督学习

1.3.1 基本原理

1.3.2.优缺点

1.3.3.典型算法

1.3.3.1.基于图的方法,Label Propagation, LP)

1.3.3.2.生成模型,高斯混合模型(GMM) + EM, 变分自编码器(VAE)

1.3.3.3.低密度分离,半监督支持向量机(S3VM)

1.3.3.4.一致性正则化,Mean Teacher, FixMatch

1.3.3.5.伪标签,自训练(Self-Training), Noisy Student

1.3.3.6.对比学习,SimCLR

1.4 机器学习小结

2.深度学习与神经网络基础

2.1.概念常识

2.1.1.神经元

2.1.2.激活函数

2.1.2.1.基本概念

2.1.2.2.激活函数对比矩阵

2.1.2.3.激活函数选择决策树

2.1.2.感知机模型

2.1.3.神经网络

2.1.4.神经网络层

2.1.5.神经网络如何学习?

2.1.6.神经网络与深度神经网络

2.3.前向与反向传播机制

2.3.1.前向传播(Forward Propagation)

2.3.2.反向传播 (Back Propagation)

2.4.深度神经网络经典架构解析

2.4.1.CNN

2.4.1.1.卷积基础

2.4.1.2.经典架构

2.4.1.3.几个重要的CNN模型

2.4.1.4.四者对比

2.4.2.RNN

2.4.2.1.基本概念

2.4.2.2.经典架构之RNN

2.5.深度学习框架

3.深度学习到大模型的变化


1.机器学习基础

1.1.监督学习

1.1.1.基本原理

在监督学习中,训练数据是带标签的,每个输入数据都有一个对应的输出标签。模型的目标是从这些输入数据和标签对中学习一个映射函数,使得给定新的输入时,能够预测出正确的输出标签

  • 输入数据(X):由特征组成的样本数据。
  • 输出标签(y):与输入数据对应的正确答案(标签),如电商平台的价格、类别,垃圾邮件检测,车牌号识别
  • 对未来无标签的数据,可以推理出预期的结果

1.1.2.优缺点

  • 优点:
    • 训练过程较为清晰,容易理解。
    • 在有足够标注数据的情况下,模型可以非常准确地进行预测。
  • 缺点:
    • 依赖大量标注数据,标注数据需要人工进行,标注成本很高,在监督学习多少人工及高质量的数据,就有多少算法
    • 过拟合风险,模型可能会在训练数据上表现很好,但在新数据上效果差,尤其是在训练数据不足或质量不高时,垃圾进垃圾出,人工弱智

1.1.3.典型算法

算法

任务类型

模型复杂度

训练速度

预测速度

可解释性

处理非线性

适合数据规模

线性回归

回归

中小型

逻辑回归

分类

中大型

决策树

分类/回归

中型

随机森林

分类/回归

大型

k-NN

分类/回归

小中型

朴素贝叶斯

分类

大型

SVM

分类/回归

是(核函数)

中型

感知器

分类

中型

DNN

分类/回归

极高

极慢

极低

超大型

1.1.4.算法详解

1.线性回归 (Linear Regression)

核心原理: 通过拟合一条直线(或超平面)来建立特征与连续目标值之间的线性关系。目标是找到最佳的权重参数,使预测值与真实值的误差平方和最小。

数学本质:

  • 假设函数:y = w₀ + w₁x₁ + w₂x₂ + ... + wₙxₙ
  • 损失函数:均方误差 MSE = (1/n) Σ(yᵢ - ŷᵢ)²
  • 优化方法:最小二乘法(闭式解)或梯度下降

实现方式:

  • 正规方程法:直接计算 w = (XᵀX)⁻¹Xᵀy,适合小数据集
  • 梯度下降:迭代更新参数,适合大数据集
  • 随机梯度下降(SGD):逐样本更新,适合在线学习

优点:

  • 计算简单高效,训练和预测都很快
  • 模型可解释性强,每个特征的权重清晰
  • 不需要调参,实现简单
  • 适合线性关系明显的问题

缺点:

  • 只能处理线性关系,对非线性数据效果差
  • 对异常值敏感
  • 假设特征独立,多重共线性会影响结果
  • 容易欠拟合

适用场景:

  • 房价预测、销售预测
  • 趋势分析、时间序列预测
  • 特征关系简单的回归问题
  • 作为基线模型评估

工程实践建议:

  • 数据预处理:标准化特征,处理异常值
  • 特征工程:添加多项式特征处理非线性
  • 正则化:使用 Ridge/Lasso 防止过拟合
  • 诊断:检查残差分布,验证线性假设
2. 逻辑回归 (Logistic Regression)

核心原理: 虽然名字叫"回归",但实际是分类算法。通过 Sigmoid 函数将线性组合映射到 [0,1] 区间,表示样本属于某类的概率。

数学本质:

  • 假设函数:P(y=1|x) = 1 / (1 + e^(-wᵀx))
  • 损失函数:交叉熵损失 -Σ[y log(ŷ) + (1-y)log(1-ŷ)]
  • 优化方法:梯度下降、牛顿法、L-BFGS

实现方式:

  • 二分类:直接使用 Sigmoid 函数
  • 多分类:One-vs-Rest 或 Softmax(多项逻辑回归)
  • 正则化:L1(Lasso)产生稀疏解,L2(Ridge)防止过拟合

优点:

  • 输出概率值,便于理解和决策
  • 训练速度快,适合大规模数据
  • 可解释性强,特征权重有明确意义
  • 对噪声数据鲁棒性好
  • 在线学习友好

缺点:

  • 只能处理线性可分问题
  • 对特征工程依赖较大
  • 多重共线性影响模型稳定性
  • 不适合特征空间复杂的问题

适用场景:

  • 二分类问题:垃圾邮件识别、信用评分、疾病诊断
  • 点击率预测(CTR)
  • 客户流失预测
  • 风险评估

工程实践建议:

  • 特征缩放:标准化或归一化
  • 处理类别不平衡:调整类权重或采样
  • 特征选择:使用 L1 正则化自动选择特征
  • 校准:使用 Platt Scaling 校准概率输出
3. 决策树 (Decision Tree)

核心原理: 通过一系列 if-then-else 规则递归地将数据集分割成更纯净的子集。每个内部节点表示一个特征判断,每个叶节点表示一个类别或数值。

数学本质:

  • 分裂标准:信息增益(ID3)、信息增益率(C4.5)、基尼不纯度(CART)
  • 停止条件:最大深度、最小样本数、纯度阈值
  • 剪枝:预剪枝(提前停止)、后剪枝(代价复杂度剪枝)

实现方式:

  • 贪心算法:每次选择最优分裂点
  • 递归构建:自顶向下构建树结构
  • 分类树:叶节点输出类别(多数投票)
  • 回归树:叶节点输出数值(均值)

优点:

  • 可解释性极强,可视化直观
  • 不需要特征缩放和归一化
  • 自动进行特征选择
  • 可处理数值和类别特征
  • 可处理缺失值
  • 能捕捉非线性关系和特征交互

缺点:

  • 容易过拟合,泛化能力弱
  • 对数据变化敏感(高方差)
  • 贪心算法可能陷入局部最优
  • 对类别不平衡敏感
  • 不适合连续值预测

适用场景:

  • 需要可解释性的业务场景
  • 特征类型混合的数据
  • 规则提取和知识发现
  • 作为集成学习的基学习器

工程实践建议:

  • 限制树深度:防止过拟合
  • 设置最小分裂样本数
  • 使用剪枝技术
  • 结合集成方法(随机森林、GBDT)
4. 随机森林 (Random Forest)

核心原理: 集成学习方法,通过构建多棵决策树并对其预测结果进行投票(分类)或平均(回归)来提高模型性能。引入随机性降低方差。

数学本质:

  • Bagging:自助采样(Bootstrap)生成多个训练子集
  • 特征随机:每次分裂只考虑随机选择的特征子集
  • 集成策略:多数投票(分类)或平均(回归)
  • 袋外误差(OOB):未被采样的数据用于验证

实现方式:

  • 并行构建多棵决策树(通常 100-1000 棵)
  • 每棵树使用不同的训练子集和特征子集
  • 预测时聚合所有树的结果
  • 特征重要性:通过特征在所有树中的平均贡献计算

优点:

  • 准确率高,泛化能力强
  • 对过拟合鲁棒,不易过拟合
  • 可处理高维数据
  • 可评估特征重要性
  • 对缺失值和异常值不敏感
  • 并行化训练,速度快

缺点:

  • 模型体积大,内存占用高
  • 可解释性差(黑盒模型)
  • 预测速度相对慢
  • 对噪声数据敏感
  • 参数调优复杂

适用场景:

  • 表格数据的分类和回归
  • 特征重要性分析
  • 需要高准确率的场景
  • Kaggle 竞赛的基线模型
  • 金融风控、医疗诊断

工程实践建议:

  • 树的数量:通常 100-500 棵,观察 OOB 误差
  • 最大特征数:分类用 sqrt(n),回归用 n/3
  • 树深度:根据数据规模调整
  • 并行化:利用多核 CPU 加速训练
5. k-最近邻 (k-NN)

核心原理: 基于实例的学习方法,不显式学习模型。预测时找到与测试样本最近的 k 个训练样本,通过投票(分类)或平均(回归)得到结果。

数学本质:

  • 距离度量:欧氏距离、曼哈顿距离、闵可夫斯基距离、余弦相似度
  • 邻居选择:k 值决定局部平滑程度
  • 投票策略:简单投票或距离加权投票
  • 懒惰学习:训练阶段只存储数据,预测时才计算

实现方式:

  • 暴力搜索:计算与所有训练样本的距离,O(n)
  • KD 树:适合低维数据,O(log n)
  • Ball 树:适合高维数据,O(log n)
  • LSH(局部敏感哈希):近似最近邻,适合超高维

优点:

  • 原理简单,易于理解和实现
  • 无需训练过程,适合动态数据
  • 天然支持多分类
  • 对异常值不敏感(k>1 时)
  • 可处理非线性问题

缺点:

  • 预测速度慢,O(n) 复杂度
  • 内存占用大,需存储所有训练数据
  • 对高维数据效果差(维度灾难)
  • 对特征尺度敏感,需要归一化
  • k 值选择影响结果

适用场景:

  • 小规模数据集
  • 推荐系统(协同过滤)
  • 异常检测
  • 模式识别
  • 作为基线模型

工程实践建议:

  • 特征标准化:必须进行
  • k 值选择:交叉验证确定,通常 3-10
  • 距离加权:距离越近权重越大
  • 降维:PCA 降维后再使用
  • 索引结构:使用 KD 树或 Ball 树加速
6. 朴素贝叶斯 (Naive Bayes)

核心原理: 基于贝叶斯定理和特征条件独立假设的概率分类器。计算样本属于每个类别的后验概率,选择概率最大的类别。

数学本质:

  • 贝叶斯定理:P(y|x) = P(x|y)P(y) / P(x)
  • 朴素假设:特征之间条件独立,P(x|y) = ∏P(xᵢ|y)
  • 先验概率:P(y) 从训练数据统计
  • 似然概率:P(xᵢ|y) 根据特征类型建模

实现方式:

  • 高斯朴素贝叶斯:连续特征,假设服从正态分布
  • 多项式朴素贝叶斯:离散特征,适合文本分类
  • 伯努利朴素贝叶斯:二值特征
  • 拉普拉斯平滑:处理零概率问题

优点:

  • 训练和预测速度极快
  • 对小样本数据效果好
  • 可处理多分类问题
  • 对缺失数据不敏感
  • 可解释性强
  • 适合高维稀疏数据(文本)

缺点:

  • 特征独立假设往往不成立
  • 对特征相关性强的数据效果差
  • 对输入数据的表达形式敏感
  • 概率估计不够准确

适用场景:

  • 文本分类:垃圾邮件过滤、情感分析
  • 文档分类和主题识别
  • 实时预测系统
  • 推荐系统
  • 医疗诊断(症状独立假设)

工程实践建议:

  • 特征选择:移除高度相关的特征
  • 平滑处理:使用拉普拉斯平滑
  • 特征工程:TF-IDF 用于文本
  • 概率校准:输出概率可能不准确
7. 支持向量机 (SVM)

核心原理: 寻找一个最优超平面,使得两类样本之间的间隔(margin)最大化。通过核函数可以处理非线性问题,将数据映射到高维空间。

数学本质:

  • 目标:最大化间隔 2/||w||
  • 约束:yᵢ(wᵀxᵢ + b) ≥ 1
  • 对偶问题:转化为二次规划问题
  • 支持向量:位于间隔边界上的样本点
  • 核技巧:K(x,x') = φ(x)ᵀφ(x'),避免显式映射

实现方式:

  • 线性 SVM:直接在原始空间寻找超平面
  • 核 SVM:使用核函数处理非线性
    • 多项式核:适合低维数据
    • RBF(高斯)核:最常用,适合大多数情况
    • Sigmoid 核:类似神经网络
  • SMO 算法:高效求解对偶问题
  • 软间隔:允许部分样本分类错误(C 参数控制)

优点:

  • 泛化能力强,不易过拟合
  • 适合高维数据
  • 核函数灵活,可处理非线性
  • 只依赖支持向量,内存效率高
  • 理论基础扎实

缺点:

  • 训练时间长,O(n²) 到 O(n³)
  • 对大规模数据不友好
  • 参数调优复杂(C, gamma)
  • 对缺失数据敏感
  • 多分类需要额外策略
  • 可解释性差

适用场景:

  • 中小规模数据的分类
  • 高维数据(文本、基因数据)
  • 图像分类
  • 手写识别
  • 生物信息学

工程实践建议:

  • 特征缩放:必须标准化
  • 核函数选择:先尝试 RBF 核
  • 参数调优:网格搜索 C 和 gamma
  • 类别平衡:调整类权重
  • 大数据:使用线性 SVM 或 SGD
8. 感知器 (Perceptron)

核心原理: 最简单的神经网络,单层线性分类器。通过迭代更新权重,使得线性组合能够正确分类训练样本。是神经网络的基础。

数学本质:

  • 激活函数:sign(wᵀx + b),输出 +1 或 -1
  • 更新规则:如果分类错误,w = w + η·y·x
  • 收敛性:线性可分数据保证收敛
  • 学习率:η 控制更新步长

实现方式:

  • 在线学习:逐样本更新权重
  • 批量学习:累积梯度后更新
  • 多层感知器(MLP):堆叠多层,引入非线性激活函数
  • 投票感知器:保存多个权重向量,投票决策

优点:

  • 实现极其简单
  • 训练速度快
  • 在线学习友好
  • 内存占用小
  • 理论基础清晰

缺点:

  • 只能处理线性可分问题
  • 对非线性数据无能为力
  • 对噪声和异常值敏感
  • 不输出概率
  • 收敛速度依赖数据分布

适用场景:

  • 简单的二分类问题
  • 在线学习系统
  • 作为教学示例
  • 神经网络的基础单元
  • 快速原型验证

工程实践建议:

  • 特征标准化
  • 学习率调整:从大到小衰减
  • 多次迭代:设置最大迭代次数
  • 升级到 MLP:处理非线性问题
9. 深度神经网络 (DNN)

核心原理: 多层感知器的扩展,通过堆叠多个隐藏层和非线性激活函数,构建深层网络结构。通过反向传播算法训练,能够学习复杂的非线性映射。

数学本质:

  • 前向传播:逐层计算 aₗ = σ(Wₗaₗ₋₁ + bₗ)
  • 激活函数:ReLU, Sigmoid, Tanh, Softmax
  • 损失函数:MSE(回归)、交叉熵(分类)
  • 反向传播:链式法则计算梯度
  • 优化器:SGD, Adam, RMSprop

实现方式:

  • 全连接网络(MLP):每层神经元全连接
  • 卷积神经网络(CNN):图像处理
  • 循环神经网络(RNN/LSTM):序列数据
  • Transformer:自注意力机制
  • 正则化:Dropout, Batch Normalization, L2
  • 初始化:Xavier, He 初始化

优点:

  • 表达能力极强,可拟合任意复杂函数
  • 自动特征学习,无需手工特征工程
  • 适合大规模数据
  • 迁移学习:预训练模型可复用
  • 端到端学习
  • 在图像、语音、NLP 领域表现卓越

缺点:

  • 需要大量标注数据
  • 训练时间长,计算资源消耗大
  • 超参数多,调优困难
  • 可解释性极差(黑盒)
  • 容易过拟合
  • 需要 GPU 加速

适用场景:

  • 计算机视觉:图像分类、目标检测、分割
  • 自然语言处理:文本分类、机器翻译、问答
  • 语音识别
  • 推荐系统
  • 时间序列预测
  • 游戏 AI

工程实践建议:

  • 数据增强:扩充训练数据
  • 迁移学习:使用预训练模型
  • 正则化:Dropout, L2, Early Stopping
  • 批归一化:加速训练,提高稳定性
  • 学习率调度:余弦退火、warmup
  • 梯度裁剪:防止梯度爆炸
  • 模型压缩:剪枝、量化、蒸馏

1.1.5.监督学案例之店铺评分逻辑场景

1.2.非监督学习

1.2.1.基本原理

非监督学习不依赖于标注数据。在非监督学习中,训练数据没有标签,目标是从数据中发现潜在的结构、模式或规律,而不是预测具体的输出标签,关键在于通过不同的算法来揭示数据内部的潜在关系。

  • 输入数据(X):仅包含样本的特征数据,没有对应的标签。
  • 目标:识别数据中的内在隐藏的结构或规律,如聚类、降维、异常检测等,例如,顾客分群、PCA降维。

1.2.2.优缺点

  • 优点
    • 无需人工标注,数据获取成本低,非监督学习可以直接利用这些原始数据,避免了昂贵且耗时的标注过程,极大地扩展了可分析数据的范围。
    • 能够发现未知的模式和隐藏结构,例如,客户细分(通过聚类发现不同的用户群体)、基因表达分析(识别功能相似的基因模块)等,都可能发现人类尚未注意到的规律。
    • 有助于数据降维和特征提取,可作为监督学习的预处理步骤
    • 适应性强,适合探索性分析,非监督学习可以帮助分析师快速了解数据分布、识别异常点,为后续建模提供方向。
  • 缺点
    • 结果难以评估和验证,由于没有真实标签,很难定量判断聚类效果的好坏(如聚类结果是否真的有意义)。
    • 参数选择和算法设计依赖经验
    • 许多非监督算法(如聚类数K、降维维度)需要人为设定,而这些参数对结果影响巨大,但缺乏客观的指导原则。选择不当会导致完全不同的结论。
    • 计算复杂度高,许多非监督算法(如谱聚类、t-SNE)的计算开销很大,对硬件资源要求较高。
    • 对数据质量敏感,噪声和异常值会显著影响结果(例如,在聚类中可能形成虚假的簇)。数据预处理(归一化、去噪)尤为重要。

1.2.3.典型算法

算法

时间复杂度

空间复杂度

簇形状

需指定K

噪声处理

可扩展性

适用数据规模

K-Means

O(nkid)

O(n+k)

球形

优秀

大规模

K-Means++

O(nkd)

O(n+k)

球形

优秀

大规模

Mini-Batch K-Means

O(nkid/b)

O(k+b)

球形

极好

超大规模

DBSCAN

O(n log n)

O(n)

任意

优秀

中等

中等规模

HDBSCAN

O(n log n)

O(n)

任意

优秀

中等

中等规模

层次聚类

O(n²log n)

O(n²)

任意

中等

小规模

GMM

O(nkid)

O(nk)

椭圆

中等

中等

中等规模

Mean Shift

O(n²)

O(n)

任意

优秀

小规模

Spectral Clustering

O(n³)

O(n²)

任意

中等

小规模

OPTICS

O(n log n)

O(n)

任意

优秀

中等

中等规模

1.2.4.算法详解

1.2.4.1.聚类算法
1.K-Means 聚类

核心原理:

1. 随机初始化 K 个聚类中心

2. 分配步骤:将每个点分配到最近的中心

3. 更新步骤:重新计算每个簇的中心

4. 重复 2-3 直到收敛

数学公式:

  • 目标函数:minimize Σᵢ Σₓ∈Cᵢ ||x - μᵢ||²
  • 距离度量:欧氏距离 d(x,y) = √(Σ(xᵢ-yᵢ)²)

实现要点:

  • 初始化方法:K-Means++(选择距离远的初始中心)
  • 收敛条件:中心变化 < ε 或达到最大迭代次数
  • 优化技巧:使用 KD-Tree 加速最近邻搜索

优缺点:

  • ✓ 简单高效,易于实现
  • ✓ 适合大规模数据
  • ✗ 需要预先指定 K
  • ✗ 对初始值和异常值敏感
  • ✗ 只能发现凸形簇

参数调优:

  • K 值选择:肘部法则、轮廓系数、Gap统计量
  • 距离度量:欧氏、曼哈顿、余弦距离
2.DBSCAN (Density-Based Spatial Clustering)

核心原理:

1. 定义邻域:ε-邻域内的点

2. 核心点:邻域内至少有 MinPts 个点

3. 边界点:在核心点邻域内但不是核心点

4. 噪声点:既不是核心点也不是边界点

5. 从核心点扩展形成簇

关键参数:

  • ε (eps):邻域半径
  • MinPts:最小点数阈值

实现要点:

  • 使用空间索引(KD-Tree、Ball-Tree)加速邻域查询
  • 时间复杂度:O(n log n) with index, O(n²) without

优缺点:

  • ✓ 可发现任意形状的簇
  • ✓ 自动识别噪声点
  • ✓ 不需要预先指定簇数
  • ✗ 对参数 ε 和 MinPts 敏感
  • ✗ 不适合密度差异大的数据
  • ✗ 高维数据效果差(维度灾难)

参数选择:

  • ε:K-distance 图(K=MinPts)的拐点
  • MinPts:通常设为 2×维度
3.Gaussian Mixture Model (GMM)

核心原理:

  • 假设数据由 K 个高斯分布混合生成
  • 使用 EM 算法估计参数

数学模型:

p(x) = Σₖ πₖ N(x|μₖ,Σₖ) 其中:πₖ 是混合系数,μₖ 是均值,Σₖ 是协方差矩阵

EM 算法步骤:

  1. E-步:计算每个点属于各簇的后验概率
  2. M-步:更新参数(均值、协方差、混合系数)
  3. 重复直到收敛

优缺点:

  • ✓ 软聚类(概率分配)
  • ✓ 可以建模椭圆形簇
  • ✓ 理论基础扎实
  • ✗ 对初始值敏感
  • ✗ 可能陷入局部最优
  • ✗ 计算复杂度较高
4.层次聚类 (Hierarchical Clustering)

两种策略:

  1. 凝聚型(自底向上):每个点初始为一簇,逐步合并
  2. 分裂型(自顶向下):所有点初始为一簇,逐步分裂

链接方法:

  • Single Linkage:最近点距离(易产生链式效应)
  • Complete Linkage:最远点距离(倾向于紧凑簇)
  • Average Linkage:平均距离(折中方案)
  • Ward Linkage:最小化方差增量(最常用)

优缺点:

  • ✓ 不需要预先指定簇数
  • ✓ 生成树状图,可视化好
  • ✓ 可以在不同层次切割
  • ✗ 时间复杂度 O(n²log n) 或 O(n³)
  • ✗ 不适合大数据集
  • ✗ 对噪声敏感
1.2.4.2.降维算法
1.PCA (Principal Component Analysis)

核心原理:

  • 找到数据方差最大的方向作为主成分
  • 通过线性变换将数据投影到低维空间

数学推导:

  1. 数据中心化:X' = X - mean(X)
  2. 计算协方差矩阵:C = (X'ᵀX')/n
  3. 特征值分解:C = VΛVᵀ
  4. 选择前 k 个最大特征值对应的特征向量
  5. 投影:Y = X'V_k

实现方法:

  • 协方差矩阵特征值分解(适合 d < n)
  • SVD 分解(适合 d > n,更稳定)

优缺点:

  • ✓ 快速高效
  • ✓ 去除相关性
  • ✓ 可逆变换
  • ✗ 仅适用于线性关系
  • ✗ 对异常值敏感
  • ✗ 主成分可解释性差

应用技巧:

  • 标准化数据(特征尺度差异大时)
  • 选择主成分数:累计方差贡献率 > 85%
  • 白化(Whitening):使特征方差为1
2.t-SNE (t-Distributed Stochastic Neighbor Embedding)

核心思想:

  • 在高维空间用高斯分布建模点对相似度
  • 在低维空间用 t 分布建模点对相似度
  • 最小化两个分布的 KL 散度

算法步骤:

  1. 计算高维空间的条件概率 p_ij
  2. 初始化低维嵌入 y
  3. 计算低维空间的概率 q_ij
  4. 梯度下降最小化 KL(P||Q)

关键参数:

  • perplexity:控制关注的邻居数量(5-50)
  • learning_rate:学习率(10-1000)
  • n_iter:迭代次数(至少1000)

优缺点:

  • ✓ 可视化效果极佳
  • ✓ 保持局部结构
  • ✓ 可发现非线性关系
  • ✗ 计算复杂度 O(n²)
  • ✗ 不保持全局结构
  • ✗ 不能用于新数据
  • ✗ 结果不稳定(随机初始化)

使用建议:

  • 仅用于可视化,不用于特征工程
  • 多次运行选择最佳结果
  • 大数据集使用 Barnes-Hut 近似
3.UMAP (Uniform Manifold Approximation and Projection)

核心原理:

  • 基于黎曼几何和拓扑数据分析
  • 构建高维数据的模糊拓扑表示
  • 在低维空间优化类似的拓扑结构

关键参数:

  • n_neighbors:局部邻域大小(2-100)
  • min_dist:低维空间最小距离(0.0-0.99)
  • metric:距离度量(欧氏、余弦等)

优缺点:

  • ✓ 比 t-SNE 快得多
  • ✓ 保持全局和局部结构
  • ✓ 可用于新数据投影
  • ✓ 支持多种距离度量
  • ✗ 参数调优复杂
  • ✗ 理论较复杂

对比 t-SNE:

  • 速度:UMAP 快 10-100 倍
  • 全局结构:UMAP 更好
  • 局部结构:两者相当
  • 可扩展性:UMAP 更好
4.Autoencoder

网络结构:

输入层 → 编码器 → 潜在空间 → 解码器 → 输出层

变体:

  1. Vanilla Autoencoder:基础版本
  2. Sparse Autoencoder:稀疏约束
  3. Denoising Autoencoder:去噪训练
  4. Variational Autoencoder (VAE):生成模型
  5. Contractive Autoencoder:对输入扰动鲁棒

优缺点:

  • ✓ 非线性降维能力强
  • ✓ 可学习复杂特征
  • ✓ 可用于生成和去噪
  • ✗ 需要大量数据
  • ✗ 训练时间长
  • ✗ 超参数多
1.2.4.3 异常检测算法
1.Isolation Forest

核心思想:

  • 异常点更容易被隔离(需要更少的分割)
  • 通过随机选择特征和分割点构建树

算法流程:

  1. 随机选择特征和分割值
  2. 递归分割直到点被隔离或达到深度限制
  3. 构建多棵树(森林)
  4. 异常分数 = 平均路径长度的归一化

优缺点:

  • ✓ 高效,线性时间复杂度
  • ✓ 适合高维数据
  • ✓ 参数少,易于使用
  • ✗ 对正常数据的密度分布敏感
  • ✗ 不适合局部异常

参数设置:

  • n_estimators:树的数量(100-200)
  • max_samples:子采样大小(256)
  • contamination:异常比例(0.1)
2.LOF (Local Outlier Factor)

核心概念:

  • 局部可达密度:点与邻居的平均可达距离
  • LOF 值:点的局部密度与邻居局部密度的比值

计算步骤:

  1. 计算 k-距离和 k-邻域
  2. 计算可达距离
  3. 计算局部可达密度 LRD
  4. 计算 LOF = 邻居 LRD 均值 / 自身 LRD

优缺点:

  • ✓ 可检测局部异常
  • ✓ 考虑密度变化
  • ✓ 可解释性强
  • ✗ 时间复杂度 O(n²)
  • ✗ 对参数 k 敏感
  • ✗ 不适合高维数据

1.2.5.K-mens聚类解析

场景:如电商客户群分析,针对不同消费群体,展现不同商品梯度的价格,如:将用户划分为不同的群体,实施更精准的营销策 K-means 应用场景:客户分群略(如向不同群体推荐不同的商品、发送定制化的优惠券等)

  1. 特征选择/构建:从用户数据中提取关键特征,如:
    • 最近购买时间
    • 购买频率
    • 性别年龄
    • 购买总金额 (Monetary Value) - (RFM 模型)
    • 浏览商品类别偏好
    • 平均客单价
    • 活跃度指标(登录次数、停留时长等)
    • 支付手机型号
    • 支付方式
  2. 数据预处理:对选取的特征进行清洗、处理缺失值、特征缩放(非常重要,因为 K-means 基于距离计算)。
  3. 选择 K 值:客户分为4个群体,则K为4。可以通过业务经验、肘部法则 (Elbow Method) 或轮廓系数 (Silhouette Score) 等方法辅助确定 K 值。选择 K 个数据点作为初始聚类中心(Centroids)。
  4. 运行 K-means:使用预处理后的用户特征数据运行 K-means 算法。计算每个数据点到各个聚类中心的距离,将其分配给距离最近的那个聚类中心所在的簇及重新计算每个簇的聚类中心(通常是该簇所有数据点的均值)
  5. 重复上述的3-4的步骤,直到聚类中心不再发生显著变化或达到预设的迭代次数。算法优化目标:最小化平方误差和 (Sum of SquaresErrors, SSE)
  6. 结果分析与画像:分析每个簇的特征均值(聚类中心),理解每个客户群体的特点(例如,“高价值活跃用户”、“低消费潜力新用户”、“即将流失用户”等),并为每个群体打上标签,形成用户画像。
  7. 策略制定:基于用户画像,为不同群体制定差异化的营销、服务和产品策略。

1.3.半监督学习

1.3.1 基本原理

核心目标:半监督学习介于监督学习和非监督学习之间,它利用少量带标签的数据和大量未标签的数据来进行学习。其动机在于现实世界中,获取未标签数据,通常比获取带标签数据容易得多且成本更低。通过结合利用这两种数据,达到比仅使用少量带标签数据(监督学习)或仅使用未标签数据(非监督学习)更好的学习效果,特别是提高模型的泛化能力和准确性。这里可以了解一下强化学习里很多已经包含了半监督学习

1.3.2.优缺点

  • 优点:减少对大量标注数据的依赖,能够在标注稀缺的情况下有效利用未标注数据,提高模型性能
  • 缺点:伪标签可能带来错误传播,未标注数据质量差时可能影响模型性能

1.3.3.典型算法

1.3.3.1.基于图的方法,Label Propagation, LP)

在半监督学习(semi-supervised learning)中,我们有一小部分节点有标签(labeled nodes),大部分节点没有标签(unlabeled nodes)。利用图的结构信息,把已知标签传播到未知节点。

应用场景

  • 社交网络节点分类(如用户兴趣分类)
  • 文本/文档分类(词或文档构建相似图)
  • 图像分割(像素或超像素作为节点,边表示相似性)
  • 半监督推荐系统
1.3.3.2.生成模型,高斯混合模型(GMM) + EM, 变分自编码器(VAE)

生成模型的目标是学习数据的概率分布 p(x)p(x)p(x),能够生成新的样本。

  • 给定观测数据

xxx,建模 p(x)p(x)p(x)

  • 与判别模型不同(判别模型建模

p(y∣x)p(y|x)p(y∣x) 或直接分类),生成模型可以生成数据,进行密度估计,甚至用于半监督学习。

常见类型:

  • 传统概率模型:GMM、隐马尔可夫模型(HMM)
  • 深度生成模型:VAE、GAN、流模型(Flow-based)
1.3.3.3.低密度分离,半监督支持向量机(S3VM)

核心思想:分类决策边界应该避开高密度数据区域。

  • 已知标签点可能落在不同类别高密度区域
  • 未标记点分布可以帮助找到“自然间隙”,使决策边界落在数据稀疏区域
  • 图形上就是把边界放在两个簇的空隙中,而不是穿过数据点密集区

直观理解:像在人群中划线,尽量不要切穿人群,而是在人群之间的空隙划线

1.3.3.4.一致性正则化,Mean Teacher, FixMatch

方法

核心思想

未标记数据利用方式

关键公式

特点

一致性正则化

对同一样本扰动保持预测一致

强制平滑决策边界

(L_\text{consistency} = D(f(x), f(\tilde{x})))

通用框架,简单

Mean Teacher

教师-学生 EMA 提供稳定伪监督

学生预测对齐教师预测

(\theta' = \alpha \theta' + (1-\alpha) \theta)

稳定性好,不需阈值

FixMatch

伪标签 + 强增强一致性

弱增强生成伪标签 → 强增强匹配

(\mathbf{1}(\max f(x_w)>\tau) H(\hat{y}, f(x_s)))

简单高效,端到端训练

1.3.3.5.伪标签,自训练(Self-Training), Noisy Student

方法

核心思想

未标记数据使用

特点

关键点

伪标签

给未标记数据生成临时标签

单轮生成标签,加入训练

简单直接

阈值控制伪标签质量

自训练

迭代更新模型和伪标签

反复生成伪标签,更新训练集

泛化伪标签方法

迭代训练,逐步改进

Noisy Student

自训练 + 噪声增强

生成伪标签 + 学生训练带噪声

强鲁棒性,高性能

数据增强 + Dropout + EMA

1.3.3.6.对比学习,SimCLR

对比学习是一种 自监督学习(Self-Supervised Learning) 方法,其目标是:

  • 相似样本(Positive Pair):通常是同一图像的不同增强版本
  • 不相似样本(Negative Pair):不同图像或数据点

对比学习通过构建“正例对”和“负例对”来训练表示模型 fθ(x)f_\theta(x)fθ​(x),使得嵌入空间结构化。让相似样本的表示靠近,让不相似样本的表示远离。

1.4 机器学习小结

特性

监督学习

非监督学习

半监督学习

目标

学习从输入到输出的映射,进行预测

发现数据中隐藏结构特征,进行探索分析

利用少量标记提高模型性能

数据类型

标签数据

无需标签数据

少量标签及大量无需标签数据

常见算法

线性回归、决策树等

k-means,pca等

self-training,协同训练等

优点

精确度较高,有明确的评估标准

利用大量未标注数据,适合数据探索任务

能够在标注稀缺的情况下有效利用未标注数据,提高模型性能

缺点

需要大量标签数据,容易过拟合

缺乏评估标准,模型的效果不易量化

数据标签质量带来性能问题

2.深度学习与神经网络基础

2.1.概念常识

2.1.1.神经元

深度神经网络的最小单元,我们称「神经元」,如下图神经元的结构,我们可以用数学公式去模拟人脑,其结构非常简单,共有三个组成元素:

  • 权重(weight, w)
  • 偏压(bias, b)
  • 激活函数(activation function, δ)

神经元结构允许多个输入与一个输出,每一个输入对于结果的影响程度不同,所以需要靠各自的权重来区分输入的重要性。而激活函数就像一个on/off开关,偏压值b 为一个修正值,当我们无法决定神经值的激活门槛,就可以靠偏压值b 来修正

2.1.2.激活函数

2.1.2.1.基本概念

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。总而言之,激活函数是决定神经网络输出的数学方程式。

激活函数的核心作用是为神经网络引入非线性。如果没有激活函数,无论网络有多少层,整个网络都只是线性变换的叠加,最终等价于一个单层线性模型,无法学习复杂的模式。

简单来说,激活函数决定了神经元是否被"激活"以及激活的程度,让神经网络能够:

  • 学习和表示复杂的非线性关系
  • 进行特征提取和抽象
  • 解决复杂的分类、回归等问题

现实世界充满非线性,激活函数就是在模拟这些非线性的决策边界和响应特性。

  • 神经元放电:只有刺激超过阈值才会激活
  • 肌肉收缩:轻微用力没反应,超过阈值才收缩
  • 水的沸腾:99°C是水,100°C突然变成蒸汽
  • 弹簧形变:小力线性形变,大力超过弹性极限就永久变形
  • 视觉感知:微弱光线看不见,超过阈值才能感知

人工神经元的工作原理,数学化可视化过程如下:

2.1.2.2.激活函数对比矩阵

常见激活函数:https://medium.com/analytics-vidhya/activation-functions-all-you-need-to-know-355a850d025e

激活函数

公式

导数

范围

优点

缺点

场景

物理类比

使用场景

Sigmoid

1/(1+e^-x)

σ(1-σ)

(0,1)

概率解释

梯度消失、非零中心

二分类输出

概率开关

输出层、门控

Tanh

(e^x-e^-x)/(e^x+e^-x)

1-tanh²

(-1,1)

零中心

梯度消失

RNN

ReLU

max(0,x)

0或1

[0,∞)

简单高效

Dead ReLU

默认选择

二极管

CNN默认

Leaky ReLU

max(αx,x)

α或1

(-∞,∞)

无Dead

需调参

避免神经元死亡

漏电阀门

CNN

PReLU

max(αx,x)

α或1

(-∞,∞)

α可学习

参数增加

深度CNN

ELU

x或α(e^x-1)

1或ELU+α

(-α,∞)

负值输出

计算慢

避免神经元死亡

漏电阀门

噪声敏感

SELU

λ·ELU

-

(-∞,∞)

自归一化

需特殊初始化

FNN

GELU

x·Φ(x)

-

(-∞,∞)

平滑

计算复杂

深度网络

概率门控

Transformer

Swish

x·σ(x)

-

(-∞,∞)

平滑非单调

计算复杂

深度网络

概率门控

现代CNN

Mish

x·tanh(ln(1+e^x))

-

(-∞,∞)

平滑

最复杂

SOTA模型

2.1.2.3.激活函数选择决策树
任务类型
├─ ①计算机视觉
│  ├─ 标准CNN
│  │  ├─ 默认选择 → ReLU
│  │  ├─ 追求性能 → Swish/Mish
│  │  └─ Dead ReLU问题 → Leaky ReLU/PReLU
│  ├─ 轻量级模型
│  │  └─ ReLU(计算最快)
│  └─ SOTA模型
│     └─ Swish/Mish
│
├─ ②自然语言处理
│  ├─ Transformer
│  │  └─ GELU(BERT/GPT标准)
│  ├─ RNN/LSTM
│  │  └─ Tanh(隐藏状态)+ Sigmoid(门控)
│  └─ 轻量级
│     └─ ReLU
│
├─ ③强化学习
│  └─ ReLU/ELU
│
└─ ④输出层
   ├─ 二分类 → Sigmoid
   ├─ 多分类 → Softmax
   ├─ 回归 → Linear
   └─ 多标签 → Sigmoid

2.1.2.感知机模型

Warren McCulloch 和 Walter Pitts 于1957年,在神经元建模方面工作的启发,心理学家 FrankRosenblatt 参考大脑中神经元信息传递信号的工作机制,发明了神经感知机模型 Perceptron

2.1.3.神经网络

在机器学习和认知科学领域,人工神经网络(ANN),简称神经网络(NN)是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络是多层神经元的连接,上一层神经元的输出,作为下一层神经元的输入。类似人类神经元,一个信号逐步往下个神经元传播值

2.1.4.神经网络层

层(Layer): 基本计算单元,对输⼊数据进⾏特定变换。

  • 输⼊层 (Input Layer):原材料⼊口,接收原始数据。
  • 隐藏层 (Hidden Layer(s)):加⼯⻋ᳵ,进⾏信息处理和学习。可以有很多层。
  • 输出层 (Output Layer):成品出口,产⽣最终结果。
  • 全连接 (Fully Connected):上⼀层的每个神经元跟下⼀层的每个神经元连接。全局学习模式
  • 深度 (Depth):指ᵌ藏层的数• 宽度 (Width):指每层神经元的数。
  • 卷积层 (Convolutional Layer):通过可学习的滤波器(卷积核)扫描输入数据,主要用于捕捉局部空间特征(如图像处理)。局部学习模式
  • 激活层 (Activation Layer): 应用非线性激活函数(如 ReLU、Sigmoid、Tanh)来打破线性组合,使网络具备表达复杂函数的能力。
  • 池化层 (Pooling Layer):常见如最大池化(Max Pooling)或平均池化,用于降低特征图的维度,减少计算量并保持重要信息。
  • 归一化层 (Normalization Layer):常见如批归一化(Batch Normalization),稳定训练过程,通过将样本特征调整为0均值、1方差的分布,加速收敛。
  • 丢弃层 (Dropout Layer):在训练期间随机关闭部分神经元,是一种常用的正则化技术,旨在防止模型过拟合。

2.1.5.神经网络如何学习?

整个学习过程就是一个循环:

  • 前向传播 → 得到预测
    • 每个输入乘以对应的权重,加上偏置。
    • 结果经过激活函数(Activation Function)——让网络能够处理非线性问题。
    • 输出给下一层,直到到达输出层。
  • 计算损失 → 看预测有多差
    • 神经网络学习的核心是减少预测误差。
    • 预测结果和真实结果之间的差距由损失函数计算。
    • 常见损失函数:均方误差(MSE):用于回归问题、交叉熵(Cross Entropy):用于分类问题
  • 反向传播 → 调整权重,通过调整“连接强度”(模型权重 W),
    • 实际上是调整权重和偏置以降低损失。这个过程叫反向传播。计算输出层损失对每个权重的导数(偏导数)。将误差逐层向前传播,计算隐藏层权重的梯度。使用梯度下降(Gradient Descent)更新权重
  • 重复多次(训练多个 epoch)直到损失足够小,让预测结果(输出 Y) 不断接近正确答案(标签 Y_)。

2.1.6.神经网络与深度神经网络

简单来说,深度神经网络比神经网络多了很多隐藏层,如下图所示;隐藏层增多,需要对应的算法,且计算量及算力增长很大,还需要大量的数据。简单来说,深度神经网络框架产生的大前提是:1.海量数据;2.更优的算法;3.更强的算力资源如GPU

2.3.前向与反向传播机制

2.3.1.前向传播(Forward Propagation)

  • 按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。
  • 正向传播的计算图,其中左下角是输入,右上角是输出。可以看到,图中箭头方向大多是向右和向上,其中方框代表变量,圆圈代表运算符,箭头表示从输入到输出之间的依赖关系。
假设输入是一个特征为x∈Rd的样本,且不考虑偏差项,那么中间变量
z=W1x,
其中W(1)∈Rh×d是隐藏层的权重参数。把中间变量z∈Rh输入按元素运算的激活函数ϕ后,将得到向量长度为h的隐藏层变量
h=ϕ(z).
隐藏层变量h也是一个中间变量。假设输出层参数只有权重W(2)∈Rq×h,可以得到向量长度为q的输出层变量
o=W2h.
假设损失函数为ℓ,且样本标签为y,可以计算出单个数据样本的损失项
L=ℓ(o,y).
根据L2范数正则化的定义,给定超参数λ,正则化项即
s=λ2(∥W(1)∥2F+∥W(2)∥2F),
其中矩阵的Frobenius范数等价于将矩阵变平为向量后计算L2范数。最终,模型在给定的数据样本上带正则化的损失为
J=L+s.
我们将J称为有关给定数据样本的目标函数,并在以下的讨论中简称目标函数。

2.3.2.反向传播 (Back Propagation)

反向传播是一种机制,通过这种机制,可以反复调整影响神经元输出的组件(偏差、权重、激活),以降低成本函数。在神经网络的结构中,神经元的输入,包括与前一层神经元的所有先前连接,决定了它的输出。反向传播操作计算成本函数相对于权重、偏差和前一层激活的偏导数,以确定哪些值会影响成本函数的梯度。通过计算梯度使代价函数最小化,得到局部极小值。在每个迭代或训练步骤中,网络中的权重通过计算的梯度以及 learning rate 进行更新,该梯度控制对权重值的修改因子。在神经网络的训练阶段,每个步骤都要重复这个过程。理想情况下,目标是在每一步之后更接近局部最小值。

  • 先算算错多少:计算预测结果与正确答案的“误差”(Loss)。
  • 从后往前“追责”:倒推计算每⼀层的每个连接对误差的“贡献”。
  • 告诉⼤家怎么改:根据“贡献”调整权重,让下次误差变⼩。
  • 关键:⽤微积分的“᱾式法则”高效计算。

具体参考:http://neuralnetworksanddeeplearning.com/chap2.html

怎么调整参数最有效?

梯度下降法是一种算法,用于引导在每一步中选择的成对值朝着最小值移动。

  • 局部最小值:成本函数指定范围或扇区内的最小参数值。
  • 全局最小值:这是整个成本函数域内的最小参数值。

梯度下降算法通过计算可微函数的梯度并沿梯度的相反方向移动,指导搜索以局部/全局最小值最小化函数的值。

把梯度下降 (Gradient Descent),理解如何快速下山,梯度告诉我们下⼭最快的⽅向,我们就朝那⾛⼀⼩步。

更新规则:新参数 = 旧参数 - 学习率 × 改进建议(梯度)

学习率 (Learning Rate):每⼀步迈多⼤。太⼩慢,太⼤可能错过最低点。• 常⻅做法 (⼩批量 Mini-batch):每次看⼀⼩部分数据来计算⽅向和调整参数,效率和稳定性均衡

2.4.深度神经网络经典架构解析

2.4.1.CNN

2.4.1.1.卷积基础
  • 核心思想:通过卷积核和池化对输入数据进行局部感受,提取空间特征;局部感受野,卷积提取空间特征;就像一把放大镜,在图像上滑动,捕捉局部细节。
  • 典型结构:
    • 卷积层(Convolution):每个卷积核只看输入的一部分,提取局部特征
      • 关键特性:
        • 参数共享: 同⼀个卷积核在整个输⼊上共享权重,极⼤减少参数量
        • 局部连接:神经元只与输⼊的⼀个局部区域连接
        • 平移不变性: 对特征的位置不敏感
      • 核心参数:卷积核大小、步长、填充、通道数
    • 池化层(Pooling):降低维度,减少空间尺寸,提高计算效率,同时保留重要特征,逐步减⼩特征图的空ᳵ尺⼨,增⼤感受视野
      • 最⼤池化 (Max Pooling): 取区域内的最⼤值,例如,降低分辨率
      • 平均池化 (Average Pooling): 取区域内的平均值。例如滤镜
    • 全连接层(Fully Connected):做分类或回归
  • 优势:对空间结构(如图像、视频)的数据表现强大,能有效捕捉局部模式。
  • 劣势:不擅长处理序列依赖
2.4.1.2.经典架构

特征提取经典使用卷积层来做局部特征的提取学习,通过多层卷积来模拟人类识别数字的几何特征,而全连接层采用全局学习模式来进行分类识别手写9还是手写6

2.4.1.3.几个重要的CNN模型
  • AlexNet
    • 2012,ImageNet冠军。关键贡献:更深的网络、ReLU、Dropout、GPU 加速;AlexNet 是深度 CNN 中证明深度卷积网络在大规模图像分类上的有效性。
    • 它包含 11x11、5x5 和 3x3 的卷积层,以及最大池化、dropout、数据增强、ReLU 激活函数和带动量的随机梯度下降 (SGD)。它在每个卷积层和全连接层之后都添加了 ReLU 激活函数。AlexNet 在两块 Nvidia GeForce GTX 580 GPU 上同时训练了 6 天,这也是其网络被分为两个流水线的原因。

  • VGG-Net:
    • 2014,探索深度影响,使用 连续的小卷积核 (3×3) 堆叠代替大卷积核,证明深度是关键;适合做 特征提取器,如迁移学习。
    • 与 AlexNet 类似,VGGNet 也只使用 3x3 卷积层,但滤波器数量众多。它在 4 个 GPU 上训练了 2-3 周。目前,它是图像特征提取领域最常用的模型。VGGNet 的权重配置是公开的,并已被许多其他应用和挑战赛用作基准特征提取器。

  • GoogLeNet:
    • 引入Inception 模块:不同尺寸卷积核(1×1、3×3、5×5)并行提取多尺度特征;如1×1 卷积用于降维,减少计算量;更深、更宽,但计算成本控制得当。
    • 该网络采用了一种受 LeNet 启发的 CNN,但实现了一种名为“Inception 模块”的创新元素。它使用了批量归一化、图像失真和 RMSprop 算法。该模块基于多个非常小的卷积层,从而大幅减少了参数数量。其架构由一个 22 层深的 CNN 组成,但参数数量从 6000 万(AlexNet)减少到了 400 万。

  • ResNet:
    • 引入残差连接 (Residual Connection),解决了深度网络训练中的梯度消失/退化问题,可训练百甚至上千层网络
    • 该架构采用了“跳跃连接”并大量运用了批量归一化。这种跳跃连接也被称为门控单元或门控循环单元,与近期在循环神经网络 (RNN) 中应用的成功元素非常相似。得益于这项技术,他们能够训练出一个拥有 152 层的神经网络,同时其复杂度仍然低于 VGGNet。

2.4.1.4.四者对比

网络

特点

深度

核心创新

工程影响

AlexNet

GPU 加速、ReLU、Dropout

8 层

激活函数 + Dropout

打开深度学习时代,支持大规模训练

VGGNet

小卷积核堆叠

16-19 层

3×3 卷积连续堆叠

提炼深度网络特征,结构简洁,参数多

GoogLeNet

Inception 模块、多尺度

22 层

网络中的网络 + 1×1 卷积降维

高效特征提取,计算成本低

ResNet

残差连接

50~152 层

残差学习

可训练极深网络,解决梯度消失

2.4.2.RNN

2.4.2.1.基本概念
  • 核心思想:通过循环结构处理序列数据,将前一时刻的输出作为当前时刻的输入,捕捉时间依赖;循环记忆,捕捉时间依赖关系;就像记笔记,把前面的内容记下来,用来理解当前内容。
  • 典型结构:
    • 循环单元(如标准RNN、LSTM、GRU):保留历史信息
  • 优势:对时间序列、文本、语音等顺序数据有天然优势。
  • 劣势:并行计算困难,长序列容易梯度消失
2.4.2.2.经典架构之RNN
  • 原始 RNN 的局限性: 难以捕捉长期依赖(梯度消失/爆炸问题)。

  • LSTM (Long Short-Term Memory): 通过精密的门控单元(遗忘门、输入门、输出门)和细胞状态 (Cell State),有效控制信息的长期记忆和遗忘。
    • 比 RNN 复杂,但是可以更简单的理解。首先他引入了一个单元向量 C(t)来解决梯度的消失问题(消失梯度)

  • GRU (Gated Recurrent Unit): 结构比 LSTM 简单(更新门、重置门),参数更少,在许多任务上表现与 LSTM 相当。
    • 也是解决梯度问题

  • 编码器-解码器架构:序列到序列模型(Seq2Seq)
  • 该架构将模型划分为两个主要组件,它们协同工作以处理序列数据。
    • 编码器:该组件逐个元素处理输入序列(English 句子English 音频帧序列),将信息压缩为固定长度的上下文向量(亦称隐藏状态)。在传统架构中,编码器通常采用 循环神经网络(RNN)或 长短期记忆网络(LSTM) 构建,这些网络旨在跨时间步长保持信息。
    • 解码器:当输入经过编码后,解码器会逐步利用上下文向量预测输出序列(例如对应的法语句子)。它通过前一预测结果影响后续预测,确保语法和语境的连续性。

早期版本主要依赖循环神经网络(RNN),而现代序列到序列(Seq2Seq)模型则主要采用 Transformer 架构。Transformer模型通过 注意力机制,使模型能够 "关注"输入序列中特定部分——无论其与当前步的距离远近—— 显著提升了长序列处理性能,。

2.5.深度学习框架

提供了一套用于构建、训练和部署深度学习模型的软件库和工具,通过框架有如下优势:

  • 抽象与易用性
    • 隐藏底层复杂性:高层深度学习框架封装了自动微分、GPU 并行计算、内存管理等复杂机制,使用户无需关心梯度计算、反向传播细节或硬件调度。
    • 快速原型设计:提供直观的接口和模块化构建方式,让研究者和工程师能快速搭建、调试和实验各种模型。
    • 易于可读性和维护:通过统一接口和层级化模块,使代码清晰易懂,便于团队协作和长期维护。
  • 性能优化
    • 高效数值计算:底层集成高性能线性代数库(如 BLAS、cuBLAS、MKL)和深度学习加速库(如 cuDNN),实现矩阵运算和卷积操作的硬件优化。
    • 硬件加速支持:自动利用 GPU、TPU 等加速器进行并行计算,充分发挥现代硬件性能。
    • 内存与计算优化:通过动态图/静态图优化、张量融合、内存复用等手段,减少计算开销,提高训练和推理效率。
  • 灵活性与模块化
    • 丰富的预定义组件:提供卷积层、循环层、注意力机制、归一化层、激活函数等模块,降低自定义复杂度。
    • 可组合性强:模块化设计允许用户像搭积木一样组合各种网络结构,实现从简单到复杂的模型构建。
    • 优化器与损失函数多样化:内置 Adam、SGD、RMSProp 等优化器,以及交叉熵、均方误差、对比损失等损失函数,满足不同任务需求。
    • 可扩展性:允许自定义层、损失函数和优化器,满足前沿研究和实验需求。
  • 社区支持与生态
    • 活跃社区:庞大的用户群和开发者社区提供丰富的教程、博客、问答和经验分享,加速学习曲线。
    • 丰富预训练模型:支持 NLP、CV、语音等领域的大量开源模型(如 BERT、ResNet、YOLO),可直接迁移学习。
    • 第三方生态兼容:与数据处理库(Pandas、NumPy)、可视化工具(TensorBoard、Matplotlib)、部署工具(ONNX、TensorRT)高度兼容,形成完整解决方案。
  • 部署便捷
    • 模型导出与转换:支持将训练模型导出为多种格式(如 ONNX、TorchScript),方便跨平台部署。
    • 推理优化:支持量化、剪枝、图优化等技术,减小模型体积,提高推理速度和内存效率。
    • 跨平台部署:可以在服务器、移动设备、嵌入式设备甚至浏览器上部署,实现端到端应用落地。
    • 持续集成与监控:与现代 MLOps 工具链兼容,支持训练-推理-监控一体化的生产级部署。

3.深度学习到大模型的变化

特征

深度学习阶段

大模型阶段(当今)

核心框架

TensorFlow (1.x), Keras, PyTorch

PyTorch, TensorFlow (2.x), JAX

模型规模

百万级 - 数亿级

十亿级 - 万亿级

开发范式

从零构建/微调中小模型

基于超大预训练模型微调/提示

关键技术

CNN, RNN/LSTM/GRU

Transformer

生态核心

框架本身, Model Zoos, TensorBoard

Hugging Face, 分布式训练库, 推理优化/服务

主要挑战

模型设计, 训练技巧, 特定任务部署

规模化 (Scale): 训练/推理成本, 显存, 部署

社区焦点

模型精度, 新架构

效率, 可扩展性, 易用性 (HF), MLOps

后面针对大模型另做一篇详细的基础篇(如Transformer,deepseek)介绍和说明

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐