CN113033782B - 一种手写数字识别模型训练方法和*** - Google Patents
一种手写数字识别模型训练方法和*** Download PDFInfo
- Publication number
- CN113033782B CN113033782B CN202110352414.0A CN202110352414A CN113033782B CN 113033782 B CN113033782 B CN 113033782B CN 202110352414 A CN202110352414 A CN 202110352414A CN 113033782 B CN113033782 B CN 113033782B
- Authority
- CN
- China
- Prior art keywords
- neuron
- layer
- training
- input
- neural network
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Multimedia (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种手写数字识别模型训练方法和***,输入MNIST训练数据集和STDP突触初始权值矩阵,建立各神经元模型和各突触模型,使用分布式多线程并行技术,根据计算机资源动态使用多个线程对神经元群体进行预先划分,然后建立线程内局域脉冲神经网络,将每个独立线程内的神经元群体、突触连接关系以及突触权值进行初始化,在初始化完成后,所有线程按照设定轮数迭代进行并行训练,解决了现有的脉冲神经网络采用串行训练方法,不能合理利用计算机资源,训练效率低下,不利于推广的技术问题。
Description
技术领域
本发明涉及手写识别技术领域,尤其涉及一种手写数字识别模型训练方法和***。
背景技术
手写数字识别,是计算机从纸质文档、照片或其他来源接收和理解并识别可读的手写数字的能力,在实际生活中具有很大的实际应用价值,例如,手写数字识别可以应用在银行汇款单号识别中,以极大的减少人工成本,在此过程中,一般使用深度人工神经网络结构进行识别。但是深度人工神经网络的本质与实际的大脑模型相差甚远,识别率并不高。为此,目前提出了使用第三代人工神经网络进行改进,以脉冲的形式实现神经元之间的信息传输的脉冲神经网络(Spiking Neural Network,SNN),被誉为第三代人工神经网络,在神经元模型、突触模型、学习机制上具有很强的生物合理性,与真实生物神经网络高度接近。但是,由于脉冲神经网络中神经元类型复杂多样,神经元数目众多,连接各神经元的突出结构具有不同的延时和可修改的连接权值,海量神经元的实时活动状态模拟,对于计算机来说是个巨大的挑战,例如利用时序依赖脉冲(突触)可塑性学习规则(Spike TimingDependent Plasticity,STDP)的无监督训练算法,虽然能够成功训练出用于手写数字识别预测的网络模型,但是这种训练方法是典型的串行训练方法,不能合理利用计算机资源,训练效率低下,不利于推广。
发明内容
本发明提供了一种手写数字识别模型训练方法和***,用于解决现有的脉冲神经网络采用串行训练方法,不能合理利用计算机资源,训练效率低下,不利于推广的技术问题。
有鉴于此,本发明第一方面提供了一种手写数字识别模型训练方法,包括:
将MNIST训练数据集和STDP突触初始权值矩阵输入全局脉冲神经网络模型,全局脉冲神经网络模型中包含各神经元模型和各突触模型;
根据计算机资源动态使用多线程对全局脉冲神经网络模型的神经元群体进行预先划分;
建立线程内局域脉冲神经网络模型,将每个独立线程内的神经元群体、突触连接关系和突触权值进行初始化;
在初始化完成后,对所有线程内局域脉冲神经网络模型按照预设轮数进行迭代训练,其中,在训练期间不断进行周期同步与脉冲传输;
在训练结束后,保存各个线程的所有STDP突触最终权值,整合生成突触权值矩阵并保存。
可选地,将MNIST训练数据集和STDP突触初始权值矩阵输入全局脉冲神经网络模型,包括:
将MNIST训练数据集中所有28*28像素的训练图像以784*1的矩阵进行转换,以均匀分布的随机数作为STDP突触初始权值矩阵的初始值,输入全局脉冲神经网络模型。
可选地,全局脉冲神经网络模型包括三层网络结构,分别为输入层N1、兴奋层N2和抑制层N3;
N1={Ai={ak;k=1,2,...,K};i=1,2,...I}
N2={bi;i=1,2,...,I}
N3={ci;i=1,2,...,I}
N1到N2的突触集合为:
E12={Hi′I={eki=(ak,bi,wki);k=1,2,...,K};i′,i=1,2,...,I}
N2到N3的突触集合为:
E23={gii=(bi,ci,wii);i=1,2,...,I}
N3到N2的突触集合为:
E32={Li={eii′=(ci,bi′,wii′);i′=1,2,...,I且i′≠i};i=1,2,...,I}
其中,K为输入图像的像素个数,I为兴奋层神经元个数,且输入神经元团个数、兴奋层神经元个数和抑制层神经元个数相等,均为I;Ai为输入神经元团,对应一幅输入的手写数字灰度图像;ak为输入神经元,对应于一幅输入的手写数字灰度图像的一个像素;bi为兴奋神经元;ci为抑制神经元;Hi′i为输入神经元团Ai′到兴奋神经元bi的突触集合,eki为第i′个输入神经元团中的第k个突触,wki为eki的权值;gii为兴奋神经元bi到抑制神经元ci有向边,wii为gii连接权值;Li为抑制层神经元ci到兴奋层的突触集合,eii′为抑制神经元ci到兴奋神经元bi′的突触,wii′为eii′的权值。
可选地,根据计算机资源动态使用多线程对全局脉冲神经网络模型的神经元群体进行预先划分,包括:
根据计算机的CPU个数创建多个线程,每个线程独立占用一个CPU,其中,创建的线程个数不超过计算机的CPU个数;
在每个线程中,输入神经元连接到兴奋神经元的STDP突触数量为K×(I/X)个,兴奋神经元连接到抑制神经元的静态突触数量为I/X个,抑制神经元连接到兴奋神经元的静态突触数量为((400/X)-1)×(400/X)个,匹配神经元连接到兴奋神经元的静态突触数量为(I/X-1)×(1-I/X)个,其中,X为CPU个数。
可选地,每个线程内局域脉冲神经网络模型包括四层网络结构,分别为:输入层M1、兴奋层M2、抑制层M3和映射层M4;
输入层M1输入神经元ak范围为:k=1,2,...,K,兴奋层M2兴奋神经元bi范围为:x×I/X,...,(x+1)×I/X,抑制层M3抑制神经元ci范围为:x×I/X,...,(x+1)×I/X,映射层M4映射神经元dj范围为:1,...,x×I/X或(x+1)×I/X,...,I;
M1={Ai={ak;k=1,2,...,K};i=1,2,...I/X}
M2={bi;i=x×I/X,...,(x+1)×I/X}
M3={ci;i=x×I/X,...,(x+1)×I/X}
M4={dj;j=1,...,x×I/Xor(x+1)×I/X,...,I}
M1到M2的突触集合为:
F12={Pi′I=(fki=(ak,bi,w′ii);k=1,2,...,K};i′,i=x×I/X,...,(x+1)×I/X}
M2到M3的突触集合为:
F23={rii=(bi,ci,w′ii);i′=x×I/X,...,(x+1)×I/X且i′≠i;i=x×I/X,...,(x+1)×I/X}
M3到M2的突触集合为:
F32={Qi={fii′=(ci,bi′w′ii′);i′=x×I/X,...,(x+1)×I/X且i′≠i};i=x×I/X,...,(x+1)×I/X}
M4到M2的突触集合为:
F42={Sj={fji=(dj,bi,w′ji);i=x×I/X,...,(x+1)×I/X};j=1,...,x×I/Xor(x+1)×I/X,...,I}
在局域脉冲神经网络中,所有的神经元状态均为预设默认静息状态,STDP突触F12接收均匀分布随机值作为训练初始权值并在每周期保持更新状态,静态突触F23、F32和F42接收预设默认值作为训练初始权值并在每周期保持固定状态。
本发明第二方面提供了一种手写数字识别模型训练***,包括:
输入模块,用于将MNIST训练数据集和STDP突触初始权值矩阵输入全局脉冲神经网络模型,全局脉冲神经网络模型中包含各神经元模型和各突触模型;
划分模块,用于根据计算机资源动态使用多线程对全局脉冲神经网络模型的神经元群体进行预先划分;
线程模块,用于建立线程内局域脉冲神经网络模型,将每个独立线程内的神经元群体、突触连接关系和突触权值进行初始化;
训练模块,用于在初始化完成后,对所有线程内局域脉冲神经网络模型按照预设轮数进行迭代训练,其中,在训练期间不断进行周期同步与脉冲传输;
整合模块,用于在训练结束后,保存各个线程的所有STDP突触最终权值,整合生成突触权值矩阵并保存。
可选地,输入模块具体用于:
将MNIST训练数据集中所有28*28像素的训练图像以784*1的矩阵进行转换,以均匀分布的随机数作为STDP突触初始权值矩阵的初始值,输入全局脉冲神经网络模型。
可选地,全局脉冲神经网络模型包括三层网络结构,分别为输入层N1、兴奋层N2和抑制层N3;
N1={Ai={ak;k=1,2,...,K};i=1,2,...I}
N2={bi;i=1,2,...,I}
N3={ci;i=1,2,...,I}
N1到N2的突触集合为:
E12={Hi′I={eki=(ak,bi,wki);k=1,2,...,K};i′,i=1,2,...,I}
N2到N3的突触集合为:
E23={gii=(bi,ci,wii);i=1,2,...,I}
N3到N2的突触集合为:
E32={Li={eii′=(ci,bi′,wii′);i′=1,2,...,I且i′≠i};i=1,2,...,I}
其中,K为输入图像的像素个数,I为兴奋层神经元个数,且输入神经元团个数、兴奋层神经元个数和抑制层神经元个数相等,均为I;Ai为输入神经元团,对应一幅输入的手写数字灰度图像;ak为输入神经元,对应于一幅输入的手写数字灰度图像的一个像素;bi为兴奋神经元;ci为抑制神经元;Hi′i为输入神经元团Ai′到兴奋神经元bi的突触集合,eki为第i′个输入神经元团中的第k个突触,wki为eki的权值;gii为兴奋神经元bi到抑制神经元ci有向边,wii为gii连接权值;Li为抑制层神经元ci到兴奋层的突触集合,eii′为抑制神经元ci到兴奋神经元bi′的突触,wii′为eii′的权值。
可选地,划分模块具体用于:
根据计算机的CPU个数创建多个线程,每个线程独立占用一个CPU,其中,创建的线程个数不超过计算机的CPU个数;
在每个线程中,输入神经元连接到兴奋神经元的STDP突触数量为K×(I/X)个,兴奋神经元连接到抑制神经元的静态突触数量为I/X个,抑制神经元连接到兴奋神经元的静态突触数量为((400/X)-1)×(400/X)个,匹配神经元连接到兴奋神经元的静态突触数量为(I/X-1)×(1-I/X)个,其中,X为CPU个数。
可选地,每个线程内局域脉冲神经网络模型包括四层网络结构,分别为:输入层M1、兴奋层M2、抑制层M3和映射层M4;
输入层M1输入神经元ak范围为:k=1,2,...,K,兴奋层M2兴奋神经元bi范围为:x×I/X,...,(x+1)×I/X,抑制层M3抑制神经元ci范围为:x×I/X,...,(x+1)×I/X,映射层M4映射神经元dj范围为:1,...,x×I/X或(x+1)×I/X,...,I;
M1={Ai={ak;k=1,2,...,K};i=1,2,...I/X}
M2={bi;i=x×I/X,...,(x+1)×I/X}
M3={ci;i=x×I/X,...,(x+1)×I/X}
M4={dj;j=1,...,x×I/Xor(x+1)×I/X,...,I}
M1到M2的突触集合为:
F12={Pi'I={fki=(ak,bi,w′ii);k=1,2,...,K};i′,i=x×I/X,...,(x+1)×I/X}
M2到M3的突触集合为:
F23={rii=(bi,ci,w′ii);i′=x×I/X,...,(x+1)×I/X且i′≠i;i=x×I/X,...,(x+1)×I/X}
M3到M2的突触集合为:
F32={Qi={fii′=(ci,bi′w′ii′);i′=x×I/X,...,(x+1)×I/X且i′≠i};i=x×I/X,...,(x+1)×I/X}
M4到M2的突触集合为:
F42={Sj={fji=(dj,bi,w′ji);i=x×I/X,...,(x+1)×I/X};j=1,...,x×I/Xor(x+1)×I/X,...,I}
在局域脉冲神经网络中,所有的神经元状态均为预设默认静息状态,STDP突触F12接收均匀分布随机值作为训练初始权值并在每周期保持更新状态,静态突触F23、F32和F42接收预设默认值作为训练初始权值并在每周期保持固定状态。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明中提供了一种手写数字识别模型训练方法,输入MNIST训练数据集和STDP突触初始权值矩阵,建立各神经元模型和各突触模型,使用分布式多线程并行技术,根据计算机资源动态使用多个线程对神经元群体进行预先划分,然后建立线程内局域脉冲神经网络,将每个独立线程内的神经元群体、突触连接关系以及突触权值进行初始化,在初始化完成后,所有线程按照设定轮数迭代进行并行训练,解决了现有的脉冲神经网络采用串行训练方法,不能合理利用计算机资源,训练效率低下,不利于推广的技术问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例中提供的一种手写数字识别模型训练方法的流程示意图;
图2为本发明实施例中提供的单个线程内串行训练过程示意图;
图3为本发明实施例中提供的初始随机STDP突触权值矩阵训练渐变过程(顺序为从上到下,从左到右)。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,请参阅图1至图3,本发明提供了一种手写数字识别模型训练方法的实施例,包括:
步骤101、将MNIST训练数据集和STDP突触初始权值矩阵输入全局脉冲神经网络模型,全局脉冲神经网络模型中包含各神经元模型和各突触模型。
MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28*28像素的灰度手写数字图片。本发明中将MNIST数据集中所有28*28像素的训练图像以784*1的矩阵进行转换,STDP突触权值的初始值均为均匀分布的随机数,建立包含各神经元活动模型和各突触模型的全局脉冲神经网络模型。全局脉冲神经网络模型包括三层网络结构,分别为输入层N1、兴奋层N2和抑制层N3;
N1={Ai={ak;k=1,2,...,K};i=1,2,...I}
N2={bi;i=1,2,...,I}
N3={ci;i=1,2,...,I}
N1到N2的突触集合为:
E12={Hi′I={eki=(ak,bi,wki);k=1,2,...,K};i′,i=1,2,...,I}
N2到N3的突触集合为:
E23={gii=(bi,ci,wii);i=1,2,...,I}
N3到N2的突触集合为:
E32={Li={eii′=(ci,bi′,wii′);i′=1,2,...,I且i′≠i};i=1,2,...,I}
其中,K为输入图像的像素个数,I为兴奋层神经元个数,且输入神经元团个数、兴奋层神经元个数和抑制层神经元个数相等,均为I;Ai为输入神经元团,对应一幅输入的手写数字灰度图像;ak为输入神经元,对应于一幅输入的手写数字灰度图像的一个像素;bi为兴奋神经元;ci为抑制神经元;Hi′i为输入神经元团Ai′到兴奋神经元bi的突触集合,eki为第i′个输入神经元团中的第k个突触,wki为eki的权值;gii为兴奋神经元bi到抑制神经元ci有向边,wii为gii连接权值;Li为抑制层神经元ci到兴奋层的突触集合,eii′为抑制神经元ci到兴奋神经元bi′的突触,wii′为eii′的权值。
步骤102、根据计算机资源动态使用多线程对全局脉冲神经网络模型的神经元群体进行预先划分。
使用分布式多线程并行技术,根据计算机资源动态使用多个线程对神经元群体进行预先划分。输入层N1将像素的灰度信息编码为时序脉冲信息。即MNIST数据集中的手写数字灰度图像矩阵在经过步骤101的矩阵维度转换后将被按照一定比例(像素值的强度)作为输入层N1中各输入神经元ak的泊松比率。各输入神经元ak将以各自的泊松比率来决定是否发放脉冲,相应像素值的强度会根据每个时间周期中兴奋神经元的发放脉冲数量进行动态调整。各输入神经元ak的发放脉冲序列符合泊松随机分布。在某个时间周期内,当某个输入神经元ak发放脉冲时,兴奋神经元bi会接收对应STDP突触eki的权值wki作为兴奋型输入。而上一周期内抑制神经元ci′发放的脉冲会作用于本周期内,兴奋神经元bi会接收与ci′连接的对应Static突触(静态突触)eii′的突触权值wii′作为抑制型输入,并随时间周期通过更新方程更新自身膜电位,当膜电位超过自身阈值时发放脉冲。兴奋神经元bi发放脉冲后,与之一对一连接的抑制神经元ci会接收对应Static突触gii的突触权值wii作为输入,并随时间周期通过更新方程更新,满足膜电位超过阈值条件时发放脉冲。抑制神经元ci发放的脉冲对下一周期与之不对应的其他兴奋神经元bi′产生侧抑制作用。此外,根据STDP学习规则,在每个时间周期内,STDP突触的权值会因为突触前后神经元发放的脉冲发生变化,突触前神经元先于突触后神经元发放脉冲,突触权值会增加,表示二者的关联性高。反之突触权值会减小,表示二者的关联性低。
由上述神经元周期更新过程可知,兴奋神经元中的每个神经元的活动过程是一致的,兴奋神经元彼此之间相互独立,无数据交互,也没有先后更新顺序之分。兴奋神经元均与全体输入神经元连接,故其均接收相同的兴奋型输入。兴奋神经元只与对应抑制神经元连接,故兴奋神经元发放的脉冲也只作用在与之相对应的抑制神经元上,不影响其余抑制神经元。至于抑制神经元发放的脉冲则会作用在下一周期的其他兴奋神经元上。
根据上述特点,本发明将全局脉冲神经网络中各神经元群体进行划分,具体如下:
设定现有计算机具有CPU数为X,输入神经元群体数量为784,兴奋神经元群体数量为400,抑制神经元群体数量为400。于是,在计算机上创建X个线程,记为T={tx;x=1,...,X}每个线程tx将独立占用一个CPU以提高训练流程执行效率。每个线程tx都将分配输入神经元784个(记为K个)、兴奋神经元400/X个(记为I/X个)、抑制神经元400/X个(记为I/X个)以及映射神经元(1-400/X)个(记为J/X个)。在每个线程tx中,输入神经元连接到兴奋神经元的STDP突触数量为K*(I/X)个,兴奋神经元连接到抑制神经元的Static突触数量为I/X个,抑制神经元连接到兴奋神经元的Static突触数量为((400/X)-1)*(400/X)个,匹配神经元连接到兴奋神经元的Static突触数量为(I/X-1)*(1-I/X)个。
步骤103、建立线程内局域脉冲神经网络模型,将每个独立线程内的神经元群体、突触连接关系和突触权值进行初始化。
对于每个线程tx,其内部局域脉冲神经网络包含四层网络结构:输入层M1、兴奋层M2、抑制层M3和映射层M4;输入层M1输入神经元ak范围为:k=1,2,...,K,兴奋层M2兴奋神经元bi范围为:x×I/X,...,(x+1)×I/X,抑制层M3抑制神经元ci范围为:x×I/X,...,(x+1)×I/X,映射层M4映射神经元dj范围为:1,...,x×I/X或(x+1)×I/X,...,I;
M1={Ai={ak;k=1,2,...,K};i=1,2,...I/X}
M2={bi;i=x×I/X,...,(x+1)×I/X}
M3={ci;i=x×I/X,...,(x+1)×I/X}
M4={dj;j=1,...,x×I/Xor(x+1)×I/X,...,I}
M1到M2的突触集合为:
F12={Pi′I={fki=(ak,bi,w′ii);k=1,2,...,K};i′,i=x×I/X,...,(x+1)×I/X}
M2到M3的突触集合为:
F23={rii=(bi,ci,w′ii);i′=x×I/X,...,(x+1)×I/X且i′≠i;i=x×I/X,...,(x+1)×I/X}
M3到M2的突触集合为:
F32={Qi={fii′=(ci,bi′w′ii′);i′=x×I/X,...,(x+1)×I/X且i′≠i};i=x×I/X,...,(x+1)×I/X}
M4到M2的突触集合为:
F42={Sj={fji=(dj,bi,w′ji);i=x×I/X,...,(x+1)×I/X};j=1,...,x×I/Xor(x+1)×I/X,...,I}
在局域脉冲神经网络中,所有的神经元状态均为预设默认静息状态,STDP突触F12接收均匀分布随机值作为训练初始权值并在每周期保持更新状态,静态突触F23、F32和F42接收预设默认值作为训练初始权值并在每周期保持固定状态。
步骤104、在初始化完成后,对所有线程内局域脉冲神经网络模型按照预设轮数进行迭代训练,其中,在训练期间不断进行周期同步与脉冲传输。
所有线程T在各自的初始化完成后,需要等待其余线程完成初始化,即初始化的首次同步。随后所有线程T并行执行每个时间周期内各自的神经元以及突触更新过程,该过程类似步骤102中全局脉冲神经网络的神经元周期更新过程。与之有所区别的地方在于。在上述更新过程结束后,各线程将本时间周期内产生的抑制神经元脉冲传输至其余线程,各线程间的脉冲传输依靠线程间通信技术来完成。率先完成脉冲传输的线程需要等待其余线程完成脉冲传输,即每个时间周期的同步。时间周期同步完成后,所有线程进入下个周期开始神经元更新。迭代循环上述过程直至训练轮数到达设定轮数时,并行化训练完成。
该并行训练流程的关键点在于时间周期同步与脉冲传输的方式。周期同步需要设置全局同步标志变量flag,每个周期开始前将同步标志变量flag清零,每个周期结束后各线程都对flag进行原子加法操作,所有线程等待flag数值等于线程总数,此即为各线程同步过程。脉冲传输需要设置全局双缓冲区,一个写缓冲区和一个读缓冲区。每周期开始后,映射层负责接收读缓冲区内上一周期的脉冲数据。每周期结束前各线程将抑制层发放脉冲写入写缓冲区。下一周期时,原写缓冲区将作为读缓冲区以供映射层读取脉冲数据,同时原读缓冲区将转为写缓冲区负责该周期脉冲数据的存储。
步骤105、在训练结束后,保存各个线程的所有STDP突触最终权值,整合生成突触权值矩阵并保存。
初始随机STDP突触权值矩阵训练渐变过程如图3所示。训练完成后,保存各个线程的所有STDP突触最终权值,整合生成权值矩阵并保存,用于后续手写数字识别预测。
本发明中提供的一种手写数字识别模型训练方法,输入MNIST训练数据集和STDP突触初始权值矩阵,建立各神经元模型和各突触模型,使用分布式多线程并行技术,根据计算机资源动态使用多个线程对神经元群体进行预先划分,然后建立线程内局域脉冲神经网络,将每个独立线程内的神经元群体、突触连接关系以及突触权值进行初始化,在初始化完成后,所有线程按照设定轮数迭代进行并行训练,解决了现有的脉冲神经网络采用串行训练方法,不能合理利用计算机资源,训练效率低下,不利于推广的技术问题。
本发明中还提供了一种手写数字识别模型训练***的实施例,包括:
输入模块,用于将MNIST训练数据集和STDP突触初始权值矩阵输入全局脉冲神经网络模型,全局脉冲神经网络模型中包含各神经元模型和各突触模型;
划分模块,用于根据计算机资源动态使用多线程对全局脉冲神经网络模型的神经元群体进行预先划分;
线程模块,用于建立线程内局域脉冲神经网络模型,将每个独立线程内的神经元群体、突触连接关系和突触权值进行初始化;
训练模块,用于在初始化完成后,对所有线程内局域脉冲神经网络模型按照预设轮数进行迭代训练,其中,在训练期间不断进行周期同步与脉冲传输;
整合模块,用于在训练结束后,保存各个线程的所有STDP突触最终权值,整合生成突触权值矩阵并保存。
输入模块具体用于:
将MNIST训练数据集中所有28*28像素的训练图像以784*1的矩阵进行转换,以均匀分布的随机数作为STDP突触初始权值矩阵的初始值,输入全局脉冲神经网络模型。
全局脉冲神经网络模型包括三层网络结构,分别为输入层N1、兴奋层N2和抑制层N3;
N1={Ai={ak;k=1,2,...,K};i=1,2,...I}
N2={bi;i=1,2,...,I}
N3={ci;i=1,2,...,I}
N1到N2的突触集合为:
E12={Hi′I={eki=(ak,bi,wki);k=1,2,...,K};i′,i=1,2,...,I}
N2到N3的突触集合为:
E23={gii=(bi,ci,wii);i=1,2,...,I}
N3到N2的突触集合为:
E32={Li={eii′=(ci,bi′,wii′);i′=1,2,...,I且i′≠i};i=1,2,...,I}
其中,K为输入图像的像素个数,I为兴奋层神经元个数,且输入神经元团个数、兴奋层神经元个数和抑制层神经元个数相等,均为I;Ai为输入神经元团,对应一幅输入的手写数字灰度图像;ak为输入神经元,对应于一幅输入的手写数字灰度图像的一个像素;bi为兴奋神经元;ci为抑制神经元;Hi′i为输入神经元团Ai′到兴奋神经元bi的突触集合,eki为第i′个输入神经元团中的第k个突触,wki为eki的权值;gii为兴奋神经元bi到抑制神经元ci有向边,wii为gii连接权值;Li为抑制层神经元ci到兴奋层的突触集合,eii′为抑制神经元ci到兴奋神经元bi′的突触,wii′为eii′的权值。
划分模块具体用于:
根据计算机的CPU个数创建多个线程,每个线程独立占用一个CPU,其中,创建的线程个数不超过计算机的CPU个数;
在每个线程中,输入神经元连接到兴奋神经元的STDP突触数量为K×(I/X)个,兴奋神经元连接到抑制神经元的静态突触数量为I/X个,抑制神经元连接到兴奋神经元的静态突触数量为((400/X)-1)×(400/X)个,匹配神经元连接到兴奋神经元的静态突触数量为(I/X-1)×(1-I/X)个,其中,X为CPU个数。
每个线程内局域脉冲神经网络模型包括四层网络结构,分别为:输入层M1、兴奋层M2、抑制层M3和映射层M4;
输入层M1输入神经元ak范围为:k=1,2,...,K,兴奋层M2兴奋神经元bi范围为:x×I/X,...,(x+1)×I/X,抑制层M3抑制神经元ci范围为:x×I/X,...,(x+1)×I/X,映射层M4映射神经元dj范围为:1,...,x×I/X或(x+1)×I/X,...,I;
M1={Ai={ak;k=1,2,...,K};i=1,2,...I/X}
M2={bi;i=x×I/X,...,(x+1)×I/X}
M3={ci;i=x×I/X,...,(x+1)×I/X}
M4={dj;j=1,...,x×I/Xor(x+1)×I/X,...,I}
M1到M2的突触集合为:
F12={Pi′I={fki=(ak,bi,w′ii);k=1,2,...,K};i′,i=x×I/X,...,(x+1)×I/X}
M2到M3的突触集合为:
F23={rii=(bi,ci,w′ii);i′=x×I/X,...,(x+1)×I/X且i′≠i;i=x×I/X,...,(x+1)×I/X}
M3到M2的突触集合为:
F32={Qi={fii′=(ci,bi'w′ii′);i′=x×I/X,...,(x+1)×I/X且i′≠i};i=x×I/X,...,(x+1)×I/X}
M4到M2的突触集合为:
F42={Sj={fji=(dj,bi,w′ji);i=x×I/X,...,(x+1)×I/X};j=1,...,x×I/Xor(x+1)×I/X,...,I}
在局域脉冲神经网络中,所有的神经元状态均为预设默认静息状态,STDP突触F12接收均匀分布随机值作为训练初始权值并在每周期保持更新状态,静态突触F23、F32和F42接收预设默认值作为训练初始权值并在每周期保持固定状态。
本发明中提供的一种手写数字识别模型训练***,输入MNIST训练数据集和STDP突触初始权值矩阵,建立各神经元模型和各突触模型,使用分布式多线程并行技术,根据计算机资源动态使用多个线程对神经元群体进行预先划分,然后建立线程内局域脉冲神经网络,将每个独立线程内的神经元群体、突触连接关系以及突触权值进行初始化,在初始化完成后,所有线程按照设定轮数迭代进行并行训练,解决了现有的脉冲神经网络采用串行训练方法,不能合理利用计算机资源,训练效率低下,不利于推广的技术问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种手写数字识别模型训练方法,其特征在于,包括:
将MNIST训练数据集和STDP突触初始权值矩阵输入全局脉冲神经网络模型,全局脉冲神经网络模型中包含各神经元模型和各突触模型;
根据计算机资源动态使用多线程对全局脉冲神经网络模型的神经元群体进行预先划分;
建立线程内局域脉冲神经网络模型,将每个独立线程内的神经元群体、突触连接关系和突触权值进行初始化;
在初始化完成后,对所有线程内局域脉冲神经网络模型按照预设轮数进行迭代训练,其中,在训练期间不断进行周期同步与脉冲传输;
在训练结束后,保存各个线程的所有STDP突触最终权值,整合生成突触权值矩阵并保存;
根据计算机资源动态使用多线程对全局脉冲神经网络模型的神经元群体进行预先划分,包括:
根据计算机的CPU个数创建多个线程,每个线程独立占用一个CPU,其中,创建的线程个数不超过计算机的CPU个数;
在每个线程中,输入神经元连接到兴奋神经元的STDP突触数量为K×(I/X)个,兴奋神经元连接到抑制神经元的静态突触数量为I/X个,抑制神经元连接到兴奋神经元的静态突触数量为((400/x)-1)×(400/X)个,匹配神经元连接到兴奋神经元的静态突触数量为(I/X-1)×(1-I/X)个,其中,X为CPU个数;
每个线程内局域脉冲神经网络模型包括四层网络结构,分别为:输入层M1、兴奋层M2、抑制层M3和映射层M4;
输入层M1输入神经元ak范围为:k=1,2,...,K,兴奋层M2兴奋神经元bi范围为:x×I/X,...,(x+1)×I/X,抑制层M3抑制神经元ci范围为:x×I/X,...,(x+1)×I/X,映射层M4映射神经元dj范围为:1,...,x×I/X或(x+1)×I/X,...,I;
M1={Ai={ak;k=1,2,...,K};i=1,2,...I/X}
M2={bi;i=x×I/X,...,(x+1)×I/X}
M3={ci;i=x×I/X,...,(x+1)×I/X}
M4={dj;j=1,...,x×I/Xor(x+1)×I/X,...,I}
M1到M2的突触集合为:
F12={Pi′I={fki=(ak,bi,w′ii);k=1,2,...,K};i′,i=x×I/X,...,(x+1)×I/X}
M2到M3的突触集合为:
F23={rii=(bi,ci,w′ii);i′=x×I/X,...,(x+1)×I/X且i′≠i;i=x×I/X,...,(x+1)×I/X}
M3到M2的突触集合为:
F32={Qi={fii′=(ci,bi′w′ii′);i′=x×I/X,...,(x+1)×I/X且i′≠i};i=x×I/X,...,(x+1)×I/X}
M4到M2的突触集合为:
F42={Sj={fji=(dj,bi,w′ji);i=x×I/X,...,(x+1)×I/X};j=1,...,x×I/Xor(x+1)×I/X,...,I}
在局域脉冲神经网络中,所有的神经元状态均为预设默认静息状态,STDP突触F12接收均匀分布随机值作为训练初始权值并在每周期保持更新状态,静态突触F23、F32和F42接收预设默认值作为训练初始权值并在每周期保持固定状态。
2.根据权利要求1所述的手写数字识别模型训练方法,其特征在于,将MNIST训练数据集和STDP突触初始权值矩阵输入全局脉冲神经网络模型,包括:
将MNIST训练数据集中所有28*28像素的训练图像以784*1的矩阵进行转换,以均匀分布的随机数作为STDP突触初始权值矩阵的初始值,输入全局脉冲神经网络模型。
3.根据权利要求1所述的手写数字识别模型训练方法,其特征在于,全局脉冲神经网络模型包括三层网络结构,分别为输入层N1、兴奋层N2和抑制层N3;
N1={Ai={ak;k=1,2,...,K};i=1,2,...I}
N2={bi;i=1,2,...,I}
N3={ci;i=1,2,...,I}
N1到N2的突触集合为:
E12={Hi′I={eki=(ak,bi,wki);k=1,2,...,K};i′,i=1,2,...,I}
N2到N3的突触集合为:
E23={gii=(bi,ci,wii);i=1,2,...,I}
N3到N2的突触集合为:
E32={Li={eii′=(ci,bi′,wii′);i′=1,2,...,I且i′≠i};i=1,2,...,I}
其中,K为输入图像的像素个数,I为兴奋层神经元个数,且输入神经元团个数、兴奋层神经元个数和抑制层神经元个数相等,均为I;Ai为输入神经元团,对应一幅输入的手写数字灰度图像;ak为输入神经元,对应于一幅输入的手写数字灰度图像的一个像素;bi为兴奋神经元;ci为抑制神经元;Hi′i为输入神经元团Ai′到兴奋神经元bi的突触集合,eki为第i′个输入神经元团中的第k个突触,wki为eki的权值;gii为兴奋神经元bi到抑制神经元ci有向边,wii为gii连接权值;Li为抑制层神经元ci到兴奋层的突触集合,eii′为抑制神经元ci到兴奋神经元bi′的突触,wii′为eii′的权值。
4.一种手写数字识别模型训练***,其特征在于,包括:
输入模块,用于将MNIST训练数据集和STDP突触初始权值矩阵输入全局脉冲神经网络模型,全局脉冲神经网络模型中包含各神经元模型和各突触模型;
划分模块,用于根据计算机资源动态使用多线程对全局脉冲神经网络模型的神经元群体进行预先划分;
线程模块,用于建立线程内局域脉冲神经网络模型,将每个独立线程内的神经元群体、突触连接关系和突触权值进行初始化;
训练模块,用于在初始化完成后,对所有线程内局域脉冲神经网络模型按照预设轮数进行迭代训练,其中,在训练期间不断进行周期同步与脉冲传输;
整合模块,用于在训练结束后,保存各个线程的所有STDP突触最终权值,整合生成突触权值矩阵并保存;
划分模块具体用于:
根据计算机的CPU个数创建多个线程,每个线程独立占用一个CPU,其中,创建的线程个数不超过计算机的CPU个数;
在每个线程中,输入神经元连接到兴奋神经元的STDP突触数量为K×(I/X)个,兴奋神经元连接到抑制神经元的静态突触数量为I/X个,抑制神经元连接到兴奋神经元的静态突触数量为((400/X)-1)×(400/X)个,匹配神经元连接到兴奋神经元的静态突触数量为(I/X-1)×(1-I/X)个,其中,X为CPU个数;
每个线程内局域脉冲神经网络模型包括四层网络结构,分别为:输入层M1、兴奋层M2、抑制层M3和映射层M4;
输入层M1输入神经元ak范围为:k=1,2,...,K,兴奋层M2兴奋神经元bi范围为:x×I/X,...,(x+1)×I/x,抑制层M3抑制神经元ci范围为:x×I/X,...,(x+1)×I/X,映射层M4映射神经元dj范围为:1,...,x×I/X或(x+1)×I/X,...,I;
M1={Ai={ak;k=1,2,...,K};i=1,2,...I/X}
M2={bi;i=x×I/X,...,(x+1)×I/X}
M3={ci;i=x×I/X,...,(x+1)×I/X}
M4={dj;j=1,...,x×I/Xor(x+1)×I/X,...,I}
M1到M2的突触集合为:
F12={Pi′I={fki=(ak,bi,w′ii);k=1,2,...,K};i′,i=x×I/X,...,(x+1)×I/X}
M2到M3的突触集合为:
F23={rii=(bi,ci,w′ii);i′=x×I/X,...,(x+1)×I/X且i′≠i;i=x×I/X,...,(x+1)×I/X}
M3到M2的突触集合为:
F32={Qi={fii′=(ci,bi′w′ii′);i′=x×I/X,...,(x+1)×I/X且i′≠i};i=x×I/X,...,(x+1)×I/x}
M4到M2的突触集合为:
F42={Sj={fji=(dj,bi,w′ji);i=x×I/X,...,(x+1)×I/X};j=1,...,x×I/Xor(x+1)×I/X,...,I}
在局域脉冲神经网络中,所有的神经元状态均为预设默认静息状态,STDP突触F12接收均匀分布随机值作为训练初始权值并在每周期保持更新状态,静态突触F23、F32和F42接收预设默认值作为训练初始权值并在每周期保持固定状态。
5.根据权利要求4所述的手写数字识别模型训练***,其特征在于,输入模块具体用于:
将MNIST训练数据集中所有28*28像素的训练图像以784*1的矩阵进行转换,以均匀分布的随机数作为STDP突触初始权值矩阵的初始值,输入全局脉冲神经网络模型。
6.根据权利要求4所述的手写数字识别模型训练***,其特征在于,全局脉冲神经网络模型包括三层网络结构,分别为输入层N1、兴奋层N2和抑制层N3;
N1={Ai={ak;k=1,2,...,K};i=1,2,...I}
N2={bi;i=1,2,...,I}
N3={ci;i=1,2,...,I}
N1到N2的突触集合为:
E12={Hi′I={eki=(ak,bi,wki);k=1,2,...,K};i′,i=1,2,...,I}
N2到N3的突触集合为:
E23={gii=(bi,ci,wii);i=1,2,...,I}
N3到N2的突触集合为:
E32={Li={eii′=(ci,bi′,wii′);i′=1,2,...,I且i′≠i};i=1,2,...,I}
其中,K为输入图像的像素个数,I为兴奋层神经元个数,且输入神经元团个数、兴奋层神经元个数和抑制层神经元个数相等,均为I;Ai为输入神经元团,对应一幅输入的手写数字灰度图像;ak为输入神经元,对应于一幅输入的手写数字灰度图像的一个像素;bi为兴奋神经元;ci为抑制神经元;Hi′i为输入神经元团Ai′到兴奋神经元bi的突触集合,eki为第i′个输入神经元团中的第k个突触,wki为eki的权值;gii为兴奋神经元bi到抑制神经元ci有向边,wii为gii连接权值;Li为抑制层神经元ci到兴奋层的突触集合,eii′为抑制神经元ci到兴奋神经元bi′的突触,wii′为eii′的权值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352414.0A CN113033782B (zh) | 2021-03-31 | 2021-03-31 | 一种手写数字识别模型训练方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352414.0A CN113033782B (zh) | 2021-03-31 | 2021-03-31 | 一种手写数字识别模型训练方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113033782A CN113033782A (zh) | 2021-06-25 |
CN113033782B true CN113033782B (zh) | 2023-07-07 |
Family
ID=76453531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110352414.0A Active CN113033782B (zh) | 2021-03-31 | 2021-03-31 | 一种手写数字识别模型训练方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113033782B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114548384A (zh) * | 2022-04-28 | 2022-05-27 | 之江实验室 | 具有抽象资源约束的脉冲神经网络模型构建方法和装置 |
CN117574968A (zh) * | 2023-11-30 | 2024-02-20 | 中国海洋大学 | 基于量子衍生的脉冲卷积神经网络、图像处理方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875846A (zh) * | 2018-05-08 | 2018-11-23 | 河海大学常州校区 | 一种基于改进的脉冲神经网络的手写数字识别方法 |
CN110837776A (zh) * | 2019-10-09 | 2020-02-25 | 广东工业大学 | 一种基于stdp的脉冲神经网络手写汉字识别方法 |
CN112163672A (zh) * | 2020-09-08 | 2021-01-01 | 杭州电子科技大学 | 基于wta学习机制的交叉阵列脉冲神经网络硬件*** |
-
2021
- 2021-03-31 CN CN202110352414.0A patent/CN113033782B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875846A (zh) * | 2018-05-08 | 2018-11-23 | 河海大学常州校区 | 一种基于改进的脉冲神经网络的手写数字识别方法 |
CN110837776A (zh) * | 2019-10-09 | 2020-02-25 | 广东工业大学 | 一种基于stdp的脉冲神经网络手写汉字识别方法 |
CN112163672A (zh) * | 2020-09-08 | 2021-01-01 | 杭州电子科技大学 | 基于wta学习机制的交叉阵列脉冲神经网络硬件*** |
Also Published As
Publication number | Publication date |
---|---|
CN113033782A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cai et al. | Efficient architecture search by network transformation | |
US11837324B2 (en) | Deep learning-based aberrant splicing detection | |
Baldominos et al. | Evolutionary convolutional neural networks: An application to handwriting recognition | |
Panda et al. | Unsupervised regenerative learning of hierarchical features in spiking deep networks for object recognition | |
Yao et al. | Federated learning with additional mechanisms on clients to reduce communication costs | |
CN113033782B (zh) | 一种手写数字识别模型训练方法和*** | |
JP2022509754A (ja) | 改良されたスパイキングニューラルネットワーク | |
CN109948029A (zh) | 基于神经网络自适应的深度哈希图像搜索方法 | |
CN114049513A (zh) | 一种基于多学生讨论的知识蒸馏方法和*** | |
CN112906828A (zh) | 一种基于时域编码和脉冲神经网络的图像分类方法 | |
JP2018085063A (ja) | 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法 | |
CN112288080A (zh) | 面向脉冲神经网络的自适应模型转化方法及*** | |
Dong et al. | A cell-based fast memetic algorithm for automated convolutional neural architecture design | |
CN111753995A (zh) | 一种基于梯度提升树的局部可解释方法 | |
Lopes et al. | Deep belief networks (DBNs) | |
WO2023052547A1 (en) | Processing data batches in a multi layer network | |
CN116339942A (zh) | 一种基于强化学习的分布式训练任务的自适应调度方法 | |
Jing et al. | NASABN: A neural architecture search framework for attention-based networks | |
CN115081516A (zh) | 一种基于生物连接组时变卷积网络的物联网流量预测方法 | |
Liu et al. | Brain-inspired hierarchical spiking neural network using unsupervised STDP rule for image classification | |
Al Afandy et al. | Deep learning | |
Evanusa et al. | Deep reservoir networks with learned hidden reservoir weights using direct feedback alignment | |
Jia et al. | Studying on improved spiking neural network in handwritten digital recognition | |
CN115063597B (zh) | 一种基于类脑学习的图像识别方法 | |
AU2022287647B2 (en) | An improved spiking neural network |
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 |