模型的本质:函数、常量与结构的工程化
在分析 YOLOv7 的网络结构时,我们或许不应该只关注模型具体做了什么,而应该思考一个更根本的问题:
一个“模型”在数学与工程意义上,到底是什么?
模型不止是一个黑箱,它更像是一个由算子构成的结构化函数系统。本质上,训练是在求解这些函数的常量项,而推理只不过是把输入代入这些函数中进行执行。这个视角,不仅适用于视觉模型,也适用于语言模型、语音模型乃至一切端到端深度网络。
从视觉模型看结构:像素是变量,卷积是函数
以 YOLOv7 的 ONNX 模型为例,我们看到输入为 1x3x640x640,即一张 RGB 图像。
图像像素可以视作变量的初值,进入网络中的第一个节点通常是卷积层(Conv),它具备如下属性:
kernel_shape: 定义局部乘积窗口;stride,padding: 控制映射密度;weight,bias: 为每个卷积核分配具体参数值。
抽象来看,卷积操作即为一个局部线性变换函数,在空间滑动中对输入变量进行特征投影。形式上近似于:
1 | y = Σ (x_i * w_i) + b |
值得强调的是:
- 卷积的结构是固定的,指定了函数的形式;
- 可训练的,是其中的 常量项:
w_i,b; - 多个这样的算子组合起来,就是一组复合函数。
训练阶段:结构固定,常量拟合
整个网络结构在模型定义时已经决定。每一层的算子本质上是函数映射,如线性、非线性、归一化、注意力等。
训练所做的事情,是在输入样本 x 与目标输出 y* 已知的前提下:
通过梯度反传,在给定函数结构下,寻找最优的常量参数集合,使得实际输出
f(x; θ)尽量逼近y*。
换句话说,神经网络的训练过程是一个在函数空间内优化常量的过程,结构不变,只求参数。
推理阶段:函数执行,无学习发生
一旦训练完成,网络的结构与参数固定,模型成为一个封闭形式的复合函数:
1 | y = f(x; θ*) |
其中 θ* 是训练阶段学得的常量集合。
推理阶段的本质,就是一次向量输入的函数计算。不存在“学习”与“理解”,更没有“通灵”或“推理” ——
所有输出只是依照函数形式,对输入变量进行结构化映射后的结果。
激活函数的角色:赋予网络非线性表达能力
若无非线性,深度网络仅为线性映射的堆叠,其最终表达能力依然受限。
激活函数(ReLU、LeakyReLU、SiLU 等)正是引入非线性的手段,提升了模型拟合非线性空间中复杂边界的能力。它们在数学意义上是非线性函数的注入节点,使神经网络具备了函数逼近任意可测映射的可能。
衍生话题:量化是精度的表达方式变换
在结构与函数视角下,量化并非改变模型的行为,而是改变参数和中间计算中数值的表示方式。
典型如将 float32 表示的权重转为 int8,本质上是对常量精度进行压缩,以减少计算负担与存储占用。
推理引擎如 TensorRT、ONNX Runtime 中的量化流程,包括:
- 缩放与零点校准;
- 整数模拟浮点计算;
- 性能 vs 精度的权衡验证。
重要的是:量化不改变结构,只影响表示与执行的效率。
补充说明:量化不仅是“精度压缩”,更是“坐标变换”
很多介绍将量化简化为“把 float32 换成 int8”,但这其实是一个认知陷阱。
在数学层面,量化是将浮点数值范围映射到整数空间的坐标系统变换问题:
1 | int8_value = round((float_value - zero_point) / scale) |
scale是缩放比例,控制表示精度;zero_point是整数空间中的零点偏移;- 映射需要通过**校准(calibration)**确定最优
min/max范围。
因此,量化不仅仅是换个单位,而是把浮点连续空间“压缩”到整数离散空间的变换过程,目的是在表示力下降的情况下尽量保持输出行为不变。
这也正是为什么我们需要用验证集重新评估量化后的模型精度(如 mAP、Accuracy)——因为它对参数分布进行了数学意义上的扰动。
衔接语言模型:tokenizer 将文本变为变量
在语言模型(如 GPT、BERT)中,输入并不是图像像素,而是语言 token。
Tokenizer 的任务是将自然语言转化为可向量化处理的 token ID,作为 LLM 的输入变量。
其背后也存在结构化处理逻辑(BPE、WordPiece、SentencePiece),通过无监督的统计方式构建符号表。
因此,LLM 的本质依然符合本文所述结构:
- 输入:token ID(离散变量)
- 网络结构:Attention + Linear + Activation 的函数组合
- 输出:下一个 token 的概率分布
- 推理过程:token → ID → 函数执行 → 输出 ID → 解码文本
总结:神经网络是函数工程,而非黑箱魔法
模型并不神秘:
- 它是一组结构明确、可组合的函数系统;
- 可训练部分只是其中的常量;
- 输入是变量,输出是计算;
- 推理是代入,训练是优化。
在图像域,变量是像素矩阵;在语言域,变量是 token ID;在语音、金融、医学等领域,变量可以是时序、向量或符号。
形式不同,函数结构 + 常量参数 + 输入代入这一核心不变。
理解了这点,我们便不再将模型视为“智能体”,而是看作一个由算子构成、结构化拟合的数学系统。它的行为,不是思考,而是执行。
- Title: 模型的本质:函数、常量与结构的工程化
- Author: Luo Zhixin
- Created at : 2025-07-11 10:41:17
- Updated at : 2025-07-15 21:54:51
- Link: https://luoluoter.github.io/2025/07/11/model-is-formulas-and-contants/
- License: This work is licensed under CC BY-NC-SA 4.0.