一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于特征选择的忆阻器遗传算法的加速器及其操作方法与流程

2023-02-01 22:01:13 来源:中国专利 TAG:


1.本发明属于智能优化技术领域,更具体地,涉及一种用于特征选择的忆阻器遗传算法的加速器及其操作方法。


背景技术:

2.随着大数据和人工智能的兴起,数据特征的维度也在日渐增加,使得数据快速分类和提取变得越来越困难。在此背景下,数据特征的选择引起了越来越多的关注,特征选择是机器学习中的一项关键的任务,目的在于保持学习性能的同时,降低特征的维数。一些过滤式的求解方法,如皮尔森相关系数、卡方验证等方法,虽然能够快速选择特征,但是对选择特征的质量没有保证;而一些包装式的求解方法,如前向搜索、元启发式算法等,能够保证所选特征的质量,但是需要循环迭代,耗费大量时间。
3.遗传算法是元启发式算法之一,因其具有大规模寻找解的能力,被广泛的用于解决特征选择问题。但是,随着特征维度的增加,基于冯
·
诺依曼架构实现的遗传算法,大量的时间和功耗花费在存储器和处理器的传输中。
4.因此需要一种新型的计算范式来解决这个问题。


技术实现要素:

5.针对现有技术的缺陷,本发明提供了一种用于特征选择的忆阻器遗传算法的加速器及其操作方法,其目的在于解决现有遗传算法求解特征选择问题中运算时间长以及功耗大的问题。
6.本发明提供了一种用于特征选择的忆阻器遗传算法的加速器,包括:第一控制模块、忆阻器阵列模块、第二控制模块和处理器模块;第一控制模块与忆阻器阵列模块相连,忆阻器阵列模块与第二控制模块双向连接,第二控制模块与处理器模块双向连接,处理器模块与第一控制模块相连;第一控制模块用于接收处理器模块发送的数据,且将其转换为模拟量后输入至忆阻器阵列模块中,并在解更新阶段更新忆阻器阵列模块存储单元的状态;忆阻器阵列模块用于存储特征子集,并根据基尔霍夫定律ij=∑g
ijvi
,实现向量矩阵乘法的模拟运算,并在第一控制单元和第二控制单元的协同操作下,实现忆阻器单元在阵列中的原位更新;第二控制模块用于接收忆阻器阵列模块计算得到的电流信号,并将电流信号转换为电压信号,再将所述电压信号转换为数字信号后传输至处理器模块中;处理器模块用于在适应度计算阶段发送预处理后的数据到第一控制模块,接收并处理所述第二控制模块输出的数字信号;其中,ij为忆阻器阵列中第j列的电流,g
ij
为忆阻器阵列中每个忆阻器单元的电导,vi为忆阻器阵列中第i行施加的电压。
7.更进一步地,第一控制模块包括数据输入单元和行控制单元;所述数据输入单元包括n个数模转换器,用于将处理器模块发送的数据转换为模拟量并输出到所述行控制单元中;行控制单元用于在适应度计算阶段选择v
data
作为输入到忆阻器阵列模块行线上的数据,并在解更新阶段根据当前进行的操作选择连接对应的模拟信号。
8.更进一步地,行控制单元包括第一模拟多路选择器,所述模拟多路选择器的六个输入端依次连接s1[2:0]信号、v
data
信号、v
set
信号、v
reset
信号、v
read
信号和v
p
信号,所述模拟多路选择器的输出端与所述忆阻器阵列模块的输入端连接;其中,v
data
是所述数据输入单元转化后的模拟电压,s1[2:0]是来自所述处理器模块的选择信号,v
set
和v
reset
分别是忆阻器件的set电压和reset电压,v
read
是器件的读电压,v
p
是保护电压。
[0009]
更进一步地,忆阻器阵列模块包括第一忆阻阵列和第二忆阻阵列;第一忆阻阵列用于存储算法中的特征子集,并在阵列内部进行向量矩阵乘法的计算,在解更新阶段通过阵列中实现的交叉操作,在第二忆阻阵列中产生新的特征子集;所述第二忆阻阵列用于存储算法中的特征子集,并在阵列内部进行向量矩阵乘法的计算,在解更新阶段通过阵列中实现的交叉操作,在第二忆阻阵列中产生新的特征子集。
[0010]
更进一步地,第二控制模块包括列控制单元和输出采集单元;所述列控制单元用于在适应度计算阶段将一列得到的电流数据转换为电压数据,并通过所述输出采集单元将数字信号传输到处理器模块中,并在解更新阶段,根据所进行的操作选择相应的端口信号输出。
[0011]
更进一步地,列控制单元包括2m个第二模拟多路选择器,每个模拟多路选择器的结构相同,均包括5个输入端口,依次连接选择信号s2[1:0]、有跨阻放大器tia、保护电压v
p
、操作电压vdd和地线gnd;所述输出采集单元包括2m个模数转换电路,用于将模拟量转化成数字量并传输至所述处理器模块中。
[0012]
更进一步地,有跨阻放大器tia包括电阻r1和放大器;所述放大器的反向输入端作为所述有跨阻放大器的输入端,所述放大器的正向输入端接地,所述放大器的输出端作为所述有跨阻放大器的输出端;所述电阻r1连接在所述放大器的反向输入端与输出端之间。
[0013]
本发明还提供了一种基于上述的加速器的操作方法,包括下述步骤:
[0014]
s1进行数据集的预处理:
[0015]
通过贝叶斯分类器计算方法在处理器模块中得到各个特征和各个分类类别的统计概率,并进行拉普拉斯平滑,将得到的数据进行取对数操作,并进行归一化后发送至数据输入单元;
[0016]
s2参数初始化:
[0017]
给定种群规模np、交叉率、变异率、锦标赛选择的数量和最大迭代次数,并通过生成随机的初始解集获得种群;
[0018]
将生成的初始种群映射并存储到第一忆阻阵列中,并设置第二忆阻阵列中的忆阻单元为高阻态;
[0019]
s3通过适应度函数计算来评价种群的好坏;
[0020]
s4种群更新步骤:
[0021]
通过行控制单元和列控制单元来更新存储在忆阻器阵列上的种群实现交叉操作和变异操作;
[0022]
s5重复步骤s3和步骤s4直到完成设置的迭代次数;
[0023]
s6当迭代完成后读取忆阻器阵列模块,并采用阵列中选择的特征额外进行一次适应度函数的计算,该函数由分类的准确度和所选择特征的长度决定,即fitness=(1-α)
×
acc α
×
(1-l),其中α∈(0,1),acc为分类的准确度,l为所选特征长度占总特征长度的比
例,选择适应度值最大的特征子集作为最终选择的结果。
[0024]
更进一步地,步骤s3具体为:处理器模块将归一化后的数据传输到数据输入单元,经过数模转换器转换为电压数据后施加到忆阻器阵列模块的行输入端口,根据欧姆定律和基尔霍夫定律,在列上得到输入电压与对应忆阻器单元电导的累加电流结果,经过跨阻放大器将电流信号转换为电压信号,在通过模数转换器转换为数字信号后,传输到输出采集单元,最终在处理器模块中计算适应度函数。
[0025]
更进一步地,步骤s4具体为:
[0026]
根据适应度计算的结果,将原种群中优秀的个体交叉配对后,产生新个体从而实现交叉操作;
[0027]
随机更新种群中的部分位置使其产生变化从而实现变异操作。
[0028]
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0029]
(1)本发明提供的一种用于特征选择的忆阻器遗传算法的加速器,利用忆阻阵列结构,将选择的特征映射并存储到阵列中,通过模拟计算的方式,在硬件上一步实现向量矩阵乘法运算,减少了数据传输的过程,降低了电路开销,有效的减少了运算时间和功耗。
[0030]
(2)本发明提供的一种忆阻器遗传算法的操作方法,将忆阻器逻辑实现方法和遗传算法的交叉操作结合,通过外围电路的控制,直接在忆阻阵列上交叉解集,减少了数据从阵列中先读出、再进行更新的步骤,减少了迭代更新解集时消耗的时间和能量。
[0031]
(3)本发明提供的一种忆阻器遗传算法的操作方法,为了更好地适应忆阻阵列的操作,提出了两步变异操作的遗传算法,在保持算法的性能的同时,降低了在忆阻器阵列上进行变异操作的复杂度。
[0032]
(4)本发明提供的基于忆阻器件的遗传算法加速器,能够实现存算一体架构,相较于cmos电路结构,具有更高的集成密度、更低的功耗和更快的运算速度,能够进一步发挥遗传算法大规模求解的优势,适用于处理特征维度较高的领域,如金融、生物医学、电子信息等。
附图说明
[0033]
图1是本发明提供的用于特征选择的忆阻器遗传算法的加速器结构示意图;
[0034]
图2是本发明提供的行控制单元的结构示意图;
[0035]
图3是本发明提供的忆阻器阵列的结构示意图;
[0036]
图4是本发明提供的忆阻器阵列运算方式示意图;
[0037]
图5是本发明提供的列控制单元的结构示意图;其中,(a)为列控制单元的模拟多路选择器结构示意图;(b)为跨阻放大器的结构示意图;
[0038]
图6是本发明提供的忆阻遗传算法求解流程示意图;
[0039]
图7是本发明提供的在忆阻器阵列中交叉操作的示意图;其中,(a)为忆阻器逻辑操作中的复制操作;(b)为忆阻器阵列中交叉操作的实现方式;
[0040]
图8是本发明提供的在忆阻器阵列中变异操作的示意图。
具体实施方式
[0041]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0042]
本发明中,以忆阻器为代表的新型存储器件具有高集成度,低功耗,能快速进行乘法累加操作等优点,被认为是解决冯
·
诺依曼架构中存储墙问题的有效手段之一。通过在忆阻器阵列上实现遗传算法,可以实现更加高效的特征选择任务。
[0043]
图1为本发明使用的忆阻器遗传算法的加速器结构示意图,包括第一控制模块1、忆阻器阵列模块2、第二控制模块3和处理器模块4;其中,第一控制模块1与忆阻器阵列模块2相连,忆阻器阵列模块2与第二控制模块3双向连接,第二控制模块3与处理器模块4双向连接,处理器模块4与第一控制模块相连。
[0044]
其中,第一控制模块1包括数据输入单元11和行控制单元12,其中,数据输入单元11由n个数字-模拟转化器(dac)构成,用于接收处理器模块4发送的数据,将其转换为模拟量,输入到行控制单元12中。行控制单元12根据计算过程,在处理器模块4的控制下,通过第一模拟多路选择器(mux)选择相应的信号施加到忆阻器阵列模块2的行线上,其具体结构如图2所示,s1[2:0]是来自处理器模块4的选择信号,v
data
是数据输入单元11转化后的模拟电压,v
set
和v
reset
分别是忆阻器件的set电压和reset电压,v
read
是器件的读电压,v
p
是保护电压,一般为1/2v
set
。在适应度计算阶段,行控制单元12选择v
data
作为输入到忆阻器阵列模块2行线上的数据,在解更新阶段,行控制单元12根据当前进行的操作,选择连接对应的模拟信号,具体操作在后文进行描述。
[0045]
如图3所示,忆阻器阵列模块2包括第一忆阻阵列21和第二忆阻阵列22,第一忆阻阵列21与第二忆阻阵列22的各行相连。
[0046]
忆阻器阵列模块2由交叉连接的忆阻单元组成,该阵列为n
×
2m规格,用于存储计算过程中的特征子集,在适应度计算阶段,进行输入数据和阵列权重的点乘运算,所得结果通过电流的形式按列进行累加后,输出到第二控制模块3中,其具体运算方式如图4所示,行控制单元12将电压v
data
施加到忆阻器阵列模块2的行线上,列线接地,根据基尔霍夫定律和欧姆定律ij=∑g
ijvi
,在每列上得到电压与电导相乘后的累加电流;在解更新阶段,通过第一控制模块1和第二控制模块3调整忆阻器中存储的数据,每列的晶体管只在调控时开启,其他情况下保持关闭。
[0047]
第二控制模块3包括列控制单元31和输出采集单元32,其中列控制单元31由2m个第二模拟多路选择器(mux)组成,每个mux的结构如图5中(a)所示,处理器模块4的选择信号s2[1:0]控制该列连接的端口,有跨阻放大器(tia)、保护电压v
p
、操作电压vdd和地线gnd。tia用于进行电流电压的转化,具体结构如图5中(b)所示,其中r1的值一般为忆阻器件低阻态的值,在本实例中设置为1kω;v
p
作为保护电压,选择不会对器件产生较大影响的电压值,根据器件的不同而改变,一般选择1/2v
set
;vdd为更新操作所需的电压值,v
set
《vdd《2
×
|v
reset
|。输出采集单元32由2m个模数转换电路(adc)构成,用于将模拟量转化成数字量,并传输到处理器模块4中。在适应度计算阶段,列控制单元31连接跨阻放大器(tia),将一列得到的电流数据转换为电压数据,并通过输出采集单元32中的adc,将数字信号传输到处理器模
块4中。在解更新阶段,根据所进行的操作,处理器模块4选择mux相应的端口信号,具体操作在后文进行描述。
[0048]
处理器模块4用于数据的处理,协调算法的进程,并发送用于更新忆阻器阵列模块2的选择信号到行控制单元12和列控制单元31。在适应度计算阶段,发送预处理后的数据到数据输入单元11,接收并处理第二控制模块3的输出信号,通过操作第一控制模块1和第二控制模块3,实现对忆阻器阵列模块2的调控。
[0049]
本实施例中,对于待特征选择的问题,一般是数据分类问题,即把一组数据按照某种条件进行分类。存在数据集s={x1,x2,

,x
t
},每个成员xi存在r个特征,即xi={a
i1
,a
i2
,

,a
ir
},分类的类别集合y={y1,y2,

,y
p
}。使用贝叶斯算法作为分类器,在已知p(x|y)的情况下,求p(y|x)的概率,根据贝叶斯公式其中p(x|y)是在分类类别y下各个特征出现的概率,即p(ai|yj),1≤i≤r,1≤j≤p,对于离散的特征,通过多项式分布来统计特征出现的概率,对于连续的特征或近似连续的特征,使用高斯分布来统计特征出现的概率;p(y|x)则是在已知成员特征的情况下,判断该成员所属类别y的概率,即p(y1,y2,

,y
p
|x),通常我们认为概率最大的p(yj|x)为该成员所属的类别;p(y)是各个分类类别出现的概率;p(x)是各个特征出现的概率。
[0050]
在假设各个特征是条件独立的情况下,在假设各个特征是条件独立的情况下,接着对等式两端进行取对数操作,得到接着对等式两端进行取对数操作,得到由于只需要判断不同log(p(yj|x))的大小,而对于同一成员log(p(x))保持不变,所以在计算时可以省略log(p(x))。
[0051]
如图2所示,本发明实施例采用的是n
×
2m大小的忆阻器阵列,第一忆阻器阵列21和第二忆阻器阵列22以中心线为基准平移对称,均由n行m列的忆阻器构成。忆阻阵列中,通过高低阻态存储一个特征的选择与否,高阻态对应为0,即不选择,低阻态对应为1,即选择;每列忆阻器单元存储一种特征选择的方式,与分类项x中的a
ij
一一对应,此外,还需要设置最后对应分类类别y的忆阻器单元为1,用于分类的计算。
[0052]
图6为本发明采用遗传算法进行特征选择的方法流程图,包括以下步骤:
[0053]
s1进行数据集的预处理,通过上文所述的贝叶斯分类器计算方法,在处理器模块4中得到各个特征和各个分类类别的统计概率,并进行拉普拉斯平滑,将得到的数据进行取对数操作,并进行归一化,发送到数据输入单元11;
[0054]
s2参数初始化,由于不同问题需要的算法参数不同,所以在这里给出本实施例的算法参数,种群规模np=200,交叉率pc=0.8,变异率pm=0.02,锦标赛选择的数量nt=10,最大迭代次数g=100。首先生成随机的初始解集,该解集在遗传算法中称为种群。将生成的初始种群映射并存储到第一忆阻阵列21中,设置第二忆阻阵列22中的忆阻单元为高阻态;
[0055]
s3进行适应度函数计算,评价种群的好坏。处理器模块4将归一化后的数据传输到数据输入单元11,经过数模转换器转换为电压数据后,施加到忆阻器阵列模块2的行输入端口,根据欧姆定律和基尔霍夫定律,在列上得到输入电压与对应忆阻器单元电导的累加电
流结果,经过跨阻放大器将电流信号转换为电压信号,在通过模数转换器转换为数字信号后,传输到输出采集单元32,最终在处理器模块4中计算适应度函数。适应度函数的值由两部分构成,分类的准确度和特征的数量,准确度越高并且特征数量越少,说明特征选择的效果越好,即fitness=(1-α)
×
acc α
×
(1-l),其中α∈(0,1),acc为分类的准确度,l为所选特征长度占总特征长度的比例,根据适应度值来进行后续解的更新操作;
[0056]
s4种群更新分为两个步骤,交叉操作和变异操作。交叉操作是根据适应度计算的结果,将原种群中优秀的个体交叉配对后,产生新个体;变异操作是随机更新种群中的部分位置,使其产生变化。两种操作均是通过行控制单元12和列控制单元31,来更新存储在忆阻器阵列上的种群;
[0057]
具体的,图7为本发明所使用忆阻器阵列中实现交叉操作的示意图,(a)图为忆阻器逻辑操作中的复制操作,即将一个单元的电阻状态复制到另一个单元中,当存在一个低阻器件和一个高阻器件时,从低阻器件的一端施加电压vdd,高阻器件的一端接地,此时电压全部分到高阻器件的两端,达到该器件的set电压,高阻器件被set为低阻态,从而实现低电阻状态的复制;当存在两个高阻器件时,从器件的一端施加电压vdd,另一个器件的一端接地,此时电压分部在两个高阻器件上,另一个高阻器件仍保持高阻,从而实现高电阻状态的复制。(b)图为忆阻器阵列模块中种群交叉操作的实现方式,ci和cj为第一忆阻阵列21中的两列,c
m1
为第二忆阻阵列22中的一列;第一次种群更新中,从原有的种群中挑选出两列,如ci和cj,将这两列中部分位置交叉,产生一个新的个体,如c
m1
,放入新种群中。通过在一列上施加vdd,新个体所在列接地的方式,实现对一列的状态进行复制,对于一列上不希望进行复制的位置,可以在对应的行输入端施加保护电压v
p
。多次重复上述操作,在第二忆阻阵列22中产生新种群,并将第一忆阻阵列21的状态全部reset为高阻态,后续更新种群时,采取相同的操作方式。
[0058]
图8为本发明所使用在忆阻器阵列中实现变异操作的示意图,为了适应忆阻器阵列的操作,随机挑选位置进行set和reset,该方式可以不用考虑器件原本的状态,进一步减少器件的操作步骤。一列中需要set和reset的单元可以同时进行,在对应行输入端施加v
set
和v
reset
,其他行输入端接保护电压v
p
,列输出端接地。
[0059]
s5判断迭代次数,重复s3和s4两部分,直到完成设置的迭代次数,根据求解问题的不同,迭代次数也会相应的改变,过少的迭代可能会的带较差质量的解,而迭代次数过多会使计算时间过长,一般来说设置在50~800次,本实例中设置为100次。
[0060]
s6迭代完成后,读取忆阻器阵列模块,用阵列中选择的特征,额外进行一次适应度函数的计算,选择适应度值最大的特征子集作为最终结果。
[0061]
通过本发明所提供的以上方案,与现有技术相比,创新的采用忆阻器阵列作为问题的计算核心,大幅度降低了在求解特征选择问题时遗传算法中适应度计算所消耗的时间。进一步地,通过外围电路实现了在忆阻器阵列中进行在线更新的方式,减少了数据的传输过程,优化了算法与硬件之间的结合。
[0062]
本发明提供了一种用于特征选择的忆阻遗传算法加速器及其操作方法,将遗传算法中的种群,映射并存储到忆阻器阵列上,实现高并行计算、低功耗、高速度的求解特征选择问题。同时,采用忆阻器逻辑操作的方法,实现在忆阻器阵列上进行种群的原位更新,降低了更新种群的时间和功耗。本发明从解集的评价到解集的更新,在忆阻器阵列上系统的
实现了遗传算法的计算过程,显著的提高了计算的速度和能效,为进一步利用忆阻器阵列进行存内计算提供了一种新的方式,可用于边缘计算和低功耗计算场景中。
[0063]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献