FPGA神经网络数学基础0

FPGA做神经网络/AI的数学入门,结合两本数学书(线代基础+深度学习数学基础)的一些思考笔记。始终觉得,基础不牢,地动山摇。所以入门这个领域,不仅需要有扎实的FPGA开发基础,也要有扎实的数学基本功。

矩阵与高斯消元法

向量的线性组合

a)向量的本质是有序的数的集合。向量不是箭头,箭头只是它在多维空间的几何表示。向量的本质是一个有序的、可以进行加法和数乘运算的数的集合。例如,一个神经元接收1024个输入信号,每个信号乘以一个权重,然后加起来,再通过激活函数。又例如,一个RGB像素是一个3维向量;一个IMU测量值是一个6维向量;神经网络的一层权重是一个n x m维的矩阵,本质上是m个n维向量的集合。

b)线性代数的全部运算都建立在两个最基本的操作之上:向量加法和数乘。

1)加法:平行四边形法则

2)数乘:向量的缩放

3)线性组合

c)在FPGA上,线性组合的硬件实现就是乘加单元MAC。一个MAC单元做的就是a x b + c这个操作。一个n维向量的线性组合,需要n个乘法器和n - 1个加法器。现代FPGA内部集成了大量的DSP块,每个DSP块就是一个高性能的MAC单元。例如,Xilinx XC7VX690T有3600个DSP块,理论上可以同时进行3600个乘加操作,这就是FPGA做AI加速的核心优势。

线性方程组的几何意义

a)本节核心是从几何角度解释线性方程组的解,通过行视角和列视角两种方法,把抽象的代数方程组转化为直观的几何图形(直线、平面、超平面),从2维、3维推广到n维,同时引入列向量的线性组合,最后分析方程组无解/无穷多解的奇异情形,为后续矩阵、高斯消元法奠定几何基础。

b)2元线性方程组:行视角+列视角

n维推广:n元方程组中,每个方程对应n维空间的n-1维超平面,所有超平面的交点就是解。

c)奇异情形

d)

1)y1 , y2 , y3满足什么条件可以使得三点 (0, y1) , (1, y2) , (2, y3) 共线?答:y3-y2=y2-y1

高斯消元法的一个例子

a)解决核心问题:如何系统求解多元线性方程组,同时讲清消元失效的情况(主元为0)、非奇异/奇异系统的区别,以及消元的运算成本。是后续矩阵表示、行变换、主元法则的实操基础。

b)

c)消元运算成本

d)要点

1)高斯消元=正向消元(化上三角)+ 反向回代(求未知量);

2)非奇异系统有n个非零主元→唯一解;奇异系统主元为0→无解/无穷解;

3)消元成本是O(n^3),是线性方程组求解的基础算法。

e)补充

1)前n个正整数平方和公式推导

2) 线性方程组不可能恰好有两个解,请解释为什么? 答:因为两个解的平均值也是解。

3)

矩阵定义与矩阵乘法

a)背景问题:面对3×3 小规模方程组,我们可以手动写方程、跟踪消元步骤,但对于大型线性系统,逐行记录消元过程完全不现实。因此本节目标是:

1)引入矩阵符号,把线性方程组精简为Ax=b;

2)定义矩阵乘法,用矩阵运算直接表示高斯消元的行变换;

3)建立统一的矩阵运算规则,让线性系统的表示与求解更简洁。

b)

c)高斯消元的行变换→对应左乘初等矩阵

1)

2)

3)

d)矩阵乘法

1)乘法条件:A的列数等于B的行数

2)三种计算视角

3)乘法性质

4)

e)要点

1)线性方程组 ↔ 矩阵形式Ax=b;

2)Ax=b两种理解:行内积/列线性组合(列规则更重要);

3)高斯消元=左乘初等矩阵,方程组等价、解不变;

4)矩阵乘法:结合律、分配律成立,交换律不成立;

5)乘法约束:前矩阵列数 = 后矩阵行数。

f)补充

1)

2)

3)如果B的第一列和第三列相同,那么AB的第一列和第三列也相同。如果A的第一行和第三行相同,那么AB的第一行和第三行也相同。

4)

三角因子和行变换

a)背景:之前我们掌握了手工高斯消元法,即对线性方程组Ax=b做行变换,把系数矩阵A化为上三角矩阵U,再用回代法求解。但我们必须解决3个矩阵层面的问题:

1)手工消元的每一步,如何用矩阵乘法严格表示?

2)消元是A→U的单向过程,如何逆向还原U→A?

3)消元的所有操作,能否浓缩为一个统一的矩阵分解公式?

本节最终给出高斯消元的矩阵本质:无行交换时,矩阵可分解为A=LU,这是线性代数数值计算的基石。

b)先复习手工高斯消元法

回代法可解Ux=c,本节只研究A与U的矩阵关系。

c)初等矩阵(消元矩阵)

d)如何从U回到A?

e)无行交换的三角分解

f)上述要点总结

1)

2)高斯消元的矩阵表示:GFEA=U。

3)初等矩阵的逆:减法变加法。

4)逆矩阵顺序:与消元顺序完全相反。

5)无行交换:A=LU。L是单位下三角,直接抄消元乘数;U是上三角,存储消元主元。

g)A=LU:n x n的情形

1)

2)无行交换的n×n非奇异矩阵,必可分解为A=LU。

h)上面已经说明了,无行交换的n×n非奇异矩阵可分解为A=LU。但分解本身不是目的,用分解结果求解线性方程组Ax=b才是需求。直接对A做高斯消元存在两大缺陷:每次更换右侧向量都要重新做全套消元,计算量极大;大规模矩阵(n≥1000)直接消元误差大、效率低。因此接下来,我们给出A=LU求解Ax=b的标准流程;拆分出两个三角方程组实现快速求解;对比计算量来证明LU分解的优势;引入LDU对称分解来完善分解形式;给出LU/LDU分解的唯一性定理。

1)用A=LU求解Ax=b拆分为两步:先解Lc=b(正向消元),再解Ux=c(回代)。代入得LUx=b,即Ax=b,两个三角系统可快速求解。

2)

3)LU分解的不对称性与LDU分解

4)分解顺序与唯一性定理

5)要点:Ax=b等价于解两个三角系统Lc=b和Ux=c。算法优势是一次分解,终身求解,批量b计算量极低。A=LDU实现三角矩阵对称化,其中L是单位下三角矩阵,D是主元对角矩阵,U是单位上三角矩阵。此外,三对角矩阵运算量降至线性级2n。最后,LU/LDU分解唯一。

i)上面我们建立在无主元为0的前提下进行A=LU分解,但实际消元中很有可能遇到主元位置为0的情况。接下来我们给出解决方法:行交换。用置换矩阵P将行交换矩阵化,并且给出置换矩阵的定义、性质、数量。最后,区分可通过行交换继续消元和不能继续消元(寄异矩阵)的情况。

1)

2)置换矩阵的基本性质

3)置换矩阵的数量

4)置换矩阵的核心公式

5)主元为0的两种结局

j)

k)补充

1)什么时候上三角矩阵是非奇异的(即有完整的主元集)?上三角矩阵的主对角线所有元素都不为0时,矩阵非奇异,拥有完整主元集。主元是上三角矩阵主对角线元素,必须全非零才能完成消元、有唯一解。

2)

3)

4)

5)初等矩阵性质

6)无行交换时,n阶矩阵的前k个主元,完全等于其左上角k × k主子矩阵的k个主元。消元过程中,前k阶子矩阵的消元独立、不受后续行列影响。

矩阵的逆和转置

a)矩阵的逆和转置的问题背景:上文通过PA=LU完成了高斯消元的矩阵化,实现了Ax=b的高效数值求解。但线性代数需要统一的代数理论,而矩阵的逆是描述线性变换可逆性的核心概念。

b)

c)高斯-若尔当法

1)刚刚讨论了逆矩阵的定义、唯一性、运算律,但有一个关键问题,给定方阵A,如何具体算出其逆矩阵。此前的高斯消元(LU分解)是解单个方程组Ax=b,而逆矩阵满足:

即求逆等价于同时解n个方程组,右侧分别是单位矩阵的列e1,e2...。本节核心是给出直接求逆的标准算法:高斯-若尔当法。用增广矩阵A \| I统一处理n个方程组。对比高斯-若尔当与LU分解的工程优劣。计算求逆的运算量,明确何时该求逆、何时不该求逆。

2)高斯-若尔当法的核心思想

3)消元过程

4)

d)可逆=非奇异

1)

特殊矩阵及其运用

神经网络的思想

神经网络和深度学习

a)面对手写数字、图像、语音这类模式识别任务时,无法穷举所有形态(如各种写法的数字0、带噪声的图像),用数学式表达识别规则完全不现实。为解决这一缺陷,诞生了可以直接从数据中自主学习的技术:神经网络,并在此基础上发展出深度学习。

b)

神经网络的数学定义:将生物神经元数学抽象,再人工组网,就是神经网络。其数学本质是加权和+阈值判决的节点组成的计算网络。

c)

神经元工作的数学原理

a)背景:把神经元接收信号、合并加工、阈值判决、点火输出的全过程,严格转化为数学符号、数学公式、数学函数,为搭建神经网络提供最基础的数学模型。

b)神经元由三部分构成,对应数学的输入/输出关系:树突接收其他神经元信号→数学输入端口;细胞体合并加工信号→数学计算单元;轴突传递输出信号→数学输出端口。

c)神经元对输入信号的加工规则:输入信号总和<固有阈值→忽略信号,不反应;输入信号总和≥固有阈值→点火,输出信号。其数学本质是分段不等式判决。

d)点火输出的信号大小固定,仅用0、1表示。其数学本质是二值离散输出。

e)

f)要点

1)生物神经元被抽象为线性加权和+阈值判决+单位阶跃函数;

2)输入/输出均为二值0/1,判决规则是线性不等式;

3)最终用单位阶跃函数将神经元工作统一为一个数学公式;

g)补充

1)加权和在FPGA用DSP块的MAC乘加单元硬件实现;

2)阈值判决在FPGA用数字比较器组合逻辑实现;

3)单位阶跃函数0/1输出在FPGA用二选一MUX实现,二值信号硬件开销极小。

激活函数:将神经元的工作一般化

a)背景:上节已经将生物神经元抽象为单位阶跃函数+加权和+阈值的数学模型,但存在两个关键局限:生物神经元输出仅限0/1,限制了模型表达能力;单位阶跃函数不连续、不可导,无法用于神经网络的学习训练。

b)

神经单元输出不再是点火与否,而解释为兴奋度、反应度、活性度。输出范围不再受限,模型表达能力大幅提升。

c)

d)引入偏置

什么是神经网络

a)背景:单个神经单元只能完成简单判决,无法实现复杂智能任务。因此本节核心是将单个神经单元连接成网络,定义神经网络的结构、分层、职责,并用手写数字识别案例落地,完成从单个单元到计算网络的关键跨越。

b)

c)典型例题

这个简单的神经网络的特征是,前一层的神经单元与下一层的所有神经单元都有箭头连接,这样的层构造称为全连接层(fully connected layer)。

1)输入层

2)输出层

3)隐含层

d)要点

1)神经网络=神经单元按层级连接而成的计算网络;

2)标准三层结构:输入层(读数据)、隐藏层(提特征)、输出层(做决策);

3)基础连接方式:全连接层(层间全部互联);

4)深度学习=多层叠加的神经网络。

e)补充

1)FPGA DSP阵列并行实现所有全连接层神经元的乘加运算;FPGA的IO端口实现输入层读取图像像素数据;输出层Sigmoid激活用LUT查找表实现,输出大小比较用数字比较器硬件完成。本节网络结构是FPGA部署最小CNN/全连接网络的标准原型。

用恶魔来讲解神经网络的结构

a)背景:上节已经给出神经网络的三层结构(输入层、隐藏层、输出层),但隐藏层的核心作用------特征提取,没有详细讲解。本节核心任务是用恶魔比喻直观拆解神经网络的信号传递、特征匹配、决策逻辑,讲清隐藏层如何提取特征、网络如何靠整体连接完成模式识别。

b)隐藏层是神经网络的核心,负责特征提取,是网络能工作的支撑。神经单元不是随机连接,需要设计者提前预估规则,预估对隐藏层最重要,无合理规则无法实现有效识别。

c)

d)恶魔心中的偏置,用于忽略噪声信号,其数学本质是神经单元的偏置b,是固有参数,用于调整激活阈值、抑制噪声。神经网络靠权重w+偏置b完成模式识别。

e)要点

1)隐藏层是神经网络核心,负责特征提取,是模式识别的关键;

2)用恶魔比喻映射网络:偏好 = 权重w,心的偏置 = 偏置b;

3)神经网络识别不靠单条规则,靠层间连接权重 + 偏置整体判断;

4)输入信号→隐藏层提取特征→输出层比较判决,完成模式识别。

f)补充

1)隐藏层特征提取:FPGA用并行DSP阵列实现多神经元同步特征匹配;

2)权重w(恶魔交情):存储在FPGA片上RAM/ROM,可快速读取;

3)偏置b(心的偏置):作为MAC乘加单元初始值,硬件无额外开销;

4)二值分类判决:FPGA用数字比较器直接完成输出大小比较,零延迟;

5)分层信号传递:FPGA用流水线架构实现,低延迟完成前向推理。

将恶魔的工作翻译为神经网络的语言

a)背景:上用恶魔组织的比喻,直观讲解了神经网络的信号传递、特征匹配、分类判决过程。但比喻无法直接用于数学建模、算法实现、硬件部署。

b)

c)

d)

e)要点

1)恶魔比喻1:1翻译为神经网络:恶魔 = 神经单元、交情 = 权重w、心的偏置 = 偏置b;

2)网络结构固定:输入12→隐藏3→输出2,单元数由特征、分类数决定;

3)识别核心:权重+偏置协同工作,全连接网络靠偏置抑制噪声;

4)模型需数学计算求参,且符合生物视觉机制。

网络自学习的神经网络

a)背景:在真实应用中,权重、偏置无法人工手动设定,必须由网络自主确定。

b)神经网络参数确定分为有监督学习、无监督学习。仅讲解有监督学习。

c)神经网络自学习的数学逻辑极其简单,计算网络预测值与正解的误差,目标是找到让误差总和最小的权重、偏置,即模型最优化。

d)

e)需要注意的是,神经网络的权重是允许出现负数的,但在用生物学进行类比时不会出现负数,也难以将负数作为神经传递物质的量。可以看

出,神经网络从生物那里得到启发,又飞跃到了与生物世界不同的另一个世界。

f)补充

1)代价函数平方误差:FPGA通过DSP乘法器快速实现平方运算,累加用加法器树完成;

2)最小二乘法:是FPGA实现神经网络参数拟合、离线训练的基础算法;

3)自学习迭代优化:FPGA可并行计算梯度、更新权重,加速训练过程;

4)学习好的权重/偏置:存储在FPGA片上RAM/ROM,推理阶段直接调用。

相关推荐
段一凡-华北理工大学1 小时前
工业领域的Hadoop架构学习~系列文章02:HDFS架构深度剖析
大数据·人工智能·hadoop·学习·架构·高炉炼铁
SAP上海工博云署1 小时前
2026年中小企业SAP服务商选型技术解析
大数据·运维·数据库·人工智能·信息可视化·运维开发·信息与通信
涛声依旧-底层原理研究所1 小时前
Node.js在高并发低延迟场景中的优势
java·人工智能·python·node.js
weixin_468466851 小时前
图像分类技术落地应用与实战指南
人工智能·深度学习·ai·分类·数据挖掘·图像分类·模型部署
MediaTea1 小时前
人工智能通识课:深度学习
人工智能·深度学习
长风2301 小时前
Day10:直面深水区——总结系统痛点与底层架构重塑
人工智能·安全
2601_949936961 小时前
2026电商运营个人能力提升计划进阶指南
大数据·人工智能
Surpass-HC1 小时前
添加CLAUDE.md规则
人工智能
Slow菜鸟1 小时前
AI 代码知识图谱 教程(一)| Codegraph(纯代码)
人工智能·知识图谱