基于轻量级CNN 的射频指纹识别
2021-06-16孙汝杰
孙汝杰
(江苏省交通技师学院 江苏省镇江市 212028)
1 引言
随着通信技术的发展,智能设备与通信设备相互配合使得我们的生活更加便利。这也导致了人们更多地暴露在了黑客的攻击之下。RFF(射频指纹)是一种能够可以在较长时间内独立地表示设备的特性,可以看作是智能设备的DNA[1]。RFF 是非线性变化的,主要的表现形式为载波频偏(CFO),同相和正交(IQ)频偏。由于发射装置在生产过程中存在不可避免的细小差异,即使同一批产品RFF 也不同[2],[3]。传统射频指纹识别(RFFID)方法利用特征提取数据中的射频指纹[4]-[6],再用机器算法进行识别。本文提出了一种基于轻量化CNN 的RFFID 方法,可在物联网设备中部署应用。
2 系统模型和数据采集
如图1 所示,本文首先采集物联网设备的信号,然后建立RFF数据集,再利用神经网络对采样信号进行识别,最后对模型进行修改,得到较小的轻量化模型。本文的数据集来自4 台物联网设备。每个装置收集了大约6 万个样本,每个样本有500 个采样点。
3 本文提出的轻量化CNN方案
3.1 CNN的结构
CNN 通常由卷积层、全连接层组成。详细描述如下:
卷积层,是进行卷积操作的隐藏层。在二维卷积运算中,可以将输入的数据集看作一个大小为m×n 的矩阵(图片可以按像素理解),卷积核是一个大小为u×v 的矩阵。一般卷积核的大小小于输入数据集的尺寸,即1 ≤u ≤m 且1 ≤v ≤n。卷积运算可以表示为下列公式:
其中,y(i,j)表示卷积运算的输出矩阵,f(i,j)与x(i,j)分别表示的是卷积核和输入数据的对应下标元素。假设输入的数据为m×n的矩阵,卷积核是一个大小为u×v 的矩阵,不作填充时,卷积步长为s,那么输出数据的维度hout×wout可以由以下公式计算得出:全连接层在整个卷积神经网络中主要起到“分类器”的作用。工作流程为:首先将经过卷积、激活函数、池化的深度网络后的输出结果进行降维,即全都串联成大小为1×N 的一维矩阵,其中N为之前输出结果的所有元素个数。然后依据对应的权重对全连接层的各个元素进行加权求和,得到各个结果的预测值,最后取值最大的作为识别的结果。在实际应用中,全连接层后的输出层可以根据需要解决的问题进行自定义。
3.2 轻量化CNN结构
本文采用了卷积层和全连接层两种神经网络结构。考虑到输入数据集的大小,所以不需要使用池化层。ReLU 和Softmax 是深度学习中常用的非线性激活函数。公式如下:
其中Max(·)表示选择最大值的函数,z1是训练样本数。ReLu通常用于层与层之间,而Softmax 是多分类问题中的经典函数。ReLU 算法在稀疏性问题中的性能非常好,符合一定特征的中间值会放大;不一致的将直接删除。当梯度大,学习率设置过大大,权值会一次更新过多。由于zi是负数,再加上ReLU,神经网络的输出为零。Softmax 输出的值之和为1,适用于多分类。为减少过度拟合的可能性,本文使用Dropout 层来使随机神经元“死亡”。普通CNN 采用两层卷积层“Conv1D”和三层全连接层。卷积核的大小分别为1×8 和1×4。本文提出的轻量化CNN 减少了全连接层的数量,用“可分离CNN”代替卷积层。
3.3 损失函数和优化器
图1:总体示意图
通过适当的损失函数和优化器,神经网络很快就能收敛。本文使用的优化算法是Adam, Adam 具有较高的计算效率和最少的内存需求。此外,它适用于大数据问题、非固定目标问题、小信噪比以及稀疏梯度问题。Adam 可以写成:
mt表示一阶矩估计;vt表示二阶矩估计;t 表示训练步长;β1和β2表示矩估计的指数衰减率;β1,t和 β2,t表示β1和β2的第t 次方。通常,分类交叉熵(CCE)和二元交叉熵(BCE)是识别问题的主要形式。本文选择CCE 作为损失函数。CCE 可以写成:
其中x 表示输入数据;yi表示的x 真实标签;C 表示类别数;fi(·)表示模型的预测,在识别问题中表示标签。
4 仿真结果
传统CNN 和轻量化CNN 的仿真都是基于Keras 实现的,以Tensorflow 为后端,计算平台为GTX1650。利用MATLAB 对数据集进行预处理。
4.1 分类性能
在本文中,CNN 被设计成识别四种不同的设备。通过对所设计的卷积神经网络进行轻量化运算,比较了在训练同一组数据集的情况下轻量化前后卷积网络的精度差异。此外,本文还对比了其他三种传统的机器学习算法,即支持向量机(SVM)、决策树(DT)和随机森林(RF)。结果表明,与其他三种方法相比,CNN 方法和轻量级CNN 方法都具有很好的准确性。与CNN 相比,本文实现的轻量级网络虽然有一定的性能损失,但仍然具有更简洁的网络结构和更快的运行速度。分类性能如表1 所示。
表1:各种方法的识别效果
4.2 复杂度分析
虽然轻量化CNN 的网络复杂度远低于CNN。具体数据见表2。提供了三个度量:浮点运算(FLOPs)、参数和模型大小。FLOPs是指浮点运算的次数,通常用于衡量对比在不同设备上训练的模型的复杂性,其计算公式取决于各层所使用的超参数。轻量化CNN的计算量仅为CNN 的10.93%,说明计算复杂度低于CNN。
表2:两种神经网络的参数量与FLOPs
4.3 不同SNR下的准确率
如图2 所示,普通CNN 的性能优于轻量级CNN(尤其是在高信噪比环境下)。在低信噪比环境下,二者都不适用于RFF 场景。
图2:不同信噪比下两种模型的准确度对比
5 结论
本文提出了一种轻量化的CNN 来识别不同物联网设备,并与常用的CNN 和经典的机器学习方法进行了比较。结果表明,CNN和轻量化CNN 在高信噪比环境下都有很好的性能。轻量化CNN 的性能优于SVM、DT、RF 机器学习方法,比普通CNN 略差,但训练成本要小得多。