向量、矩阵与张量在模型中的角色
用表示、变换和批量计算三条线理解向量、矩阵与张量,而不是停留在符号运算。
向量、矩阵与张量在模型中的角色
线性代数在机器学习中不只是计算工具,它规定了数据怎样被表示、不同表示怎样转换,以及许多样本怎样同时参与计算。把一组数叫作向量之前,需要知道每个位置表示什么;看到一个矩阵相乘,也要辨认它是在改变坐标、组合特征,还是批量计算参数。符号的形状和语义同样重要。
向量把对象放进可计算空间
一个对象可以由若干数值组成向量,例如地块的面积、坡度和多波段反射率。向量的每个分量依赖明确的单位、顺序和预处理。经纬度、米制距离和类别编码不能因为都是数字就直接相加;不同尺度的特征也可能让距离主要由数值较大的分量决定。
向量之间可以比较方向和长度。内积衡量两个向量沿相同方向的程度,范数描述大小,距离描述在指定度量下的差异。这些量并没有脱离表示的客观意义。若特征编码改变,最近邻和相似度结果也会随之改变。
矩阵同时表达数据和变换
把多个样本按行排列、多个特征按列排列,可以得到数据矩阵。另一类矩阵代表线性变换:输入向量乘以权重矩阵后,被投影到新的表示空间。线性模型、神经网络层和主成分方法都利用这种结构,但矩阵中数字的来源与用途不同。
矩阵乘法要求相邻维度匹配,这条规则对应真实的数据契约。批次大小、特征数和输出维度一旦混淆,程序可能直接报错,也可能通过广播产生形状正确、语义错误的结果。工程中应同时记录张量形状、轴的含义和单位,而不能只记录数据类型。
矩阵的秩反映独立方向的数量。特征之间高度相关时,数据可能集中在较低维结构中;参数估计也可能因此不稳定。特征值和奇异值帮助分析变换在不同方向上的伸缩,这为降维、条件数和数值稳定性提供基础。
张量扩展了轴而不是改变了原则
张量可以理解为带有多个轴的数值数组。彩色影像常有高度、宽度和波段轴,批量影像再增加样本轴;时空数据还可能增加时间轴。深度学习框架用张量统一组织这些数据,并通过张量运算让硬件并行执行。
轴越多,越需要明确排列约定。影像使用“批次、通道、高、宽”还是“批次、高、宽、通道”,会影响算子解释。遥感数据中的波段轴和时间轴交换后,数值仍可能正常读取,但模型看到的对象已经不同。形状检查只能发现部分错误,轴语义还要通过元数据和测试样本验证。
线性变换为何能进入非线性模型
单个线性变换只能形成线性关系,多层神经网络却大量使用矩阵乘法。关键在于线性层之间加入非线性激活,使多个简单变换能够组合出更复杂的函数。嵌入层也把离散标识映射为向量,让后续计算可以利用向量关系。
这种表示是根据训练目标形成的,不保证每个维度都有独立、稳定的人类含义。向量距离适合比较什么,取决于训练数据和目标函数。把一个模型空间中的相似度直接解释为现实世界相似,仍需任务证据。
实践中先核对语义再核对公式
使用线性代数排查模型时,可以依次确认:每个轴代表什么,单位和归一化是否一致,矩阵作用在哪个方向,批次运算是否共享了预期参数,输出空间是否与损失函数匹配。公式相同并不表示问题相同,可靠计算始于可靠表示。
资料依据
- Ian Goodfellow、Yoshua Bengio、Aaron Courville:《Deep Learning》在线版,https://www.deeplearningbook.org/
- Stuart Russell、Peter Norvig:《Artificial Intelligence: A Modern Approach》第四版,https://aima.cs.berkeley.edu/