system: [SYSTEM]

user: 2. 基于自编码器的电磁特征提取 实验针对平纹编织结构碳纤维增强复合材料，也就是CFRP的电磁特征提取及分类问题，利用深度学习思想，采用自编码器算法，提取CFRP结构件缺陷的电磁特征中的隐含信息，以此为基础达到缺陷检测并将其分类的目的。 2.1. 实验数据 本实验选取平纹编织结构CFRP作为被测对象，CFRP板材如图1所示。 图1中材料由两组纱线以垂直交叉的方式编织而成，延水平方向延伸的称为经纱，延垂直方向延伸的叫做纬纱。其中每根纱线的碳纤维数量约为12 K。依照样品图例建立平纹编织结构CFRP离散化电导率模型，如图2所示。 图1. CFRP样品 图2. CFRP离散化电导率模型 图中的CFRP板材由经纬纱线的基本单元交替组成，按经纬线基本单元为单位分别设置不同的电导率。实验中以横纵坐标轴为分界线，将CFRP板材自然分成I、II、III、IV四个区域，并分别在每个区域内人为制造100个不同缺陷。四个区域共计缺陷400个，组成神经网络的训练集。每个缺陷均位于各自区域的不同位置。图2中示例缺陷尺寸为6 × 0.5 × 0.5 mm。经纬线电导率分布参数见表1。 Table 1 Geometric and physical parameters of the mode 线圈 参数 匝数 150 内径/外(w i /w o ) 1.5 mm/2 mm 线圈个数 36 线圈间距(d) 2 mm 电流/频率 1 A/1 Mhz 提离高度 0.5 mm CFRP板材 参数 经线电导率(水平) ( σ L = 10，000， σ T = 10， σ c p = 10) 纬线电导率(垂直) ( σ L = 10， σ T = 10，000， σ c p = 10) 表1. 模型的几何和物理参数 由于CFRP材料电阻抗各向异性的特点，针对每个缺陷，将图3所示的电磁检测传感器阵列置于CFRP板面之上，传感器线圈基本参数见表1。使用有限元仿真模型，跟据电磁场分布规律，分析在正弦激励情形下，CFRP表面及内部电流密度分布以及传感器线圈阻抗变化的规律，计算并提取其上的电阻抗值作为实验数据。 在获取不同角度下传感器的感应电压及电流后，根据欧姆定律，求出传感器在每一个位置的阻抗值，将其存储为向量数据。通过分析传感器在不同位置阻抗实部变化，实现对CFRP裂纹缺陷位置的分类。 图3. 6 × 6传感器阵列 图3为6 × 6角度敏感的电磁检测传感器阵列，共36个150匝线圈。以紫色方框为界将其分为内外层两部分。紫色方框内的16个线圈称为内层线圈，方框外部的20个是外层线圈。采集实验数据时，以每个内层线圈为中心分别测量其周围8个线圈的阻抗值。以图6中蓝色线圈为例，先对其通入1 A电流，然后按顺时针顺序分别分时将周围的8个线圈也通入1 A电流，求得蓝色线圈和通电线圈的阻抗值之和。同理，其余15个内层线圈用同样的方法均可求得8个阻抗值。通过以上步骤可以获得16组含有8个阻抗值的向量，亦即16 × 8的矩阵。实验中用该类矩阵作为神经网络的输入数据，包括训练集400组和测试集80组向量。 2.2. 算法流程 自编码器，以下简称AE (Auto-Encoder)，属于神经网络模型中的一种。如图4所示，AE网络结构大致可分为输入层、隐藏层和输出层3类神经元。 图4. 自编码器示意图 基本的AE神经网络由编码器和解码器两部分组成，如图4所示。网络算法是先对输入向量 V 进行线性变换，在激活函数的作用下求得一个编码解 H 。一般选择形如式(1)的Sigmoid函数作为激活函数，编码器计算方法如式(2)所示。然后以式(2)的结果 H ，作为解码器的输入，得到重构的向量 V ′ ，计算方法如式(3)。 S ( V ) = 1 1 + e − V (1) H = f ( V ) = S ( V W + a ) (2) V ′ = g ( H ) = S ( W T H + b ) (3) 公式(2)中， W = [ w 11 ⋯ w 1 j ⋮ ⋱ ⋮ w i 1 ⋯ w i j ] 是权重矩阵， W T 是权重矩阵 的转置矩阵， a 和 b 分别是向量 V 和向量 H 的偏置。 AE的学习过程是无监督的，优化的目的是使重构后的向量 V ′ 尽量与原输入向量 V 相等，也就是使重构后的代价函数最小，得到最优参数解 W ， a 和 b 。 本实验中的网络采用1个输入层，3个隐藏层和一个Softmax分类层作为输出的网络结构，输入层维度为128维，3个隐藏层维度分别为100，100，500维，Softmax输出层维度为4维，即分为四类。 将仿真中得到的数据集输入到神经网络中，基本流程如图5所示： 图5. 数据处理基本流程图 数据集预处理的目的是为了加快神经网络的训练速度，并将原本的2维数据变成3维(另外1维表示的是批次)。实验数据集由训练集和测试集两部分组成，两部分分别进行预处理。细分后的每个小批量包含10个数据向量，若剩余小批量数据向量不能被整除，则全部置入最后一个小批量中。每次输入一个小批量数据后都会重新更新网络权重，所以将所有的数据集细分为小批量，也有利于网络权重的更新。 当提取一组数据的特征时，单层神经网络往往并不是最佳的模型结构。但含有多个隐藏层的深层神经网络又很难优化权重。如果初始权值取的比较合理，梯度下降法效果当然很好，但要找到适合的初始权值区间却比较困难。在初始权值较大的情况下，网络可能会陷入局部极小值；当初始权值较小时，又很难一次训练多个隐藏层。这就是为什么要预训练神经网络，应用预训练的算法可以使用更深层的神经网络。 图6中是只有一个隐藏层的受限Boltzmann机神经网络，左边一层神经元组成可见层(visible layer)，用向量 V = ( v 1 ， v 2 ， ⋯ ， v i ) T 表示该层神经元的值， i 为其神经元的个数。右边一层的神经元组成隐藏层(hidden layer)，用向量 H = ( h 1 ， h 2 ， ⋯ ， h j ) T 表示其神经元的值， j 为其神经元的个数。隐藏层和可见层之间是全连接的，隐藏层神经元之间是独立的，可见层神经元之间也是独立的。连接可见层与隐藏层的权重用矩阵 W = ( w i j ) 表示， w i j 为可见层的第 i 个神经元与隐藏层的第 j 个神经元之间的连接权重。 在图6的单层神经网络中，提取了输入特征后，将其视为另一个单层神经网络的数据，即第一个单层神经网络的输出作为下一个神经网络的输入。这种逐步学习的方式可以根据需要重复多次。如果每层神经元的数目没有减少，并且其权值的初始值选择适当，每增加一个隐藏层都能提高模型的分类精度。当隐藏层数较高时，逐层学习网络参数的算法是训练深度网络权重非常有效的方法。网络的预训练过程适用于各种数据集，这也是逐步揭示低维非线性结构的有效方法。 图6. 单层RBM神经网络 预训练部分使用训练集数据分别训练三个如图6中所示的单层RBM神经网络，每个RBM只有一个隐藏层。前一个RBM的学习特征被用作后一个RBM的输入数据，用于训练下一个RBM中的权重和偏置等参数。对于所有的数据，每个单隐藏层RBM在整个训练过程中被预训练50次。单独预训练的3个独立RBM如图7所示： 图7. 预训练网络 当上面的单层RBM神经网络全部训练完成后，使用链式规则将3个RBM展开，连接成一个深层神经网络，并把得到的权值和偏置全部赋给这个网络，作为初值。将最后一个隐藏层的输出接入Softmax层用作分类，如图8所示： 图8. 由三个独立RBM展开堆叠成的深层神经网络 常见的分类算法有逻辑回归、支持向量机(SVM)等，但一般都用于二分类情形。相对于多分类问题，比如本实验中需要四分类就略有不同。在多分类场合中，当然也可以用多个二分类器组合成多分类，但这样解决多分类问题一般不如Softmax便利，因为Softmax的多个分类器是同时训练的，这样在效率上就优于需要训练多次的其他分类算法。其次，该使用Softmax分类器还是组合分类器，主要看各类别之间是否互斥。所谓互斥就是一个样本属于且只属于多个类别中的一个，或者一个样本只能属于一个类。如果互斥则用Softmax，如果不是互斥的则使用组合分类器。显然，实验中的数据是互斥的，所以使用Softmax更佳。 展开3个预训练好的RBM网络并接入Softmax层后，采用梯度下降法优化整个网络。当然，这里使用的是比较小的权重学习率，以避免过度调整预训练所得到的权值。微调神经网络与预训练过程的区别在于，预训练是非监督学习，利用编码器和解码器使代价函数减小来还原输入；微调过程属于监督学习。