基于忆阻随机计算轻量化卷积神经网络的气体识别方法
未命名
08-15
阅读:171
评论:0
1.本发明涉及气体分类技术领域,特别是涉及一种基于忆阻随机计算轻量化卷积神经网络的气体识别方法。
背景技术:
2.生活中各种场景下我们都可能暴露在危险的有毒气体之中,会因为长期接触气体存在安全隐患,也会因为气体爆炸造成伤亡。因此,气体的实时监测和识别至关重要,可以避免不必要的危害和损失。传统的气体识别方法虽然可以解决气体识别中的非线性问题,但是全连接导致更多的权重参数,使得网络浮点运算多,推演慢,且硬件部署更困难。chen等人使用了一种混合卷积神经网络完成对六种气体的分类,通过共享权重参数来降低参数量,起到了不错的效果,但文章所提忆阻器设备之间波动导致部署有一定的困难。
3.另一方面,在传感器的使用过程中,通常会受到环境及设备的影响导致传感器采集的数据有漂移现象,现有的解决漂移的方法主要集中于软件层面,很少在硬件层面研究。
4.现有技术缺点:忆阻器设备之间波动导致部署有一定的困难,现有的解决漂移的方法很少在硬件层面研究,并且现有的用于气体识别的装置体积较大,运算速度较慢。
技术实现要素:
5.本发明的主要目的是,提供一种基于忆阻随机计算轻量化卷积神经网络的气体识别方法,能够加快网络计算速度和抵抗数据漂移,能更好的实现硬件部署。
6.为实现上述目的,本发明所述的基于忆阻随机计算轻量化卷积神经网络的气体识别方法,其关键是,包括以下步骤:
7.第1步:用于使用按tgs2602;tgs2602;tgs2600;tgs2600;tgs2610;tgs2610;tgs2620;tgs2620;tgs2602;togs2602;tgs2600;tgs2600;tgs2610;tgs2610;tgs2620;tgs2620一次排列的16个气体传感器采集16个气体特征数据的步骤;
8.第2步:用于将所述16个气体特征数据维度变为4
×
4的气体特征矩阵,然后进行一圈零填充,变为6
×
6的矩阵,并通过忆阻阵列得到36个比特流的步骤;
9.第3步:用于将3
×
3的卷积核通过忆阻阵列生成比特流,得到9个比特流的步骤;
10.第4步:用于使用所述9个比特流对所述36个比特流进行卷积,得到4
×
4的矩阵,即16个比特流的步骤;
11.第5步:用于将第4步得到的4
×
4的矩阵和第2步中的4
×
4的气体特征矩阵变维为2
×4×
4的立体矩阵,得到32个比特流的步骤;
12.第6步:用于将所述32个比特流通过最大值电路进行3
×
3的池化核池化,得到8个比特流的步骤;
13.第7步:用于将8
×
6的全连接层矩阵通过忆阻阵列生成比特流,得到48个比特流的步骤;
14.第8步:用于将所述48个比特流和所述8个比特流进行全连接操作,得到6个比特流
的步骤;
15.第9步:用于将所述6个比特流进行转化为二进制,然后进行比较实现分类的步骤。
16.进一步描述,在所述第6步中,通过最大值电路进行3
×
3的池化核池化,在保留足够特征的同时减少参数,使模型更小,运算更快;在所述第8步中,每个比特流用来定义表示一种气体分类结果,6个比特流即有六种气体分类结果。
17.通过上述设计,在轻量化卷积神经网络中采用忆阻随机计算进行气体识别,不仅提高了气体识别速度,还使得本发明能够更加方便的在更小的设备上进行部署,且具有抵抗数据漂移的能力。
18.作为优选:所述6个比特流用于定义表示6类气体,按排列顺序依次为氨气、乙醛、丙酮、乙烯、乙醇、甲苯;通过比较6个比特流中1的个数来区分气体特征数据具体属于的气体类别,哪个比特流中1的个数最多,即属于哪一类气体。例如:通过对比得到第二个比特流中1的个数最多,即所述气体特征数据属于第二类气体乙醛。
19.作为优选:在第4步和第8步中所涉及的所有乘加操作均采用逻辑门实现,乘法用xnor门,加法用mux门;
20.在xnor门计算中,考虑到具有相同长度的位流a和b所表示的概率为pa和pb,对应位置通过xnor门之后的输出就为pa
×
pb;在mux门中计算两个比特流pa和pb的和,需要一个额外的比特流pc作为辅助进行缩放,因为随机数pa和pb所代表的值都属于[-1,1],直接进行加法得到的结果在区间[-2,2],因此需要重新进行映射回到[-1,1];通常pc=1/2,由sng提供,最终的输出结果为pa
×
pc+(1-pc)pb。
[0021]
进一步描述,乘加操作发生在卷积操作和全连接操作两个操作中,其内部为矩阵乘法,在基于忆阻随机计算的轻量化卷积神经网络中,所有的参数都已经被忆阻阵列转化为比特流表示,故可以用逻辑门实现乘加操作。
[0022]
作为优选:通过忆阻阵列产生比特流的过程包括以下步骤:
[0023]
a1:用于在忆阻阵列中输入一个[-1,1]之间的数x的步骤;
[0024]
a2:用于根据输入的x计算比特流的实际概率p的步骤;
[0025]
a3:用于计算产生实际概率p所需要的脉冲电压v或脉冲宽度t的步骤;
[0026]
a4:用于将脉冲通过忆阻阵列的步骤;
[0027]
a5:用于读取忆阻阵列开关的状态,得到比特流的步骤,结束。作为优选:在步骤a2中,计算比特流的实际概率的计算公式为:
[0028]
p=(x+1)
÷2[0029]
其中,p表示比特流的实际概率,x表示输入的数;
[0030]
在步骤a3中,计算产生实际概率p所需要的脉冲电压v或脉冲宽度t的计算公式如下:
[0031][0032]
其中,v0和τ0表示拟合参数,由忆阻器设备决定;v表示给脉冲压,t表示脉冲宽度,p表示比特流的实际概率;
[0033]
当脉冲电压v给定时,通过控制脉冲宽度t来控制比特流的实际概率p;当脉冲宽度t给定时,通过控制脉冲电压v来控制比特流的实际概率p。
[0034]
进一步描述,忆阻器是一种可变电阻,有高阻和低阻两种状态,分别称为关和开状态,符合以下公式:
[0035][0036]
也就是说,可以通过控制脉冲来控制两种状态之间的转变,并且这种转变是一种随机的行为,可以通过控制脉冲电压和脉冲宽度来控制两种状态之间的转化,当对一个忆阻设备施加一个脉冲,忆阻的开关状态会发生改变,因此可以通过读取电流来判断开关是属于哪种状态,来得到一个比特流,开状态记0,关状态记1。同理,当对一排或一列忆阻设备同时时间脉冲,就可以根据一排或一列状态得到一串比特流。
[0037]
通过上述设计,在电路中,通过对忆阻阵列施加脉冲,控制开关来生成比特流,这些比特流是随机计算所需要的比特流,使用比特流通过逻辑门进行运算可以提高运算速度。
[0038]
作为优选:在第9步中,通过计数器将比特流随机数转化为二进制数后,可通过比特流转化为的二进制数计算气体特征数据属于该比特流气体类别的具体概率,具体可通过softmax函数求出属于气体类别的概率。
[0039]
例如:这6个比特流分别为0110010100010010,0001011000010000,1011110011011010,1000101101001000,1000100101001000,0001011000010000,这6个比特流长度为16,每一个比特流经过计数器得到的1的个数分别为:6,10,6,6,5,4。如果要求出属于某一类气体的概率,首先计算出6个比特流的值分别为:6/16,10/16,6/16,6/16,5/16,4/16,然后计算实际表示的值为:6/16
×
2-1=-4/16,10/16
×
2-1=4/16,6/16
×
2-1=-4/16,6/16
×
2-1=-4/16,5/16
×
2-1=-6/16,4/16
×
2-1=-8/16,最后通过softmax函数即可求出属于某一类气体的具体概率。
[0040]
作为优选:轻量化卷积神经网络通过以下步骤训练出卷积核与全连接层的最佳参数值:
[0041]
步骤1:用于将所述16个气体特征数据通过维度变化变为4
×
4的特征数据,再通过一圈零填充变为6
×
6的特征数据的步骤;
[0042]
步骤2:用于将6
×
6的特征数据和3
×
3的卷积核参数进行卷积,得到4
×
4的特征图的步骤;
[0043]
步骤3:用于将所述4
×
4的特征图与所述4
×
4的特征数据进行堆叠,得到2
×4×
4的特征图的步骤;
[0044]
步骤4:用于将3
×
3的池化核参数对2
×4×
4的特征图进行最大池化,得到2
×2×
2的特征立方体的步骤;
[0045]
步骤5:用于将2
×2×
2的特征立方体变为1
×
8的向量的步骤;
[0046]
步骤6:用于将1
×
8的向量与8
×
6的全连接层参数进行全连接操作,得到1
×
6的分类结果的步骤;
[0047]
步骤7:用于将1
×
6的分类结果输入到轻量化卷积神经网络中,计算损失函数的步骤;
[0048]
步骤8:用于根据损失函数计算损失,更新对应参数的步骤;
[0049]
步骤9:用于判断是否达到1000次迭代次数的步骤;
[0050]
当未达到迭代次数时,返回到步骤1;当达到迭代次数时,进入用于保存参数作为最佳参数值的步骤。
[0051]
进一步描述,在所述步骤2中,为保证卷积后的输出特征图为4
×
4,采用零填充的方式对4
×
4的特征数据进行3
×
3的卷积;在所述步骤3中,为了防止在下一步3
×
3最大池化时特征的丢失,加入原始特征数据进行特征补偿,即将4
×
4的特征图和4
×
4的特征数据对应位置相互叠加得到一个2
×4×
4的特征图;在所述步骤4中,对2
×4×
4的特征图进行3
×
3的最大池化,设置池化步长为1,即可得到一个2
×2×
2的特征立方体。
[0052]
通过上述设计,经过1000次迭代训练来不断更新卷积核与全连接层参数,从而得到最佳参数值,使得最终得到的气体分类结果更加精确。
[0053]
作为优选:在所述步骤7中,损失函数为交叉熵损失函数,通过交叉熵损失函数计算损失值,交叉熵损失函数公式为:
[0054][0055]
其中,n表示样本数量;m表示类别的数量;y
ic
表示符号函数(0或1),如果样本的i的真实类别等于c取1,否则取0;pic表示观测样本i属于类别c的预测概率。
[0056]
本发明的有益效果是:使用卷积神经网络以权重参数共享来减少参数,以减少模型的参数量;采用随机计算进行硬件加速,不仅加快了硬件的网络计算速度和抵抗数据漂移的能力,还能更好的实现硬件部署;采用忆阻器的随机开关特性进行随机比特流的生成,减少更多的能耗。
附图说明
[0057]
图1为轻量化卷积神经网络结构示意图;
[0058]
图2为使用忆阻随机计算推演图;
[0059]
图3为本发明中的逻辑门计算与二进制数转化示意图;
[0060]
图4为用忆阻器产生随机比特流的结构示意图。
具体实施方式
[0061]
下面结合附图和具体实例对本发明进一步详细说明。以下实施例或者附图用于说明本发明,但不用来限制本发明的范围。
[0062]
如图1所示:输入按tgs2602;tgs2602;tgs2600;tgs2600;tgs2610;tgs2610;tgs2620;tgs2620;tgs2602;togs2602;tgs2600;tgs2600;tgs2610;tgs2610;tgs2620;tgs2620一次排列的16个气体传感器采集的16个气体特征数据,通过维度变化变为4
×
4的矩阵,然后通过一个3
×
3的卷积核对其进行卷积操作,为了可以得到4
×
4的结果,采用零填充的方式对其进行卷积;为了防止在下一步3
×
3最大池化时特征的丢失,加入原始特征数据进行特征补偿,最后得到2
×2×
2的特征立方体,然后将其变为1
×
8的向量,通过全连接实现六分类。
[0063]
具体步骤如下:
[0064]
第1步:用于使用按tgs2602;tgs2602;tgs2600;tgs2600;tgs2610;tgs2610;
tgs2620;tgs2620;tgs2602;togs2602;tgs2600;tgs2600;tgs2610;tgs2610;tgs2620;tgs2620一次排列的16个气体传感器采集16个气体特征数据的步骤;
[0065]
第2步:用于将所述16个气体特征数据维度变为4
×
4的气体特征矩阵,然后进行一圈零填充,变为6
×
6的矩阵,并通过忆阻阵列得到36个比特流的步骤;
[0066]
第3步:用于将3
×
3的卷积核通过忆阻阵列生成比特流,得到9个比特流的步骤;
[0067]
第4步:用于使用所述9个比特流对所述36个比特流进行卷积,得到4
×
4的矩阵,即16个比特流的步骤;
[0068]
第5步:用于将第4步得到的4
×
4的矩阵和第2步中的4
×
4的气体特征矩阵变维为2
×4×
4的立体矩阵,得到32个比特流的步骤;
[0069]
第6步:用于将所述32个比特流通过最大值电路进行3
×
3的池化核池化,得到8个比特流的步骤;
[0070]
第7步:用于将8
×
6的全连接层矩阵通过忆阻阵列生成比特流,得到48个比特流的步骤;
[0071]
第8步:用于将所述48个比特流和所述8个比特流进行全连接操作,得到6个比特流的步骤;
[0072]
第9步:用于将所述6个比特流进行转化为二进制,然后进行比较实现分类的步骤。
[0073]
如图2所示:在轻量化卷积神经网络中,为了方便在更小的设备部署和拥有更快的识别速度,采用忆阻随机计算进行气体识别。在电路中,通过对忆阻阵列施加脉冲,控制开关来生成比特流,这些比特流是随机计算所需要的比特流,使用比特流通过逻辑门进行运算可以提高运算速度。图2中,比特流使用双极表示。
[0074]
用忆阻阵列产生比特流的具体流程包括以下步骤:
[0075]
a1:用于在忆阻阵列中输入一个[-1,1]之间的数x的步骤;
[0076]
a2:用于根据输入的x计算比特流的实际概率p的步骤;
[0077]
a3:用于计算产生实际概率p所需要的脉冲电压v或脉冲宽度t的步骤;
[0078]
a4:用于将脉冲通过忆阻阵列的步骤;
[0079]
a5:用于读取忆阻阵列开关的状态,得到比特流的步骤,结束。在步骤a2中,计算比特流的实际概率的计算公式为:
[0080]
p=(x+1)
÷2[0081]
其中,p表示比特流的实际概率,x表示输入的数;
[0082]
在步骤a3中,计算产生实际概率p所需要的脉冲电压v或脉冲宽度t的计算公式如下:
[0083][0084]
其中,v0和τ0表示拟合参数,由忆阻器设备决定;v表示给脉冲压,t表示脉冲宽度,p表示比特流的实际概率;
[0085]
当脉冲电压v给定时,通过控制脉冲宽度t来控制比特流的实际概率p;当脉冲宽度t给定时,通过控制脉冲电压v来控制比特流的实际概率p。
[0086]
如图3所示:图3(a)中是随机计算乘法,其中and门适用于单极表示的乘法,xnor门适用双极表示的乘法。考虑到具有相同长度的位流a和b所表示的概率为pa和pb,对应位置
通过and/xnor门之后的输出就为pa
×
pb。
[0087]
在图3(b)中,计算两个比特流pa和pb的和,需要一个额外的比特流pc作为辅助进行缩放,因为随机数pa和pb所代表的值都属于[-1,1],直接进行加法得到的结果在区间[-2,2],因此需要重新进行映射回到[-1,1]。通常pc=1/2,由sng提供,最终的输出结果为pa
×
pc+(1-pc)pb。
[0088]
图3(c)为将比特流随机数转化为二进制数的示意图,通过计数器就可以完成。
[0089]
如图4所示:每次将脉冲通过一行,然后根据开关的状态来生成随机比特流。每次用完之后需要将其进行恢复,以保证下一次使用。
[0090]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
其中,p表示比特流的实际概率,x表示输入的数;在步骤a3中,计算产生实际概率p所需要的脉冲电压v或脉冲宽度t的计算公式如下:其中,v0和τ0表示拟合参数,由忆阻器设备决定;v表示给脉冲压,t表示脉冲宽度,p表示比特流的实际概率;当脉冲电压v给定时,通过控制脉冲宽度t来控制比特流的实际概率p;当脉冲宽度t给定时,通过控制脉冲电压v来控制比特流的实际概率p。6.根据权利要求1所述的基于忆阻随机计算轻量化卷积神经网络的气体识别方法,其特征在于:轻量化卷积神经网络通过以下步骤训练出卷积核与全连接层的最佳参数值:步骤1:用于将所述16个气体特征数据通过维度变化变为4
×
4的特征数据,再通过一圈零填充变为6
×
6的特征数据的步骤;步骤2:用于将6
×
6的特征数据和3
×
3的卷积核参数进行卷积,得到4
×
4的特征图的步骤;步骤3:用于将所述4
×
4的特征图与所述4
×
4的特征数据进行堆叠,得到2
×4×
4的特征图的步骤;步骤4:用于将3
×
3的池化核参数对2
×4×
4的特征图进行最大池化,得到2
×2×
2的特征立方体的步骤;步骤5:用于将2
×2×
2的特征立方体变为1
×
8的向量的步骤;步骤6:用于将1
×
8的向量与8
×
6的全连接层参数进行全连接操作,得到1
×
6的分类结果的步骤;步骤7:用于将1
×
6的分类结果输入到轻量化卷积神经网络中,计算损失函数的步骤;步骤8:用于根据损失函数计算损失,更新对应参数的步骤;步骤9:用于判断是否达到1000次迭代次数的步骤;当未达到迭代次数时,返回到步骤1;当达到迭代次数时,进入用于保存参数作为最佳参数值的步骤。7.根据权利要求6所述的基于忆阻随机计算轻量化卷积神经网络的气体识别方法,其特征在于:在所述步骤7中,损失函数为交叉熵损失函数,通过交叉熵损失函数计算损失值,交叉熵损失函数公式为:其中,n表示样本数量;m表示类别的数量;y
ic
表示符号函数(0或1),如果样本的i的真实类别等于c取1,否则取0;pic表示观测样本i属于类别c的预测概率。8.根据权利要求1所述的基于忆阻随机计算轻量化卷积神经网络的气体识别方法,其特征在于:在第9步中,通过计数器将比特流随机数转化为二进制数后,可通过比特流转化为的二进制数计算气体特征数据属于该比特流气体类别的具体概率,具体可通过softmax函数求出属于气体类别的概率。
技术总结
本发明公开了一种基于忆阻随机计算轻量化卷积神经网络的气体识别方法,其特征在于:首先使用16个气体传感器采集16个气体特征数据,通过忆阻列阵得到16个比特流,然后通过忆阻随机计算对其进行卷积、池化和全连接操作,得到6个比特流,该6个比特流用来定义表示6类气体,通过比较得到最终气体分类结果。其显著效果是:使用卷积神经网络以权重参数共享来减少参数,以减少模型的参数量;采用随机计算的形式进行硬件部署,在加速网络计算速度的同时还能抵抗数据漂移现象;采用忆阻器的随机开关特性进行随机比特流的生成,减少更多的能耗。减少更多的能耗。减少更多的能耗。
技术研发人员:段书凯 杨斌 陈艾 李广隶 付军 唐健峰 王丽丹
受保护的技术使用者:西南大学
技术研发日:2023.05.18
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
