CN114298248B - 一种单层Bp神经网络的等效方程组模型构造方法 - Google Patents
一种单层Bp神经网络的等效方程组模型构造方法 Download PDFInfo
- Publication number
- CN114298248B CN114298248B CN202210089537.4A CN202210089537A CN114298248B CN 114298248 B CN114298248 B CN 114298248B CN 202210089537 A CN202210089537 A CN 202210089537A CN 114298248 B CN114298248 B CN 114298248B
- Authority
- CN
- China
- Prior art keywords
- neural network
- layer
- matrix
- equation set
- equation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 135
- 239000002356 single layer Substances 0.000 title claims abstract description 71
- 238000010276 construction Methods 0.000 title claims description 10
- 238000012360 testing method Methods 0.000 claims abstract description 73
- 238000012549 training Methods 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000005457 optimization Methods 0.000 claims abstract description 11
- 238000007781 pre-processing Methods 0.000 claims abstract description 8
- 239000011159 matrix material Substances 0.000 claims description 136
- 239000013598 vector Substances 0.000 claims description 66
- 230000006870 function Effects 0.000 claims description 23
- 239000010410 layer Substances 0.000 claims description 16
- 210000002569 neuron Anatomy 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000009827 uniform distribution Methods 0.000 claims description 6
- 238000011478 gradient descent method Methods 0.000 claims description 4
- 230000001351 cycling effect Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 2
- 239000000243 solution Substances 0.000 claims 3
- 239000012085 test solution Substances 0.000 claims 1
- 230000000694 effects Effects 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Landscapes
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种单层Bp神经网络的等效方程组模型构造方法,包括以下步骤:对数据集进行预处理;载入训练集;读取神经网络结构;构造无约束条件下的等效方程组模型,并进行求解,然后验证无约束条件下的等效方程组模型与单层Bp神经网络的等效性;构造线性约束条件下的等效方程组模型,并进行求解;利用测试集测试带有线性约束条件方程组的解。本发明在无约束条件下,该模型能达到与单层Bp神经网络识几乎相同的识别率;在复杂线性约束条件下,该模型能够清晰表达约束条件,解决单层Bp神经网络难以编写程序求解的优化问题。
Description
技术领域
本发明属于人工神经网络领域,具体地说,涉及一种单层Bp神经网络的等效方程组模型构造方法。
背景技术
现有的Bp神经网络利用Bp算法优化系数矩阵达到学习训练集样本的目的。而希望神经网络在某种约束性条件下进行优化系数矩阵,就必须在构建的损失函数后加入约束条件。现有的模型有两种做法,一是添加正则化项,另一种是利用拉格朗日乘子法重新设计损失函数。正则化有L0范数、L1范数、L2范数几种,加入正则化项作为约束条件后能解决神经网络过拟合问题。但由于程序要求使用矩阵形式表达系数矩阵更新公式,如果是遇到较为复杂的线性约束性条件的优化问题,则难用简单清晰的程序去表达Bp算法过程中求梯度的过程。而利用拉格朗日乘子法重新设计损失函数,同样会遇见数学上证明可行,但程序上优化系数矩阵困难的问题。通过Bp算法构造损失函数求解带有线性约束性条件的优化问题始终绕不开程序编写困难的问题。
因此,有必要提供一种新的单层Bp神经网络的等效方程组模型构造方法。
发明内容
有鉴于此,本发明针对带有约束条件的单层Bp神经网络Bp算法程序中求解下降梯度程序难以编写的问题,提供了一种单层Bp神经网络的等效方程组模型构造方法,本方明利用等效方程组模型,使用者能方便地将约束条件加入到方程组中,并且利用该方法能够用程序极其方便地实现对该方程组的求解。
为了解决上述技术问题,本发明公开了一种单层Bp神经网络的等效方程组模型构造方法,包括以下步骤:
步骤1、对数据集进行预处理;
步骤2、载入训练集;
步骤3、读取神经网络结构;
步骤4、构造无约束条件下的等效方程组模型,并进行求解,然后验证无约束条件下的等效方程组模型与单层Bp神经网络的等效性;
步骤5、构造线性约束条件下的等效方程组模型,并进行求解;
步骤6、利用测试集测试带有线性约束条件方程组的解。
可选地,所述步骤1中的对数据集进行预处理具体为:将数据集的训练集和测试集中的图像数据变形为行向量,然后按列进行存放;通过上述预处理后将训练集和测试集图像样本分别集命名为“F_train”和“F_test”;训练集和测试集标签集对应于图像样本集分别集命名为“B_train”和“B_test”,将测试集的图片和标签独立封装;所述的数据集为MNIST数据集;包含60000份训练集图片及其对应标签和10000份测试集图片及其对应标签。
可选地,所述步骤2中的载入训练集具体为:将训练集和测试集图片集和标签集载入到软件工作区。
可选地,所述步骤3中的读取神经网络结构具体为:输入层神经元个数等于训练集图片总像素点数;输出层神经元个数为分类类别数。
可选地,所述步骤4中的构造无约束条件下的等效方程组模型,并进行求解,然后验证无约束条件下的等效方程组模型与单层Bp神经网络的等效性,具体为:
步骤4.1、在无约束性条件情况下,根据线性非齐次方程组形式:AX=B,利用单层Bp神经网络对应的输入图像和标签值,编写程序求解方程组模型,具体为:
0~9数字图片被分为十类,标签值按照One-hot编码;由于One-hot编码形式,每一位编码对应一个方程中等式右边的B项,那么一张图片就对应了十个方程;
通过将系数矩阵W变形为列向量X,在已知方程组形式为AX=B、列向量X为7840维,列向量B为10维,就可以根据矩阵乘法推断出矩阵A的大小为10行7840列,从而构造出AX=B具体的方程组模型;
步骤4.2、采用梯度下降迭代法求解方程组求解无约束性条件下的等效方程组模型;
步骤4.3、验证无约束性条件下的方程组模型与单层Bp神经网络等效性。
可选地,所述步骤4.2中的采用梯度下降迭代法求解方程组求解无约束性条件下的等效方程组模型,具体为:
步骤4.2.1、通过初始化未知数列向量X为服从均匀分布的任意随机数,从而确定初始迭代点X,给定收敛精度T=0.2和学习率α=0.005,初始化矩阵行号i=1,训练次数epoches=0;
步骤4.2.2、判断i是否大于600000,如果大于则循环完一次完整的训练集,epoches=epoches+1,令i=1,重新从第一个方程进行迭代,如果仍小于600000则继续执行步骤4.2.3;
步骤4.2.3、选取训练集A矩阵第i行和标签列向量B第i行,这样做实则上是选择方程组中第i个方程;
步骤4.2.4、计算第i个方程在X点时,Bi对X的一阶偏导数
步骤4.2.5、根据梯度下降公式求得新的未知数X的值,α为学习率,为Bi对X的一阶偏导数;
步骤4.2.6、计算更新X后的方程组输出与期望输出的均方差MSE,
其中,N表示方程组中方程个数,在识别手写数字任务中为600000,Ai代表A矩阵中第i行,X为未知数的值,Bi代表列向量B中第i行;
步骤4.2.7、判断MSE是否满足设定收敛精度T,如果满足转步骤4.2.8,如果不满足执行i=i+1后转步骤4.2.2;
步骤4.2.8、输出训练好后的未知数列向量X,将未知数列向量X变形回Bp神经网络系数矩阵W1,以MATLAB软件为例使用reshape函数,执行W1=reshape(X,[78410])。
可选地,所述步骤4.3中的验证无约束性条件下的方程组模型与单层Bp神经网络等效性,具体为:
步骤4.3.1、将由未知数列向量X变形得到的权重系数矩阵W1带入单层Bp神经网络进行测试,计算单层Bp神经网络实际输出Z=F_test*W1,最终Z矩阵大小为10000*10;
步骤4.3.2、由于Bp神经网络输出中每一列代表一张图片的输出结果,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片被正确识别,正确识别图片数目加一;由此统计出由方程组模型求解变形得到的权重系数矩阵W1所组成的单层Bp神经网络对10000张测试集图片分类的正确率;
步骤4.3.3、直接利用训练集图片训练单层Bp神经网络系数矩阵W2;
步骤4.3.4、利用Bp神经网络权重系数矩阵W2计算单层Bp神经网络实际输出Z=F_test*W2,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片被正确识别,正确识别图片数目加一;由此可以统计出由权重系数矩阵W2组成的单层Bp神经网络对10000张测试集图片分类的正确率;
步骤4.3.5、比较由权重系数矩阵W1和权重系数矩阵W2分别组成的两个单层Bp神经网络对10000张测试集图片分类的正确率是否近似;从而验证利用梯度下降法优化求得方程组的解与单层Bp神经网络得到的系数矩阵是等效的。
可选地,所述步骤4.3.3中的直接利用训练集图片训练单层Bp神经网络系数矩阵W2具体为:
步骤4.3.3.1、初始化系数矩阵W2为服从均匀分布的任意随机数矩阵,给定收敛精度T=0.2和学习率α=0.1,初始化矩阵行号i=1,训练次数epoches=0;
步骤4.3.3.2、判断i是否大于60000,如果大于则循环完一次完整的训练集,epoches=epoches+1,令i=1,重新从第一张图片进行迭代,如果仍小于60000则继续执行步骤4.3.3.3;
步骤4.3.3.3、将F_train和B_train的第i行分别赋值给I变量和O变量,其中I变量表示神经网络输入,O变量表示神经网络期望输出;
步骤4.3.3.4、根据公式计算出神经网络实际输出Z,I变量表示神经网络输入,W2为神经网络系数矩阵;
步骤4.3.3.5、根据Bp算法公式和ΔW2=IT*δ计算出此次迭代权重矩阵改变量ΔW2;其中O为数据集标签同时也是神经网络期望输出,Z为神经网络实际输出,SL为输出层神经元个数,在识别手写数字任务中为10;δ为中间变量,表示该层输出对损失函数产生的影响;IT表示将神经网络输入进行转成为行向量;
步骤4.3.3.6、根据权重矩阵更新公式更新权重矩阵W2,
W2=W2-α*ΔW2 (2);
步骤4.3.3.7、计算更新后的神经网络实际输出与期望输出的均方差MSE,其中M是训练集中图像数量为60000,SL为输出层神经元个数,Ii表示第i张图片,Oi表示第i张图片的标签即期望输出;
步骤4.3.3.8、判断MSE是否小于收敛精度T=0.2,如果满足则停止循环并输出系数矩阵W2,如果不满足执行i=i+1后转步骤4.3.3.2。
可选地,所述步骤5中的构造线性约束条件下的等效方程组模型,并进行求解具体为:
步骤5.1、对步骤4中的等效方程组模型加入约束性条件∑wij=0,其中,w代表矩阵W3中的元素,wij代表矩阵W3第i行第j列的元素;这个等式的含义是将矩阵W3中所有元素加起来为0,按列向量X进行表达后,系数全为1;所以将矩阵A的新一行全部赋值为1,对应标签B列向量新的一行中赋值为0;
步骤5.2、求解线性约束性条件方程组模型:采用梯度下降迭代法求解方程组,同样输出训练好后的未知数列向量X,将未知数列向量X变形回Bp神经网络系数矩阵W3。
可选地,所述步骤6中的利用测试集测试带有线性约束性条件方程组的解,具体为:
步骤6.1、将带有线性约束性条件方程组的解变形后作为Bp神经网络权重系数矩阵W3计算Bp神经网络实际输出Z=F_test*W3,最终Z矩阵大小为10000*10;
步骤6.2、由于Bp神经网络输出中每一列代表一张图片的输出结果,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片被正确识别,正确识别图片数目加一;由此统计出方程组模型对10000张测试集图片分类的正确率。所述步骤6中的利用测试集测试带有线性约束性条件方程组的解,具体为:
步骤6.1、将带有线性约束性条件方程组的解变形后作为Bp神经网络权重系数矩阵W3计算单层Bp神经网络实际输出Z=F_test*W3,最终Z矩阵大小为10000*10;
步骤6.2、由于Bp神经网络输出中每一列代表一张图片的输出结果,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片被正确识别,正确识别图片数目加一;由此统计出方程组模型对10000张测试集图片分类的正确率。与现有技术相比,本发明可以获得包括以下技术效果:
本发明提出一种在无约束条件下与单层Bp神经网络的等效方程组模型,其具有可推广性,并且本发明能很方便的将线性约束条件加入方程组中,利用简单的程序即可对该方程组进行求解。为此类线性约束的黑箱优化问题求解提供一种新思路、新方法,适用于现代管理与工程应用中具有线性约束的可归结为黑箱优化问题的设计优化和工艺优化领域。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明单层Bp神经网络的等效方程组模型构造方法的流程图;
图2是本发明明举例所用的MNIST手写数字数据集;
图3是本发明对数据集预处理示意图;
图4是本发明单层Bp神经网络等效方程组模型构造方法示意图;
图5是本发明单层Bp神经网络学习优化后测试集识别正确率随Epoches变化曲线;
图6是本发明方程组模型求解后测试集识别正确率随Epoches变化曲线;
图7是本发明带有线性约束条件的实施例1的单层Bp神经网络等效方程组模型构造示意图。
具体实施方式
以下将配合实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
本发明公开了一种单层Bp神经网络的等效方程组模型构造方法,如图1所示,包括以下步骤:
步骤1、对数据集进行预处理:
以识别手写字符任务为例,其需要用到MNIST数据集。MNIST数据集是一个入门级的计算机视觉数据集,其中包含60000份训练图片及其对应标签和10000份测试集图片及其对应标签。图像数据集包含如图2所示的各种手写数字图片。
标签数据集包含与图像数据集中图像一一对应的One-hot编码形式的标签值,比如数字0的标签就是100000000。由于MNIST数据集中的手写数字是以28*28像素的图片格式进行存放,如果想要进行矩阵乘法,我们需要对数据集进行预处理。如图3所示,将训练集和测试集中的图像数据F28×28变形为行向量F1×784然后按列进行存放。
通过上述预处理后将训练集和测试集图像样本分别集命名为“F_train”和“F_test”。其中F_train数据集为784×60000矩阵,F_test数据集为784×10000的矩阵。训练集和测试集标签集对应于图像样本集分别集命名为“B_train”和“B_test”,其中B_train数据集为10×60000的矩阵,B_test数据集为10×10000的矩阵。将测试集的图片和标签独立封装是有必要的,因为在机器学习时要求有一个独立的测试数据集进行评估该模型性能,通过识别没有见过的图片来测试模型推广和泛化的能力。
步骤2、载入训练集;
以MATLAB模拟仿真软件为例,利用Load函数,输入Load(‘F_train.mat’)此类命令即可将训练集和测试集图片集和标签集载入到软件工作区。
步骤3、读取神经网络结构;
单层Bp神经网络网络结构直接由具体任务所决定,以识别手写数字为例,输入层神经元个数由输入图片的数据量所决定,在上一步骤中,将图片转化为784维的行向量,因此输入层神经元个数为784个。图片对应的标签采用One-hot编码,为了表达0~9不同类的手写数字,因此输出层神经元个数为10。
步骤4、构造等效方程组模型,具体按照以下步骤实施:
在无约束性条件情况下,根据线性非齐次方程组形式:AX=B,利用单层Bp神经网络对应的输入图像和标签值,编写程序求解方程组模型;验证方程组的解与单层Bp神经网络利用梯度下降法优化得到的系数矩阵是等效的,具体为,
步骤4.1、0~9数字图片被分为十类,标签值按照One-hot编码,那么数字0的标签就是100000000;由于One-hot编码形式,每一位编码对应一个方程中等式右边的B项,那么一张图片就对应了十个方程;
W是Bp神经网络中的系数矩阵,通常使用Bp神经网络训练某个任务的时候,已知输入图像和对应分类标签,系数矩阵大小就已经确定了。通过将系数矩阵W变形为列向量X,在已知方程组形式为AX=B、列向量X为7840维,列向量B为10维,就可以根据矩阵乘法推断出矩阵A的大小为10行7840列,从而构造出AX=B具体的方程组模型;
在下面的步骤中,再通过数值迭代求解后再将列向量X利用reshape函数变形回系数矩阵W,达到用等效方程组模型求解原本单层Bp神经网络中系数矩阵W的目的。
步骤4.2、采用梯度下降迭代法求解方程组求解无约束性条件下的等效方程组模型,具体包括如下步骤:
步骤4.2.1、通过初始化未知数列向量X为服从均匀分布的任意随机数,从而确定初始迭代点X,给定收敛精度T=0.2和学习率α=0.005,初始化矩阵行号i=1,训练次数epoches=0。
步骤4.2.2、判断i是否大于600000,如果大于则循环完一次完整的训练集,epoches=epoches+1,令i=1,重新从第一个方程进行迭代,如果仍小于600000则继续执行步骤4.2.3;
步骤4.2.3、选取训练集A矩阵第i行和标签列向量B第i行,这一步实则是选择方程组中第i个方程;
步骤4.2.4、计算第i个方程在X点时,Bi对X的一阶偏导数
步骤4.2.5、根据梯度下降公式求得新的未知数X的值,α为学习率,为Bi对X的一阶偏导数;
步骤4.2.6、计算更新X后的方程组输出与期望输出的均方差MSE,
其中,N表示方程组中方程个数,在识别手写数字任务中为600000,Ai代表A矩阵中第i行,X为未知数的值,Bi代表列向量B中第i行。
步骤4.2.7、判断MSE是否满足设定收敛精度T,如果满足转步骤4.2.8,如果不满足执行i=i+1后转步骤4.2.2;
步骤4.2.8、输出训练好后的未知数列向量X,将未知数列向量X变形回Bp神经网络权重系数矩阵的形式,命名为W1,既是无约束条件下,等效方程组模型的解X通过reshape函数处理后的权重系数矩阵W1,以MATLAB软件为例使用reshape函数,执行W1=reshape(X,[78410]);
步骤4.3、验证无约束性条件下的方程组模型与单层Bp神经网络等效性:
对比由无约束性下条件方程组的解变形成的网络权重系数矩阵W1和单层Bp神经网络训练的权重矩阵W2在测试集中的识别正确率,具体包括如下步骤:
步骤4.3.1、将由未知数列向量X变形得到的权重系数矩阵W1带入单层Bp神经网络进行测试,计算单层Bp神经网络实际输出Z=F_test*W1,最终Z矩阵大小为10000*10。
步骤4.3.2、由于Bp神经网络输出中每一列代表一张图片的输出结果,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片正确识别,正确识别图片数目加一。由此可以统计出由方程组模型求解变形得到的权重系数矩阵W1所组成的单层Bp神经网络对10000张测试集图片分类的正确率。
步骤4.3.3、直接利用训练集图片训练单层Bp神经网络权重系数矩阵W2:
步骤4.3.3.1、初始化系数矩阵W2为服从均匀分布的任意随机数矩阵,给定收敛精度T=0.2和学习率α=0.1,初始化矩阵行号i=1,训练次数epoches=0。
步骤4.3.3.2、判断i是否大于60000,如果大于则循环完一次完整的训练集,epoches=epoches+1,令i=1,重新从第一张图片进行迭代,如果仍小于60000则继续执行步骤4.3.3.3;
步骤4.3.3.3、将F_train和B_train的第i行分别赋值给I变量和O变量,其中I变量表示神经网络输入,O变量表示神经网络期望输出。
步骤4.3.3.4、根据公式计算出神经网络实际输出Z,I变量表示神经网络输入,W2为神经网络系数矩阵。
步骤4.3.3.5、根据Bp算法公式和ΔW2=IT*δ计算出此次迭代权重矩阵改变量ΔW2。其中O为数据集标签同时也是神经网络期望输出,Z为神经网络实际输出,SL为输出层神经元个数,在识别手写数字任务中为10。δ为中间变量,表示该层输出对损失函数产生的影响。IT表示将神经网络输入进行转成为行向量。
步骤4.3.3.6、根据权重矩阵更新公式更新权重矩阵W2,
W2=W2-α*ΔW2 (2);
步骤4.3.3.7、计算更新后的神经网络实际输出与期望输出的均方差MSE,其中M是训练集中图像数量为60000,SL为输出层神经元个数,Ii表示第i张图片,Oi表示第i张图片的标签即期望输出。
步骤4.3.3.8、判断MSE是否小于收敛精度T=0.2,如果满足则停止循环并输出系数矩阵W2,如果不满足执行i=i+1后转步骤4.3.3.2;
步骤4.3.4、利用Bp神经网络权重系数矩阵W2计算单层Bp神经网络实际输出Z=F_test*W2,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片正确识别,正确识别图片数目加一;由此可以统计出由权重系数矩阵W2组成的单层Bp神经网络对10000张测试集图片分类的正确率。
步骤4.3.5、比较由权重系数矩阵W1和权重系数矩阵W2分别组成的两个单层Bp神经网络对10000张测试集图片分类的正确率是否近似。从而验证利用梯度下降法优化求得的方程组的解与单层Bp神经网络得到的系数矩阵是等效的。
步骤5、构造线性约束条件下的等效方程组模型,并进行求解;
步骤5.1、对步骤4中的等效方程组模型加入约束性条件∑wij=0,其中,w代表矩阵W3中的元素,wij代表矩阵W3第i行第j列的元素。这个等式的含义是将矩阵W3中所有元素加起来为0,按X列向量进行表达后,系数全为1;所以将矩阵A的新一行全部赋值为1,对应标签B列向量新的一行中赋值为0;
步骤5.2、求解线性约束性条件方程组模型,
具体实施等同于步骤4.2的求解方法,采用梯度下降迭代法求解方程组,同样输出训练好后的未知数列向量X,将未知数列向量X变形回Bp神经网络系数矩阵W3;
步骤6、利用测试集测试带有线性约束性条件方程组的解,具体实施如下:
步骤6.1、将带有线性约束性条件方程组的解变形后作为Bp神经网络权重系数矩阵W3计算单层Bp网络实际输出Z=F_test*W3,最终Z矩阵大小为10000*10。
步骤6.2、由于Bp神经网络输出中每一列代表一张图片的输出结果,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片被正确识别,正确识别图片数目加一。由此可以统计出方程组模型对10000张测试集图片分类的正确率。
实施例1
以单层Bp神经网络模型识别手写数字为例来解释构造方法,并说明该模型的等效性。
采用矩阵的形式表达方程组:AX=B;
首先0~9数字图片被分为十类,标签值按照One-hot编码,那么数字0的标签就是100000000。由于One-hot编码形式,每一位编码对应一个方程中等式右边的B项,那么一张图片就对应了十个方程;方程组中的X是未知数列向量,对应于神经网络系数矩阵W。构造中,本方法需要对系数矩阵W进行变形,如图4所示,需要将W中一列一列地重新构造成新的列向量。同时因为列向量X为7840维,根据矩阵乘法推断出矩阵A的大小为10行7840列。在不改变神经网络学习内容情况下完成方程组搭建,就要对矩阵A进行适当填充0。具体矩阵A的内容可以参考图4,其中A中只有对角线上有值,并且F其实是输入图片按列重构成的行向量。
需要说明的是,当图4中矩阵A除了行向量F所在位置以外都填充0。以方程组的第一个方程A1X=B1为例,其中A1代表A矩阵第一行,B1代表列向量B第一行。矩阵A第一行与未知数列向量X的矩阵乘法可分为两部分,第一部分为矩阵A第一行中的行向量F乘未知数列向量中X1部分,实际上等同于输入到神经网络的行向量与神经网络系数矩阵第一列相乘;第二部分为矩阵A第一行中的其余0元素与未知数列向量中其他部分元素相乘,其结果必定为0,再将两部分进行求和。显而易见,其他列不影响第一个方程的结果,方程组模型计算内容与神经网络计算内容一致,这样的操作保证了方程组模型与前馈神经网络的等效性。
经过实验,图5是权重系数矩阵W2组成的单层Bp神经网络对测试集的识别率,图6是方程组模型求解出X再变形得到的系数矩阵W1所构成的单层Bp神经网络对测试集的识别率,两者识别率近似,可以证明该方程组模型是单层Bp神经网络切实可靠的等效模型。
在此基础上,只需要将约束条件转化为用未知数列向量X表达的形式,将其每条约束条件的系数行向量转化为矩阵A中新的一行,同时约束条件常数项放入标签所在列向量中新的一行,就构成了完整的方程组,剩下的工作就是对方程组进行求解。
实施例2
进一步对带有约束条件的方程组模型进行举例说明,仍以手写数字为例,添加线性约束性条件∑wij=0。本例证明加入线性约束性条件后,方程组模型仍能求解,且该解满足线性约束性条件。
对应参考图示如图7,将约束性条件∑wij=0,按列向量X进行表达后,系数全为1。所以将矩阵A的新一行全部赋值为1,对应标签B列向量新的一行中赋值为0。
表1为加入线性约束条件后方程组模型的解分类手写数字的实验结果,表2为无约束性条件下方程组模型的解分类手写数字的实验结果。表1中的五次带有线性约束条件方程组模型实验中,训练好后的权重系数矩阵W3识别正确率对比表2无约束条件下训练好后的权重系数矩阵W1的识别正确率只有略微下降。但表1中∑wij近似趋近于0,表2中权重系数矩阵优化无约束条件束缚,∑wij明显大相当多。这可以证明通过迭代法,本发明公开的单层Bp神经网络等效方程组模型能方便添加各种线性约束性条件、编写程序简单、并能成功求解出满足约束条件的解。
表1带约束条件的方程组模型求解结果
实验序号 | ∑wij | 测试集正确率 |
1 | -0.172189566747734 | 0.8832 |
2 | -0.168805776560580 | 0.8688 |
3 | -0.144421182230185 | 0.8755 |
4 | -0.120846124851583 | 0.8797 |
5 | -0.148417994116522 | 0.8860 |
表2无约束条件的方程组模型求解结果
实验序号 | ∑wij | 测试集正确率 |
1 | -23.5554061321719 | 0.9155 |
2 | -23.9626962305931 | 0.9160 |
3 | -24.3687443706352 | 0.9161 |
4 | -25.8854278311782 | 0.9157 |
5 | -30.0647073235074 | 0.9154 |
本发明提出了一种单层Bp神经网络等效方程组模型构造方法,在无约束条件下,该模型能达到与单层Bp神经网络识几乎相同的识别率;在复杂线性约束条件下,该模型能够清晰表达约束条件,解决单层Bp神经网络难以编写程序求解的优化问题。
上述说明示出并描述了发明的若干优选实施例,但如前所述,应当理解发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离发明的精神和范围,则都应在发明所附权利要求的保护范围内。
Claims (4)
1.一种单层Bp神经网络的等效方程组模型构造方法,其特征在于,包括以下步骤:
步骤1、对数据集进行预处理;
步骤2、载入训练集;
步骤3、读取神经网络结构;
步骤4、构造无约束条件下的等效方程组模型,并进行求解,然后验证无约束条件下的等效方程组模型与单层Bp神经网络的等效性;
步骤5、构造线性约束条件下的等效方程组模型,并进行求解;
步骤6、利用测试集测试带有线性约束条件方程组的解;
所述步骤1中的对数据集进行预处理具体为:将数据集的训练集和测试集中的图像数据变形为行向量,然后按列进行存放;通过上述预处理后将训练集和测试集图像样本分别命名为“F_train”和“F_test”;训练集和测试集标签集对应于图像样本集分别命名为“B_train”和“B_test”,将测试集的图片和标签独立封装;所述的数据集为MNIST数据集;包含60000份训练集图片及其对应标签和10000份测试集图片及其对应标签;
所述步骤2中的载入训练集具体为:将训练集和测试集图片集和标签集载入到软件工作区;
所述步骤3中的读取神经网络结构具体为:输入层神经元个数等于训练集图片像素点个数;输出层神经元个数为训练集图片类别数;
所述步骤4中的构造无约束条件下的等效方程组模型,并进行求解,然后验证无约束条件下的等效方程组模型与单层Bp神经网络的等效性,具体为:
步骤4.1、在无约束性条件情况下,根据线性非齐次方程组形式:AX=B,利用单层Bp神经网络对应的输入图像和标签值,编写程序求解方程组模型,具体为:
0~9数字图片被分为十类,标签值按照One-hot编码;由于One-hot编码形式,每一位编码对应一个方程中等式右边的B项,那么一张图片就对应了十个方程;
通过将系数矩阵W变形为列向量X,在已知方程组形式为AX=B、列向量X为7840维,列向量B为10维,就可以根据矩阵乘法推断出矩阵A的大小为10行7840列,从而构造出AX=B具体的方程组模型;
步骤4.2、采用梯度下降迭代法求解方程组求解无约束性条件下的等效方程组模型;
步骤4.3、验证无约束性条件下的方程组模型与单层Bp神经网络等效性;
所述步骤4.2中的采用梯度下降迭代法求解方程组求解无约束性条件下的等效方程组模型,具体为:
步骤4.2.1、通过初始化未知数列向量X为服从均匀分布的任意随机数,从而确定初始迭代点X,给定收敛精度T=0.2和学习率α=0.005,初始化矩阵行号i=1,训练次数epoches=0;
步骤4.2.2、判断i是否大于600000,如果大于则循环完一次完整的训练集,epoches=epoches+1,令i=1,重新从第一个方程进行迭代,如果仍小于600000则继续执行步骤4.2.3;
步骤4.2.3、选取训练集A矩阵第i行和标签列向量B第i行,这样做实则是选择方程组中第i个方程;
步骤4.2.4、计算第i个方程在X点时,Bi对X的一阶偏导数
步骤4.2.5、根据梯度下降公式求得新的未知数X的值,α为学习率,为Bi对X的一阶偏导数;
步骤4.2.6、计算更新X后的方程组输出与期望输出的均方差MSE,
其中,N表示方程组中方程个数,在识别手写数字任务中为600000,Ai代表A矩阵中第i行,X为未知数的值,Bi代表列向量B中第i行;
步骤4.2.7、判断MSE是否满足设定收敛精度T,如果满足转步骤4.2.8,如果不满足执行i=i+1后转步骤4.2.2;
步骤4.2.8、输出训练好后的未知数列向量X,将未知数列向量X变形回Bp神经网络系数矩阵W1,以MATLAB软件为例使用reshape函数,执行W1=reshape(X,[784 10]);
所述步骤4.3中的验证无约束性条件下的方程组模型与单层Bp神经网络等效性,具体为:
步骤4.3.1、将由未知数列向量X变形得到的权重系数矩阵W1带入单层Bp神经网络进行测试,计算单层Bp网络实际输出Z=F_test*W1,最终Z矩阵大小为10000*10;
步骤4.3.2、由于Bp神经网络输出中每一列代表一张图片的输出结果,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片被正确识别,正确识别图片数目加一;由此统计出由方程组模型求解变形得到的权重系数矩阵W1所组成的单层Bp神经网络对10000张测试集图片分类的正确率;
步骤4.3.3、直接利用训练集图片训练单层Bp神经网络系数矩阵W2;
步骤4.3.4、利用Bp神经网络权重系数矩阵W2计算单层Bp神经网络实际输出Z=F_test*W2,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片被正确识别,正确识别图片数目加一;由此可以统计出由权重系数矩阵W2组成的单层Bp神经网络对10000张测试集图片分类的正确率;
步骤4.3.5、比较由权重系数矩阵W1和权重系数矩阵W2分别组成的两个单层Bp神经网络对10000张测试集图片分类的正确率是否近似;从而验证利用梯度下降法优化求得的方程组的解与单层Bp神经网络得到的系数矩阵是等效的。
2.根据权利要求1所述的方法,其特征在于,所述步骤4.3.3中的直接利用训练集图片训练单层Bp神经网络系数矩阵W2具体为:
步骤4.3.3.1、初始化系数矩阵W2为服从均匀分布的任意随机数矩阵,给定收敛精度T=0.2和学习率α=0.1,初始化矩阵行号i=1,训练次数epoches=0;
步骤4.3.3.2、判断i是否大于60000,如果大于则循环完一次完整的训练集,epoches=epoches+1,令i=1,重新从第一张图片进行迭代,如果仍小于60000则继续执行步骤4.3.3.3;
步骤4.3.3.3、将F_train和B_train的第i行分别赋值给I变量和O变量,其中I变量表示神经网络输入,O变量表示神经网络期望输出;
步骤4.3.3.4、根据公式计算出神经网络实际输出Z,I变量表示神经网络输入,W2为神经网络系数矩阵;
步骤4.3.3.5、根据Bp算法公式和ΔW2=IT*δ计算出此次迭代权重矩阵改变量ΔW2;其中O为数据集标签同时也是神经网络期望输出,Z为神经网络实际输出,SL为输出层神经元个数,在识别手写数字任务中为10;δ为中间变量,表示该层输出对损失函数产生的影响;IT表示将神经网络输入进行转成为行向量;
步骤4.3.3.6、根据权重矩阵更新公式更新权重矩阵W2,
W2=W2-α*ΔW2 (2);
步骤4.3.3.7、计算更新后的神经网络实际输出与期望输出的均方差MSE,其中M是训练集中图像数量为60000,SL为输出层神经元个数,Ii表示第i张图片,Oi表示第i张图片的标签即期望输出;
步骤4.3.3.8、判断MSE是否小于收敛精度T=0.2,如果满足则停止循环并输出系数矩阵W2,如果不满足执行i=i+1后转步骤4.3.3.2。
3.根据权利要求2所述的方法,其特征在于,所述步骤5中的构造线性约束条件下的等效方程组模型,并进行求解具体为:
步骤5.1、对步骤4中的等效方程组模型加入约束性条件∑wij=0,其中,w代表矩阵W3中的元素,wij代表矩阵W3第i行第j列的元素;这个等式的含义是将矩阵W3中所有元素加起来为0,按X列向量进行表达后,系数全为1;所以将矩阵A的新一行全部赋值为1,对应标签B列向量新的一行中赋值为0;
步骤5.2、求解线性约束性条件方程组模型:采用梯度下降迭代法求解方程组,同样输出训练好后的未知数列向量X,将未知数列向量X变形回Bp神经网络系数矩阵W3。
4.根据权利要求3所述的方法,其特征在于,所述步骤6中的利用测试集测试带有线性约束性条件方程组的解,具体为:
步骤6.1、将带有线性约束性条件方程组的解变形后作为Bp神经网络权重系数矩阵W3计算单层Bp神经网络实际输出Z=F_test*W3,最终Z矩阵大小为10000*10;
步骤6.2、由于Bp神经网络输出中每一列代表一张图片的输出结果,通过利用max函数按顺序提取实际输出和其对应标签中每一列最大值所在的行号,进行比较,如相同则证明该图片正确识别,正确识别图片数目加一;由此统计出方程组模型对10000张测试集图片分类的正确率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089537.4A CN114298248B (zh) | 2022-01-25 | 2022-01-25 | 一种单层Bp神经网络的等效方程组模型构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089537.4A CN114298248B (zh) | 2022-01-25 | 2022-01-25 | 一种单层Bp神经网络的等效方程组模型构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114298248A CN114298248A (zh) | 2022-04-08 |
CN114298248B true CN114298248B (zh) | 2024-09-03 |
Family
ID=80978132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210089537.4A Active CN114298248B (zh) | 2022-01-25 | 2022-01-25 | 一种单层Bp神经网络的等效方程组模型构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114298248B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105139036A (zh) * | 2015-06-19 | 2015-12-09 | 四川大学 | 一种基于稀疏编码的手写体数字识别方法 |
CN110490128A (zh) * | 2019-08-16 | 2019-11-22 | 南京邮电大学 | 一种基于加密神经网络的手写识别方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112001112A (zh) * | 2020-06-23 | 2020-11-27 | 辽宁科技学院 | 基于bp神经网络的线性约束黑箱优化问题的优化方法 |
CN112113666B (zh) * | 2020-08-31 | 2022-06-03 | 哈尔滨工程大学 | 一种基于自适应发射率模型的多光谱测温装置及其测温方法 |
-
2022
- 2022-01-25 CN CN202210089537.4A patent/CN114298248B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105139036A (zh) * | 2015-06-19 | 2015-12-09 | 四川大学 | 一种基于稀疏编码的手写体数字识别方法 |
CN110490128A (zh) * | 2019-08-16 | 2019-11-22 | 南京邮电大学 | 一种基于加密神经网络的手写识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114298248A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107392973B (zh) | 像素级手写体汉字自动生成方法、存储设备、处理装置 | |
CN110909926A (zh) | 基于tcn-lstm的太阳能光伏发电预测方法 | |
CN110852439A (zh) | 神经网络模型的压缩与加速方法、数据处理方法及装置 | |
CN111881958B (zh) | 车牌分类识别方法、装置、设备及存储介质 | |
KR20160041856A (ko) | 베이지안 최적화를 수행하기 위한 시스템 및 방법 | |
CN111401473B (zh) | 基于注意力机制卷积神经网络的红外目标分类方法 | |
Tripathi et al. | Image classification using small convolutional neural network | |
CN113128478A (zh) | 模型训练方法、行人分析方法、装置、设备及存储介质 | |
CN112000809A (zh) | 一种文本类别的增量学习方法及装置、可读存储介质 | |
CN115080749B (zh) | 一种基于自监督训练的弱监督文本分类方法、系统和装置 | |
Ibragimovich et al. | Effective recognition of pollen grains based on parametric adaptation of the image identification model | |
CN112364974B (zh) | 一种基于激活函数改进的YOLOv3算法 | |
CN113434699A (zh) | Bert模型的预训练方法、计算机装置和存储介质 | |
CN110991247B (zh) | 一种基于深度学习与nca融合的电子元器件识别方法 | |
CN111079837A (zh) | 一种用于二维灰度图像检测识别分类的方法 | |
CN114648667B (zh) | 一种基于轻量化双线性cnn模型的鸟类图像细粒度识别方法 | |
CN114358197A (zh) | 分类模型的训练方法及装置、电子设备、存储介质 | |
CN117933345B (zh) | 一种医学图像分割模型的训练方法 | |
CN116542701A (zh) | 一种基于cnn-lstm组合模型的碳价预测方法及系统 | |
Kosykh et al. | Integration of big data processing tools and neural networks for image classification | |
CN113935413A (zh) | 一种基于卷积神经网的配网录波文件波形识别方法 | |
CN111783688B (zh) | 一种基于卷积神经网络的遥感图像场景分类方法 | |
CN114298248B (zh) | 一种单层Bp神经网络的等效方程组模型构造方法 | |
CN116579408A (zh) | 一种基于模型结构冗余度的模型剪枝方法及系统 | |
CN115565115A (zh) | 一种舾装件智能识别方法、计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |