基于忆阻器神经网络的辐射效应诊断系统设计

2021-06-10 07:29王新胜李宗霖王夕悦
关键词:阻器故障诊断运算

王新胜,李宗霖,王夕悦

(哈尔滨工业大学(威海),山东 威海 264209)

航天事业是我国群策群力发展的重要事业,航天事业的稳步向前离不开航天器的可靠性,电子元器件是航天技术快速提升的关键[1]。航天器正常工作时一般位于太空中,太空中存在大量高能粒子,如果集成电路暴露在太空环境中,那么集成电路将迅速出错甚至失效,有许多航天器受到空间环境影响而出现故障,其中45%左右的故障是由各类辐射失效所导致的[2]。随着集成电路工艺技术的发展,纳米级的MOSFET会产生一些新的辐射效应[3]。实时判断集成电路所处的工作状态,诊断集成电路的辐射失效状态,及时采取处理措施可以很大程度地降低航天器出现故障的概率。

忆阻器是具有一定“记忆”特性的4种电学基本元件之一,目前主要的应用方向有数据存储、逻辑运算、神经网络运算等[4],且忆阻器可以与CMOS电路集成。忆阻器电路在数值运算方面比CMOS电路更具优势,在实现2×2乘法器时,使用纯CMOS搭建需要62个器件,而使用忆阻器与MOSFET混合搭建时仅需要36个器件就可以实现相同功能[5],忆阻器也可以实现模拟信号的乘法。使用忆阻器交叉阵列[6]搭建CNN的硬件电路是一种完美选择,通过忆阻器搭建的智能集成电路辐射效应诊断系统,可以将诊断电路与待诊断电路集成,可以有效掌控电路的状态,保障系统的可靠性。

1 SRAM的辐射故障的模型

1.1 SRAM单粒子效应模型

对于SRAM单粒子效应的模型最早使用的是矩形注入脉冲模型,其波形形状与真实高能粒子入射器件所产生的波形相差较大。

双指数注入脉冲模型是优于矩形模型的一种单粒子效应模型,该模型的公式为:

式中包含双指数函数,通过模型对参数a1、a2、p1、p2进行参数提取,将提取的值代入就可以获得一个相对贴合的单粒子效应模型。

目前,最适合最常用的单粒子效应模型是瞬态注入脉冲模型,其模型中的参数不仅拥有实际物理意义,且其仿真波形与实际情况十分接近,瞬态注入脉冲模型的表达式为:

式中:I为瞬态注入脉冲模型的电流;Q0为高能粒子向器件中注入的电荷量;τ为与电荷重组相关的时间常数;t为当前时间。

瞬态注入脉冲模型中的参数Q0主要影响瞬态电流源的电流幅值,而时间参数τ主要影响的是瞬态电流的宽度,也就是电荷被吸收掉的时间。该模型重复考虑了不同能量的高能粒子入射时电流波形的不同,与入射高能粒子的LET值具有相关性,十分贴合器件受到高能粒子辐射时的电流波形。

通过建立好的NMOS模型,研究了器件受到单粒子辐射时的漏极电流,图1为器件在受到不同能量高能粒子入射时漏极电流的波形图,由图1可知,随着高能粒子的LET的增加,器件中注入的电荷量随之升高,电荷被吸收掉的时间也会随之增加。

图1 不同LET的高能粒子辐射下的器件漏极电流变化

通过Python编写脚本,对TCAD中仿真的单粒子效应数据中的Q0和τ进行提取,程序的主要功能是:按文件顺序读取所有仿真得到的csv格式的文件,通过文件名来判断LET的数值,之后通过对csv中数值的读取及处理之后计算出2个重要参数。对单粒子效应数据,本文在不同条件下采集了多组数据,其中数据的变量包括:高能粒子入射位置和角度、高能粒子的LET、高能粒子的入射距离、高能粒子的半径。

之后,在仿真软件Virtuoso中,通过Verilog-A语言编写了单粒子效应的模型,该模型是一种单端口的电流源,并可以与其他电路直接仿真,该模型的仿真结果如图2所示。

图2 Virtuoso中单粒子效应瞬态电流源仿真结果

1.2 总剂量效应的仿真模型

对于SRAM总剂量效应的仿真,根据NMOS总剂量辐射效应机理,主要针对NMOS阈值电压的改变和MOS漏极电流的变化,仿真时对器件受到总剂量效应时的情况进行模拟。对于辐射剂量对NMOS阈值电压的关系,描述为:

式中:ΔVit为NMOS阈值电压的变化量(V);D为器件受到的辐射总剂量(krad)。

图3为器件受到0~150 krad辐射时NMOS阈值电压的变化与辐射剂量的关系曲线,在器件受到的辐射总剂量较低时,器件的阈值电压漂移量与辐射剂量基本是线性关系。

通过对漏极电流和电场强度的仿真提取就可以间接计算出器件中的载流子数目,进而求得器件1/f噪声的噪声幅值。器件中的总载流子数计算公式为:

式中:W为器件结构的宽;Ex为器件沟道内的电场强度。

图3 总剂量效应的NMOS阈值电压漂移与辐射剂量的关系

1/f噪声的得名是由于其噪声功率与频率成反比,即在低频时噪声功率比较大,用于描述器件1/f噪声的频率与噪声功率关系的参数称为1/f噪声的频率指数,一般来说,NMOS的1/f噪声的频率指数一般为1.0~2.0。另外,对于器件内部1/f噪声产生的机理来说,描述噪声产生时间的公式为:

式中,z为陷阱的相对距离。

总剂量下器件漏极电流变化值的表达式如式(6)所示,通过器件模型提取出不同辐射剂量下的ΔNt,就可以计算出器件的漏极电流。

NMOS电路级阈值电压漂移的仿真模型如图4所示,通过在NMOS栅极外加电压源的方法来仿真NMOS的阈值电压漂移。

图4 NMOS阈值电压的漂移模型

根据总剂量辐射的相关原理,在Virtuoso中使用Verilog-A对器件总剂量辐射时的电流1/f噪声模型进行编写,该模型具有2个端口,使用时类似电阻连接在NMOS的源极或漏极。

2 辐射故障诊断神经网络的设计与训练

2.1 辐射故障诊断神经网络

应用神经网络进行故障诊断的目的是将神经网络分类的思路应用于电路故障诊断领域,即对电路不同工作状态下的电源电流数据进行识别。卷积神经网络不仅在图像分类识别取得成功,并且在各种类型的故障诊断领域也有广泛的应用。但是用于集成电路电学数据这种一维连续的数据时,需要对神经网络的结构进行仔细设计。卷积神经网络中的卷积操作可以看作是部分点积的过程,一般来说卷积都是由卷积核与输入的矩阵或向量的其中一部分进行点积运算。

1)一维卷积运算。一维卷积运算和向量的点积运算比较相似,可以说一维卷积是向量的局部点积运算,对于没有张量填充的卷积运算时,用于计算输出张量大小与输入张量关系的表达式为:

式中:N为输出张量的大小;M为输入张量的大小;K为一维卷积核的大小。

一维卷积的数学形式化的公式为:

2)最大池化。最大池化是在指定的数据区域内,取该区域内的最大值进行保留,这个数据区域是由最大池化的大小决定。最大池化同样也分一维最大池化和二维最大池化。图5为最大池化运算的示意图。其中,图5(a)是一维最大池化的运算过程,图5(b)是二维最大池化的运算过程,经过最大池化运算之后的特征大小变化与经过平均池化运算的特征大小变化相同。

全连接层一般位于卷积神经网络的最终输出之前,主要作用是对经过卷积池化等运算得到的特征进行展开分类,把分布式特征映射到样本标记空间,同样也是卷积神经网络的重要组成部分。一般来说全连接层的输入一般是多组特征展开的一维特征向量,经过一次或多次全连接运算,最终输出指定分类数的张量,输出一般经过Softmax分类器进行分类。

图5 最大池化运算的示意图

图6 为全连接运算的示意图,神经网络前半部分运算的结果展开之后是一个宽度为20的特征,卷积神经网络是将数据分类成5类。其中,图6(a)仅有1层全连接层直接输出5分类的结果,图6(b)增加了一层全连接层,经过2层全连接层之后同样输出5分类的结果。

图6 全连接运算的示意图

本文设计的卷积神经网络结构如图7所示,卷积神经网络的输入为14个连续的数据,经过6个通道3×1大小的卷积核进行一维卷积后的数据为6个通道12×1共72个数据,之后会经过2×1最大一维池化层对一维卷积层的输出数据进行下采样,第一层一维最大池化层的输出数据为6通道6×1共36个数据,下一层是3×1共12个通道的第二层一维卷积层,其运输结果是12通道4×1的数据共48个,之后会经过第二层2×1最大池化层的运算输出数据为12通道2×1共24个数据,在特征提取之后,对数据展开成一维数据,通过全连接层进行分类,这里由于数据分类的种类较少,因此全连接只用了一层运算后直接输出3×1的张量。

由于一般的卷积神经网络激活函数为ReLU激活函数,但由于ReLU激活函数的正数部分没有上限,如果通过忆阻器硬件电路实现,忆阻器卷积神经网络计算出的电流或电压值也没有上限,这不符合忆阻器电路对电压的要求。为下一步神经网络的硬件实现做准备,该辐射故障诊断的一维神经网络用到的激活函数是Sigmoid激活函数,Sigmoid激活函数可以将输出值限定在(0,1)的范围内,该范围内的电压值是满足神经网络硬件电路的运算范围的。

图7 辐射故障诊断的一维神经网络结构图

数据在输入神经网络之前经过数据的预处理,数据预处理实现的功能是将输出的原始数据等比例放缩到区间(-1,1),数据预处理标准化的公式为:

式中:Ds为经过预处理标准化后的数据;Di为原始未经处理的数据;Darg为输入数据的算术平均值;Dmax为输入数据中的最大值;Dmin为输入数据中的最小值。

由于故障诊断神经网络的输入数据相对较小,在进行神经网络训练时可能出现训练速度慢的情况。使用数据预处理对输入数据标准化,一方面对数据按照一定比例进行放大,另一方面加快神经网络训练时的收敛速度。不同数据放大比例对数据处理存在一定影响,合理的数据处理可以提升神经网络训练效率,与数据直接放大相比,可以放大相对差距,在限定数据范围的同时使数据差异化。

并不是所有神经网络结构都具有学习能力,本文对搭建神经网络学习能力的验证,用于验证的相关输入数据集如表1所示。为了使数据能够输入到卷积神经网络进行训练,需要调整数据大小,与神经网络输入同样的数据大小,因此数据宽度同样也为14。

表1 于验证辐射故障诊断神经网络学习能力的数据表

表1中,x是区间[0,19]中所有整数,r是区间(-1,1)中的随机数。将运算得到的结果转换为张量输入到辐射故障诊断神经网络,进行学习能力的验证。将神经网络的学习率设置为0.05,动量设置为0.9,迭代次数设置为17 k,将数据依次输入神经网络,最后验证了该卷积神经网络的学习能力,图8为验证神经网络学习能力时训练迭代次数与训练损失的关系图。由图8可以看出,在训练次9k左右的时候,该卷积神经网络的训练损失已经收敛,且训练的损失低于0.005,证明了神经网络具有学习能力,且对3种数据类型的分类效果比较好。

图8 神经网络学习能力时迭代次数与训练损失

2.2 辐射故障诊断神经网络的训练

在对辐射故障诊断神经网络训练之前,本文通过对辐射故障诊断神经网络的权值初始化,以加快辐射故障诊断神经网络参数的收敛速度。图9为神经网络的权重偏置初始化策略,采用Xavier[8]正态分布进行初始化,一维卷积层和全连接层的偏置全部初始化为0.0。

图9 神经网络的权重偏置初始化策略

由于本文采集的仿真数据是csv格式,通过Python编写数据处理脚本,将所有csv文件自动加入标签(label)号后写入训练集和测试集2个txt文件中。神经网络的输出为3类,具体分类如表2所示。

表2 辐射故障诊断神经网络的输出类别

通过Pytorch编写神经网络的结构及其训练程序,神经网络的结构程序包括网络结构的描述和初始化策略的实现。由于数据并非卷积神经网络的常用图片数据,训练时并未采用数据加载器(loader),而是通过程序代码将数据转换为张量(Tensor)格式。神经网络的训练程序为:首先对训练集的txt文件进行读取,通过式(8)对数据预处理,之后通过设定训练的迭代次数(iteration)对单组数据输入网络的训练次数,辐射故障诊断神经网络训练时使用的是随机梯度下降(stochastic gradient descent,SGD)方法。只有当学习率处于合适范围时,训练误差才会既快速又稳定的下降。对于神经网络训练时的学习率来说,目前较佳的方法是先采用一个相对较高的学习率,使训练误差迅速下降,之后逐渐减小神经网络学习率,使训练误差相对稳定的下降至一个趋于稳定的值,本文中辐射故障诊断神经网络训练时的学习率在0.000 1~0.001,在选择学习率时进行了多次试验,着重于训练损失与迭代次数之间的关系。学习率对神经网络训练的影响如图10所示。

图10 学习率对神经网络训练的影响

通过SGD方法训练时,神经网络动量主要影响参数修正梯度的下降速度,图11为SGD中动量的作用示意图,从图11中可以看出,在使用动量相关算法后,神经网络的梯度下降时波动范围上升了,且波动方向不是向着最终的中心方向,但如果动量的比例值设置在合适范围,神经网络的训练将事半功倍,会加快收敛速度、减少训练时间,本文中辐射故障诊断神经网络训练时动量设置为0.8。训练完成后,保存训练后的网络结构及网络参数。

图11 动量对神经网络梯度下降的影响

2.3 辐射故障诊断神经网络的训练结果

基于2.2小节研究的训练方法及关键参数,对辐射故障诊断神经网络进行训练,由于卷积运算需要进行多次的乘法和加法,理论上可以通过CPU和GPU进行训练,CPU注重于单任务快速处理,而GPU重点关注于多任务并行处理,图12为CPU和GPU架构的对比。从CPU和GPU架构上的区别可以看出,对于卷积神经网络的卷积运算,使用GPU的运算速度会优于CPU的运算速度。因此,对辐射故障诊断神经网络的训练,本文使用的是基于英伟达统一计算设备架构(compute unified device Architecture,CUDA)的GPU。训练时使用的具体软硬件配置如表3所示,训练过程中的关键参数设置如表4所示。

图12 CPU和GPU架构的对比图

表3 训练辐射故障诊断神经网络的软硬件配置

表4 训练的关键参数设置

训练过程中的损失函数变化如图13所示,辐射故障诊断神经网络在训练数据量到达1 000 k时已经接近于收敛,经测试集对训练完成的神经网络进行测试,测试准确度达到99%。

图13 训练过程中训练损失函数变化图

对测试集数据进行测试,由于辐射故障诊断神经网络是三分类输出的,输出的3个张量值作为3个坐标轴,绘制输出散点分类图,如图14所示。

至此,基于软件平台对辐射故障诊断神经网络的训练工作已经基本完成,训练后的网络已经成功对,3种不同工作状态采集的电源电流数据进行分类识别,且识别的准确度较高。

图14 辐射故障诊断神经网络测试分类散点图

3 辐射故障诊断神经网络的硬件模型基础

完成对辐射故障诊断神经网络的训练之后,通过忆阻器搭建神经网络的硬件电路,1971年,Leon Chua发现了缺少描述电荷量与磁通之间关系的电路元件,对其进行论证并命名为忆阻器[9],图15为电路参量之间的关系。2008年,惠普实验室的Stan Williams的团队通过实例证明了纳米级电路系统中产生了忆阻现象[10],第一次获得了现实中的忆阻器模型。

图15 忆阻器与常见电学量之间的关系

惠普实验室提出的忆阻器模型如图16所示,忆阻器主要由2片铂片以及2层二氧化钛薄膜构成。其中一层二氧化钛薄膜掺入了氧空位,其厚度为w;另一层未掺入氧空位厚度为D-w。掺入氧空位的二氧化钛薄膜具有良好的导电性,而未掺入氧空位的薄膜导电性较差。在忆阻器2个电极外加电压时,2种二氧化钛的薄膜边界会移动。正向电压时,边界将朝向未掺杂层进行移动,使忆阻器的电阻降低;负向电压时,边界将朝向掺杂层进行移动使忆阻器的电阻升高,即忆阻器的电阻会随着电压的变化而变化。

图16 忆阻器的模型示意图

当二氧化钛边界移动到2个金属铂片时,出现2个极限情况,即w=0和w=D,这2种状态下忆阻器的电阻值定义为关断电阻Roff和导通电阻Ron。研究人员定义忆阻器的电阻为掺杂层的电阻和非掺杂层电阻的和,任意时刻忆阻器的电阻计算公式为:

式中:Rm为忆阻器的电阻值;Ron为忆阻器完全导通时的电阻值;Roff为忆阻器完全关断时的电阻值;x为二氧化钛边界所在位置的比例;w为二氧化钛边界所在位置;D为二氧化钛薄膜的总厚度。

一般来说,二氧化钛边界的移动速度与器件内离子的移动速度有关,即:

式中:μv为离子平均的漂移率;k为边界的移动速度与流经忆阻器电流的比例因子。

对于实际中的忆阻器来说,其二氧化钛边界不能完全到达器件的边界,对其进行描述的上述公式是不够精确的,还需要通过窗口函数的限制,在式(12)右端右乘窗口函数,常用的窗口函数有多种,本文模型中使用的是较为常用的Joglekar窗函数[11],其表达式为:

式中,p为任意正整数。

Joglekar窗函数的图像如图17所示,不同p值参数下Joglekar窗函数曲线具有不同程度的边界效果,当p≥5时,窗函数的函数值约等于1。窗函数的加入,使器件模型在位于二氧化钛边界位置时体现出较强的抵抗性,边界位于中心附近时器件模型会呈现一定的非线性。

图17 不同参数下的Joglekar窗函数

基于上述对忆阻器模型研究,在Virtuoso中通过VerilogA语言对忆阻器的模型进行设计,使用的窗口函数是p=2时的Joglekar窗口函数。忆阻器模型的仿真结果如图18所示。图18(a)是忆阻器两端输入频率100 Hz正弦波电压时,忆阻器电压和电流随时间的变化图,在忆阻器电压曲线的前半周期内,忆阻器电流曲线达到极值点的时间晚于电压曲线,在忆阻器电压曲线的后半周期内,忆阻器电流曲线达到极值点的时间早于电压曲线,在电压为0时,电流也为0,这体现了忆阻器电阻的可变性;图18(b)为不同输入正弦电压频率下的伏安特性曲线,类似于电磁中的磁滞回线,随着正弦电压频率的增加,忆阻器的伏安特性曲线越来越窄甚至变为一条直线,此时忆阻器的特性将类似于普通电阻的特性。模型的仿真测试结果与惠普实验室制作的二氧化钛忆阻器的特性完全吻合。

图18 忆阻器特性的仿真结果

4 辐射故障诊断神经网络的硬件电路

基于训练完成的辐射故障诊断神经网络的结构和参数,通过忆阻器等元器件对辐射故障诊断神经网络的硬件电路进行搭建,搭建时采用参数移植方法,将通过软件平台训练之后的神经网络参数,移植到忆阻器交叉阵列[12-14]神经网络电路中,将神经网络的权重和偏置映射到忆阻器的电导值中。由于忆阻器的电导只能表示正值,在计算卷积时,如果存在负数值,则不能直接计算,而且忆阻器的电导存在一定范围,所以需要正负2个运算部分来计算正值和负值,将卷积核矩阵的值转化到忆阻器电导可以表示的范围内[15]。式(15)是卷积核中正矩阵的转换公式,式(16)是卷积核中负矩阵的转换公式,即:

式中:σ+为正矩阵转换后的忆阻器电导值;σ-为负矩阵转换后的忆阻器电导值;σmax为忆阻器的最大电导;σmin为忆阻器的最小电导;W+为卷积核正矩阵中的值;W-为卷积核负矩阵中的值。

图19为一个矩阵进行忆阻器电导转换时的示意图,首先将矩阵拆分成正矩阵和负矩阵,之后通过式(17)和式(18)进行转换。

图19 权重矩阵进行忆阻器电导转换的过程

由于运算的权重矩阵经过转换,还需要对运算结果进行还原,一般通过差分放大器组成的模拟乘法器进行数据还原,具体的还原倍数与该层是否使用激活函数相关,使用激活函数的还原倍数和不使用激活函数的还原倍数的计算公式为:

式中,k为Sigmoid激活函数的线性拟合函数的斜率。

Sigmoid激活函数图像类似于集成电路中放大器的输入电压与输出电压的关系曲线,可以通过差分放大器的结构来实现激活函数和数值的还原,差分放大器放大时一般是线性放大的,这与Sigmoid函数的图像存在一定区别,因此在利用差分放大器实现Sigmoid函数的功能时,需要对Sigmoid函数进行拟合。通过Python脚本,本文对斜率在区间(0.04,2)、与y轴交点在区间(0,0.95)内的部分一次线性函数进行枚举,计算该函数与Sigmoid函数之间的相对差距,以获得对Sigmoid的最佳拟合函数表达式,相对差距较小的几个函数如表5所示。

表5 部分用于拟合Sigmoid函数的表达式

Sigmoid函数的拟合结果显示,式(19)的函数对Sigmoid函数的拟合效果较好。

线性拟合的函数与Sigmoid激活函数曲线如图20所示,图20中只绘制了x值在(-5,5)间的函数图像,在x值超过区间(-5,5)时,2种函数的值基本上相等,可以在误差允许的情况下使用式(19)中的函数代替Sigmoid激活函数。

图20 线性拟合的函数与Sigmoid激活函数曲线

在完成对忆阻器神经网络的相关基础研究后,下面将基于忆阻器对辐射诊断神经网络的各个结构层在Virtuoso中进行搭建如下。

1)一维卷积层。

搭建的第一层一维卷积层conv1中的一个卷积核电路如图21所示,conv1的输入为14个数据,需要拆分成正半部分和负半部分,每一个忆阻器的电导值都需要通过转换公式进行转换,本文通过Python脚本将训练后的神经网络参数转换为忆阻器二氧化钛边界的相对位置,并将相对位置的值移植到忆阻器电路中。inp是输入的正半部分数据值,inn是输入的负半部分数据值,输入1 V电压的一行忆阻器用于对拟合的激活函数偏置、一维卷积层偏置进行计算。

图21 conv1中的一个卷积核电路图

根据电流节点定律,模拟乘法器输入的值等于各个输入值与各忆阻器电导乘积的和,模拟乘法器用于对该数值进行还原,模拟乘法器的结构图如图22所示,其中忆阻器Mg的电阻值与式(16)和式(17)的还原倍数相同。本文以VerilogA模型替代模拟乘法器的功能,设计的辐射故障诊断神经网络的conv1有6个卷积核,图21中只是其中一个卷积核的电路图,其他的卷积核结构与图21相同,区别在于忆阻器的电导值和还原倍数不同。

搭建的第二层一维卷积层中的卷积核电路图与图21类似,只是结构上输入节点和输出节点数目不同,电路方面忆阻器的电导和乘法器还原倍数不同。忆阻器神经网络用于还原数值的模拟乘法电路如图22所示。

图22 忆阻器神经网络用于还原数值的模拟乘法电路图

2)矩阵正负值运算电路。

由于矩阵卷积时需要获得矩阵的正值矩阵和负值矩阵,这需要特殊的电路来实现,图23为正负值运算产生电路的电路图,电路将输入Vin的值输出为Vn和Vp,由于Sigmoid激活函数的输出均为正值或0,因此Vn的值是Vin的值绝对值的相反数,Vp的值是Vin的绝对值,差分放大器的增益均为1。

图23 正负值运算产生电路的电路图

3)最大池化电路。

最大池化电路的主要功能是判断2个输入的较大值,并输出较大值的数值。实现上述功能的电路如图24所示,左边是CMOS比较器,其功能是比较2个输入的大小,如果正极输入大于负极输入,则输出上限电压1 V,相反如果正极输入小于负极电压,则输出下限电压0 V。

图24中右边的器件是可用CMOS传输门实现的单刀双掷开关,Sel是数据输出选择信号,Sel为高电平时,将输出Vin1的值,Sel为低电平时,则输出Vin2的值。最大池化电路以这种电路为单元组成,辐射故障诊断神经网络的第一层最大池化层有72个输入和36个输出,共需要36个这样的单元组成,第二层最大池化层有48个输入和24个输出,共需要24个这样的单元组成。

图24 最大池化电路的电路图

4)全连接层的电路结构。

全连接运算的本质也是矩阵的乘法,同样可以通过忆阻器来实现,只不过电路结构不同于一维卷积层的电路,图25为辐射故障诊断神经网络全连接层的电路图,全连接层有24个输入和3个分类输出,且全连接层的输出没有使用Sigmoid函数进行激活,但同样需要单独的忆阻器来计算全连接层的偏置值。

5)电路总体结构。

根据上述设计的电路结构,本文在Virtuoso中对神经网络的总体电路进行搭建,总体电路结构如图26所示,矩形方框内代表上文中介绍的电路结构,箭头方向代表数据流的方向,箭头上的数据代表各个电路之间的数据数量及正负,未标明正负代表数据可能为正值或负值。

图25 进行分类的全连接层电路图

图26 辐射故障诊断神经网络电路结构框图

辐射故障诊断神经网络电路的内部运算通过电学参量的关系进行运算,在满足数据输入格式前提下,运算速度与模拟芯片相接近,可以较好地满足实时性需求。但硬件电路与软件平台存在一定区别,导致神经网络电路的运算结果和软件平台计算的结果会存在一定误差,误差主要来源于激活函数的差别、忆阻器电导值的存储方式与软件权重的差别和电路的噪声等因素,对硬件神经网络的运算结果产生了一定影响。图27给出了在软硬输入相同条件时,硬件电路仿真的相对误差平均值,由于卷积层第二层的运算量较大,硬件电路的相对误差较大。

本文在搭建硬件电路后,在Virtuoso中仿真200组3种状态的数据,硬件实际测试时的平均误差如图28所示,误差结果均为整体神经网络电路与软件之间的仿真相对误差。

图27 硬件实际测试时的相对误差平均值

图28 硬件实际测试时的平均误差

5 结论

本文统计了200组实验数据在神经网络硬件上运行的准确度,达到98%以上,相较于软件的准确度略低,本文结果对精度要求稍低而对运算速度要求高的场景更为适用。

猜你喜欢
阻器故障诊断运算
重视运算与推理,解决数列求和题
基于包络解调原理的低转速滚动轴承故障诊断
基于忆阻器的多路复用器设计与实现
有趣的运算
数控机床电气系统的故障诊断与维修
“整式的乘法与因式分解”知识归纳
真实忆阻器数学建模以及电学仿真
因果图定性分析法及其在故障诊断中的应用
具有脉冲的忆阻器神经网络周期解的稳定性
基于LCD和排列熵的滚动轴承故障诊断