AI 基础知识从 0.3 到 0.4——如何选对深度学习模型? - 学习笔记

原文链接:AI 基础知识从 0.3 到 0.4——如何选对深度学习模型?

AI 基础知识从 0.3 到 0.4——如何选对深度学习模型?

模型与模型架构

  1. 模型架构(Model Architecture)具体模型(Trained Model)区别:就像建筑设计中「蓝图」与「建成的房子」的关系 ——CNN 和 Transformer 是模型架构,类似于可复用的「设计蓝图」,允许开发者根据需求调整细节(如层数、参数),从而衍生出无数具体实现;而 GPT 则是基于 Transformer 蓝图构建并训练完成的「成品模型」,是前者的一个典型实例。
    1. 模型架构是模型的 “设计图纸”,决定了模型的结构和计算逻辑(无参数)。
    2. 模型是架构经过训练后的 “实例”,包含可学习的参数,能够实现具体的预测功能。

常见模型架构类型

  1. 卷积神经网络 (Convolutional Neural Networks, CNNs),CNNs 通过卷积操作高效提取数据的局部空间特征,特别适用于具有网格状结构的数据,如图像。典型模型:
    1. LeNet-5:早期的 CNN,用于手写数字识别。
    2. AlexNet:在 ImageNet 竞赛中显著提升图像分类性能,推动深度学习的发展。
    3. VGGNet:通过加深网络(如 VGG16、VGG19)提升性能。
    4. ResNet (Residual Networks):引入残差模块,解决深层网络的梯度消失问题。
    5. EfficientNet:通过复合缩放方法优化模型规模与性能平衡。
    6. YOLO(You Only Look Once)为目标检测设计,提供了图像分类、目标检测、实例分割、关键点检测等任务支持。
  2. 循环神经网络 (Recurrent Neural Networks, RNNs),RNNs 通过其循环结构处理序列数据,能够捕捉时间上的依赖关系适用于需要处理时序信息的任务。典型模型:
    1. 标准RNN:基础循环网络,存在梯度消失问题。
    2. 长短期记忆网络 (Long Short-Term Memory, LSTM):引入门控机制,解决梯度消失问题。
    3. 门控循环单元 (Gated Recurrent Units, GRU):结构更简洁,计算效率更高,功能类似于LSTM。
    4. 双向 RNN (Bi-directional RNNs):双向处理序列,提高信息捕捉能力。
  3. Transformer,Transformer 基于自注意力机制,能够并行处理整个序列,擅长捕捉长距离依赖关系,广泛应用于 NLP 和计算机视觉领域。典型模型:
    1. Transformer (原始模型):用于机器翻译任务。
    2. BERT (Bidirectional Encoder Representations from Transformers):预训练语言模型,用于多种 NLP 任务。
    3. GPT (Generative Pre-trained Transformer) 系列:用于文本生成、对话系统等。
    4. Vision Transformer (ViT):将 Transformer 应用于图像分类。
    5. DETR (DEtection TRansformer):用于目标检测任务。
  4. 生成对抗网络 (Generative Adversarial Networks, GANs),GANs 通过生成器与判别器的对抗训练,实现高质量数据的生成,广泛应用于生成任务和数据增强。典型模型:
    1. 原始 GAN:最基础的生成对抗框架。
    2. DCGAN (Deep Convolutional GAN):结合卷积神经网络提升图像生成效果。
    3. StyleGAN:生成高质量的人脸图像,并可控制样式特征。
    4. CycleGAN:实现无监督的图像到图像转换,如马到斑马。
    5. BigGAN:大规模GAN模型,提升生成图像的质量与多样性。
  5. 图神经网络 (Graph Neural Networks, GNNs),GNNs 专为处理图结构数据设计,通过节点间的连接关系传递和聚合信息,适用于复杂的关系数据。典型模型:
    1. Graph Convolutional Networks (GCNs):基于图卷积操作进行特征提取。
    2. Graph Attention Networks (GATs):引入注意力机制,动态分配邻居节点的权重。
    3. GraphSAGE:通过采样邻居节点,实现大规模图数据的高效训练。
  6. 总结:
    1. 计算机视觉:CNN、ResNet、ViT(Vision Transformer)
    2. 自然语言处理:RNN、LSTM、GRU、Transformer(如 BERT、GPT)
    3. 生成任务:GAN、VAE
    4. 图结构数据:GNN、GCN
    5. 序列与时间数据:RNN、LSTM、GRU、Transformer

开始选择模型

预训练模型

  1. 预训练模型(Pre-trained Models)是在特定模型架构基础上,通过在大规模通用数据集上进行初步训练,学习到通用特征或知识,设定了具体参数的神经网络模型。
    1. 比如基于 Transformer 架构的 BERT、GPT 系列模型,基于 CNN 架构的 ResNet-101、VGG16 等,都是预训练模型。
    2. 开发者可以在 Hugging Face Hub、PyTorch Hub、TensorFlow Hub等平台,获取这些预训练模型。
      1. Hugging Face Hubhttps://huggingface.co/models
      2. PyTorch Hub:https://pytorch.org/hub/
      3. TensorFlow Hub:https://www.tensorflow.org/hub

微调(Fine-tuning)

  1. 因为预训练模型一般使用通用数据集训练,为了更好的支持业务需求,开发者会对预训练模型进行微调。微调是指在预训练模型上,针对特定任务或特定数据集,进行少量参数的调整和训练,以使模型更好地适应新的任务需求。
  2. 随着模型规模的不断增大和应用场景的多样化,出现了多种微调方法,以提高效率、减少计算资源消耗或提升模型性能。
    1. 标准微调(Standard Fine-tuning)
      1. 标准微调是最基本的微调方法,即将预训练模型在特定任务的数据集上进行全量参数的进一步训练。通常情况下,微调时会采用较低的学习率,以避免破坏预训练模型中学到的通用特征。
      2. 优点:简单直接,效果较好,尤其适用于目标任务与预训练任务相似的情况。
      3. 缺点:大模型全量微调计算资源消耗高,可能导致过拟合,尤其在目标任务数据量较小时。
    2. 监督微调(Supervised Fine-Tuning, SFT)
      1. 监督微调在标准微调基础上,利用有标注数据进行进一步训练,旨在提升模型在特定监督任务上的表现。SFT 通常应用于需要明确标签的任务,如分类、序列标注等。
        1. 自然语言处理:文本分类、命名实体识别、机器翻译等。
        2. 计算机视觉:图像分类、目标检测、图像分割等。
    3. 低秩适配(Low-Rank Adaptation, LoRA)
      1. LoRA 是一种 PEFT(Parameter-Efficient Fine-Tuning,参数高效微调) 的微调方法,通过在预训练模型的权重矩阵中引入低秩矩阵来适配新任务,而无需大幅调整原有模型的参数。这种方法能够显著减少微调过程中新增的参数量,同时保持或提升模型性能。
        1. 低秩矩阵:在保持模型表现的同时,通过引入低秩矩阵在特定层(如 Transformer 的自注意力层)中调整权重。
          1. 在矩阵理论中,秩(Rank)指的是矩阵中线性无关行或列的最大数量。一个矩阵的秩决定了其线性独立性的程度。
          2. 满秩矩阵:如果一个 m×n 矩阵的秩 r 等于其最小维度 min⁡(m,n),则称其为满秩矩阵。
          3. 低秩矩阵:如果一个 m×n 矩阵的秩 r满足 r≪min⁡(m,n),即远小于其最小维度,则称其为低秩矩阵。
        2. 参数冻结:预训练模型的原始参数冻结,仅训练新增的低秩矩阵参数。
    4. 知识蒸馏(Knowledge Distillation)
      1. 知识蒸馏是通过将大型复杂模型(教师模型)的知识传递给小型高效模型(学生模型),以实现模型压缩和性能优化的技术。尽管知识蒸馏主要用于模型压缩,但它也可以作为微调的一种补充技术,进一步提升模型在特定任务上的表现。
      2. 基本原理:
        1. 教师模型:在大规模数据集上训练好的高性能模型。
        2. 学生模型:结构更简单、参数更少的模型,旨在模仿教师模型的行为。
        3. 蒸馏过程:通过让学生模型学习教师模型的输出(如软概率分布、特征表示等),传递教师模型的知识。

Hugging face

  1. Hugging Face提供了 模型 + 数据集 + 工具 + 社区 的一站式 AI 开发者平台;
    1. 海量预训练模型:提供超过** 10 万 + 预训练模型**,支持 NLP、计算机视觉、语音处理、多模态等任务,覆盖分类、生成、翻译、摘要、问答等多种场景。
    2. 丰富的公开数据集:收录超 5 万 + 公开数据集,涵盖文本、图像、语音、表格等类型,如 IMDB 影评、MNIST、COCO、维基百科等,支持一键加载。
    3. 数据处理工具:提供 datasets 库,支持数据清洗、预处理、分拆(如训练集 / 验证集 / 测试集),兼容多种格式(CSV、JSON、Parquet 等)。
    4. 快速部署演示:通过 “Hugging Face Spaces”,用户可直接在浏览器中部署模型演示(Demo),支持 Gradio、Streamlit、HTML 等界面,无需复杂服务器配置。
    5. 开源生态:核心库(Transformers、Datasets 等)完全开源,社区贡献活跃,文档丰富,适合研究者、开发者和企业使用。

使用预训练模型

  1. **前向传播(Forward Propagation)反向传播(Backward Propagation)**是深度学习中两个至关重要的概念,它们共同构成了神经网络模型训练的核心流程;
    1. 前向传播是指将输入数据(代码中的 input_ids 和 attention_mask)依次通过神经网络的各个层,经过一系列的线性变换和非线性激活函数处理,最终得到模型的预测输出。
    2. 反向传播是在得到损失值之后通过链式法则计算损失函数对模型中每个参数的梯度。通过计算梯度,可以知道应该如何调整模型的参数,使得损失函数的值减小,从而提高模型的性能。
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
反正没人会看
下载 APP