Skip to content

模型核心架构:从传统 ML 到 Transformer

本页解决什么:不推导算法公式,而是说明传统机器学习、神经网络、CNN、RNN/LSTM/GRU 和 Transformer 的核心组件、信息流、适用数据与工程边界。读完应能看懂架构图,并知道项目为什么选择或不选择某类模型。

五类架构总图

传统机器学习、前馈神经网络、CNN、RNN 和 Transformer 的核心信息流对比图
模型架构决定信息如何被组织:表格看特征组合,CNN 看局部空间,RNN 传递时间状态,Transformer 直接建模全局关系。手机端可左右滑动查看完整信息流。
架构输入如何组织核心计算直觉常见输出
传统机器学习人工整理的表格特征用线性、树或距离规则组合特征类别、分数、连续数值、分组
前馈神经网络 MLP固定长度向量多层变换逐步学习更抽象的表示分类、回归、Embedding
CNN图像、网格或局部连续信号同一卷积核在局部区域重复查找模式分类、检测、分割、特征图
RNN/LSTM/GRU按时间步进入的序列把前一步的隐藏状态传给下一步序列分类、逐步预测、时间序列
TransformerToken、图像 Patch 或多模态序列用注意力直接计算不同位置之间的关系文本生成、理解、检索表示、多模态输出
模型架构不是完整产品架构。训练数据、检索、权限、业务规则、工具调用、监控、评估和人工接管仍然位于模型之外。

传统机器学习与神经网络

传统机器学习和神经网络都属于机器学习。它们的主要区别不是“旧”和“新”,而是特征主要由谁构造,以及模型能承载多复杂的表示

对比传统机器学习神经网络 / 深度学习
常见输入结构化表格、统计特征、业务指标图像、音频、文本、复杂时序,也可以处理表格
特征来源主要由人设计和筛选可从原始数据中逐层学习表示
数据规模小中规模也能形成强基线通常更依赖数据量、预训练模型和算力
可解释性线性模型、树模型更容易解释需要可视化、归因、探针或案例分析辅助解释
训练与部署成本较低,CPU 常可满足训练和推理成本更高,常需 GPU、量化或批处理
优先场景表格预测、风控、运营分析、规则增强视觉、语言、语音、复杂模式和端到端表示学习

应用工程应先建立简单基线:表格分类不应因为“深度学习更先进”就跳过逻辑回归、随机森林或 GBDT;图像、语音和自然语言任务则通常需要神经网络或预训练模型。机器学习完整的数据、标签和泛化基础见机器学习基础

神经网络基础

神经网络可以理解成一组可学习的多层函数。每一层接收上一层的数值表示,使用权重和偏置做组合,再经过激活函数产生下一层表示。

三类层

做什么工程上要确认什么
输入层接收表格向量、像素、Token Embedding 或传感器窗口维度、归一化、缺失值、长度和权限是否稳定
隐藏层逐层提取组合特征和抽象表示层数、宽度、计算量是否与数据规模匹配
输出层把内部表示变成类别、数值、序列或向量输出是否能直接对应业务动作和验收指标

激活函数给网络加入非线性,否则很多层叠在一起仍接近一次线性变换。ReLU 常用于隐藏层;Sigmoid 常用于二分类概率;Softmax 常用于多类别概率。具体选择由任务和实现决定,不需要背诵公式。

模型怎样“学”

  1. 前向计算:输入依次经过各层,得到预测。
  2. 损失函数:把预测和正确答案比较,形成一个可优化的错误信号。
  3. 反向传播:沿网络反向计算每个权重对错误的影响。
  4. 优化器更新:按学习率调整权重和偏置,让下一轮预测更接近目标。
  5. 重复验证:在独立验证集和测试集上检查是否只记住训练数据。

这里不要求公式推导,但要理解:训练改变参数,推理只使用已经训练好的参数;损失下降不等于业务指标一定变好;网络更深也不保证泛化更强。

CNN:卷积神经网络

CNN 适合空间上相邻位置具有关系的数据。它不像全连接层那样让每个像素直接连接所有节点,而是让较小的卷积核在图像上滑动,重复寻找局部模式。

典型信息流

输入图像 → 卷积层 → 激活函数 → 池化/下采样 → 多层特征图 → 分类头/检测头/分割头

组件核心原理应用工程含义
卷积核在局部窗口内提取边缘、纹理或形状核大小决定一次观察多大的局部区域
局部感受野一个节点只看输入的一小块区域适合局部结构明显的图像和网格信号
权重共享同一卷积核在不同位置使用同一组权重减少参数,并能在不同位置识别同类模式
特征图一个卷积核在整幅输入上的响应结果浅层常对应边缘纹理,深层逐渐组合成语义特征
步幅 Stride卷积核每次移动的距离步幅越大,输出尺寸和计算量通常越小
填充 Padding在边缘补值,控制输出尺寸避免边缘信息过快丢失,方便多层对齐
池化对局部区域做最大值或平均值汇总降低分辨率和计算量,但可能损失精细位置
任务头把共享特征转成具体任务输出分类头给类别,检测头给框和类别,分割头给像素级结果

一维 CNN 可以处理短序列和波形,二维 CNN 处理图像,三维 CNN 可以处理体数据或短视频片段。残差网络 ResNet 通过跨层连接缓解深层网络难训练的问题;U-Net 通过编码器—解码器和跳跃连接保留分割所需的细节。

CNN 的边界也要清楚:它擅长局部空间模式,但对很远区域的关系、超长序列或跨模态上下文并不天然高效;图像质量、拍摄角度、光照和标注偏差仍会决定上线表现。

RNN/LSTM/GRU:序列记忆

RNN 按时间步依次读取序列。当前输入和上一个时间步的隐藏状态共同产生新的隐藏状态,因此模型具有“前文影响后文”的短期记忆。

x₁ → h₁ → x₂ → h₂ → x₃ → h₃ → 输出

架构核心机制适用情况主要边界
RNN每个时间步传递隐藏状态短序列、简单时序模式长距离依赖容易衰减,训练不稳定
LSTM维护单独记忆通道,并用遗忘门、输入门、输出门控制信息加载过程、传感器时序、语音和中长序列结构较重,仍需顺序计算
GRU用更新门和重置门合并部分 LSTM 功能数据或算力较受限的序列任务表达能力与效率需按任务验证
双向 RNN同时读取过去和未来上下文已完整获得的文本或离线序列不适合严格实时、不能看到未来的场景
ConvLSTM用卷积处理每个时间步的空间状态雷达图、应变场、速度场和视频预测空间与时间计算成本都较高

RNN 家族的核心限制是顺序计算:后一个时间步通常要等待前一个时间步,训练难以像 Transformer 那样大规模并行。对超长文本和大规模预训练,Transformer 已成为主流;但在数据较小、实时流式处理、状态递推明确的任务中,RNN/LSTM/GRU 仍可能更简单有效。

Transformer:注意力架构

Transformer 不依赖 RNN 的逐步状态传递,而是让序列中的不同位置通过注意力直接建立关系。它既能并行处理训练序列,也更容易扩展到大规模预训练。

一层 Transformer 的核心积木

Token / 图像 Patch → Embedding + 位置信息 → 多头自注意力 → 前馈网络 → 残差连接与归一化 → 输出表示

组件直觉解释解决什么
Token / Patch把文本、代码或图像切成模型可处理的单元定义模型看到的基本粒度
Embedding把离散单元映射为连续向量让相似信息可以在向量空间中计算
位置信息告诉模型各单元的顺序或空间位置注意力本身不天然知道先后与坐标
Query / Key / ValueQuery 表示“我需要什么”,Key 表示“我包含什么”,Value 是要传递的信息计算一个位置应该从其他位置取多少信息
多头自注意力多组注意力并行观察不同关系同时关注语义、指代、结构和远距离依赖
前馈网络 FFN对每个位置的表示做进一步非线性变换增强单个位置的特征加工能力
残差连接把输入直接加回子层输出让深层网络更容易训练,减少信息丢失
归一化稳定不同层之间的数值分布提高深层训练稳定性

三种主流结构

结构代表模型信息流常见任务
Encoder-onlyBERT双向读取完整输入,形成理解型表示分类、抽取、Embedding、重排序
Decoder-onlyGPT只能关注当前位置之前的内容,自回归生成下一个 Token对话、写作、代码生成、通用 LLM
Encoder-DecoderT5Encoder 理解输入,Decoder 根据输入逐步生成输出翻译、摘要、结构转换、受控生成

ViT 把图像切成 Patch 后交给 Transformer;多模态模型则把文字、图像、音频或视频表示放进可以相互注意的序列中。Transformer 的注意力并不等于可靠推理或事实数据库:长上下文会增加显存和延迟,输入顺序与提示方式仍会影响结果,参数知识会过期,生成结果必须由 RAG、工具、规则、评估和人工控制补强。

其他常见架构

架构核心结构典型用途
GNN节点从相邻节点聚合信息,多层后获得图结构表示知识图谱、分子、供应链、推荐和关系风险
Autoencoder编码器压缩输入,解码器重建输入降维、异常检测、表示学习、去噪
Diffusion训练模型逐步预测并去除噪声图像、音频、视频和部分结构化内容生成
混合架构组合 CNN、RNN、Transformer、规则或物理约束多模态、时空预测、工业测量和复杂业务系统

如何选择架构

数据与任务优先基线可能升级的架构选型提醒
表格分类或回归线性模型、随机森林、GBDTMLP、Tabular Transformer小数据先做传统 ML,解释和数据泄漏更重要
图像分类、检测、分割传统视觉 + 预训练 CNNViT、视觉 Transformer、混合模型采集、标定、分辨率和标注质量先于模型名
短序列或实时传感器流统计特征、1D CNNRNN、LSTM、GRU明确采样频率、窗口长度和实时延迟
长文本、代码和长序列预训练 Transformer长上下文或检索增强模型注意上下文成本、证据来源和幻觉
图结构与关系传播图统计、规则、知识图谱查询GNN图构建质量和关系含义决定结果上限
时空场、视频和多模态CNN + 时序基线ConvLSTM、时空 Transformer、混合架构同时验证空间误差、时间稳定性和计算成本
选型顺序:先建立非 AI 或简单模型基线,再看错误主要来自数据、特征、架构还是业务定义。只有当前架构无法表达关键关系且有可验证数据时,才升级复杂度。

工程评审六问

评审项必须说清的问题
输入形态是表格、图像、音频、短序列、长文本、图结构还是多模态?输入如何采集和校验?
输出形态需要类别、数值、框、掩码、序列、Embedding 还是生成内容?谁消费输出?
数据规模有多少独立样本、覆盖哪些边界场景、标签是否一致、是否允许使用预训练模型?
延迟与成本是离线批处理还是实时服务?CPU/GPU、显存、并发和上下文成本上限是多少?
错误代价误报、漏报、幻觉、漂移或延迟分别会影响谁?什么时候必须拒绝或转人工?
验收指标用准确率、召回率、F1、MAE、IoU、引用正确率、任务完成率还是业务指标验收?

Python 库

用途
scikit-learn传统机器学习基线、预处理和评估
torch神经网络、CNN、RNN 和 Transformer 训练与推理
torchvision图像数据、预训练 CNN/ViT 和视觉变换
transformersBERT、GPT、T5、Embedding 和多模态模型调用
torch_geometric图神经网络

最小示例

python
import torch
import torch.nn as nn

class TinyCNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.features = nn.Sequential(
            nn.Conv2d(1, 8, kernel_size=3, padding=1),
            nn.ReLU(),
            nn.AdaptiveAvgPool2d((1, 1))
        )
        self.classifier = nn.Linear(8, 2)

    def forward(self, x):
        features = self.features(x).flatten(1)
        return self.classifier(features)

model = TinyCNN()
image_batch = torch.randn(4, 1, 64, 64)
logits = model(image_batch)
print(logits.shape)  # torch.Size([4, 2])

这个例子只展示信息流:图像先经过卷积特征提取,再经过分类头输出两个类别的分数。真实项目还要处理数据划分、增强、损失函数、优化器、评估集、版本和部署监控。

下一步

维知 Wiki · 面向应用工程的 AI 知识与训练系统