system: [SYSTEM]

user: 3. 实验方案 为了分析该模型的效果，本文使用了MIT情感识别数据库中的4个类780个序列(每个序列有140个点)。其中，有异常信号的序列被剔除。 图5. 整体识别方案流程图 整个实验方案分为两个部分，如图5所示。第一部分是使用传统机器学习方法对手动提取的特征进行分类。第二部分首先是将一维卷积神经网络(One Dimensional Convolutional Neural Network， 1D-CNN)作为分类器，得到一类分类结果；然后使用中间层的输出，作为机器学习分类器的输入，再进行分类，得到另一类分类结果。所有的程序都是在Core i5，3.2 GHz的计算环境下，使用python 3.6并搭载scikit-learn0.24.0、TensorFlow2.1.0和Keras2.3.0实现。 3.1. 机器学习分类 脉搏信号会因情绪状态的改变而发生一定程度的变化，通过计算出脉搏信号在时域下的形态变化，如周期、面积、幅度等变化，使用机器学习分类器学习这种变化规律。基于已有的数据生成识别模型，在未知情绪状态下，计算有关参数，提供相应的判断。 特征提取包含三个方面——时域、频域和非线性。时域特征包括信号的峰值点、最小值点、周期、其特有的特征量及短时的心率变异性分析(Heart Rate Variability， HRV)等，它们能够直观地体现该信号的时域特点，解释其在医学上的生理意义。频域特征主要通过快速傅里叶变换和谱分析的方法求得信号的幅值谱、功率谱，根据维纳–辛钦定理计算功率谱密度。非线性动力学分析按一定采样周期去测量得到的时间序列数据蕴涵着原系统的动力学运动信息。根据相空间重构理论，利用测量数据构筑一个抽象的高维空间，计算出高维空间特征参数：关联维数、最大Lyapunov指数和样本熵等 [ 18 ]。从序列中提取出心率、波峰波谷、心率变异性、血管收缩时间和血管舒张时间等24个特征，并利用这些特征构成特征向量。表1列出了所有的24种特征参数名称。 Table 1 24 features manually extracted from the PPG sequence 编号 特征名称 1 心率 2 RR间期的标准差(Standard deviation of normal-to-normal heart intervals， SDNN) 3 相邻RR间期之差的均方根值(The root means square successive difference in heart period， RMSSD) 4 心率变异性的高频功率(High frequency， HF) 5 心率变异性的低频功率(Low frequency， LF) 6 HF/LF 7 呼吸速率(Breathing rate) 8 第一波峰(The first trough) 9 第一波谷(The first peak) 10 第二波峰(The second trough) 11 第二波谷(The second peak) 12 幅度均值(Average value of amplitude) 13 射血时间(Time of Vasoconstriction) 14 舒张时间(Time of Vasodilation) 15 周期(Period) 16 上升支面积(Area of vasoconstriction) 17 下降支面积(Area of vasodilation) 18 二阶导数(Second derivative) 19 频谱(Frequency spectrum) 20 幅度谱(Amplitude spectrum) 21 功率谱密度(Power spectral density) 22 最大李雅普诺夫指数(Lyapunov index) 23 关联维数(Correlation dimension) 24 波形特征量K值(Pulse contour characteristic value K) 表1. 由PPG序列手动提取得到的24个特征参数 随着对分类问题研究的深入，越来越多泛化性高、稳健性强的算法涌现而出。本文选择比较了来自三个方向的机器学习分类器，一是具有聚类思想的K近邻算法(K -Nearest Neighbor， KNN)，二是具有最大边距决策思想的支持向量机(Support Vector Machines， SVM)，三是具有集成学习思想的分类器，其中根据集成和拟合角度的不同，选取了随机森林(Random Forest， RF)，AdaBoost (ADA)以及梯度提升决策树(Gradient Boosting Decision Tree， GBDT)进行分析比较。所有算法经随机参数搜索法，在有限的一定范围内的超参数空间进行参数的随机组合，用以参数调优并获取当前模型的最优结果。表2展示了各类算法的具体参数。 Table 2 Parameters of machine learning method 方法 参数 KNN K值：K个最近的邻居(“n_neighbour”: 23) 权重：权重和距离成反比(“weight”: distance) 距离度量方法：闵可夫斯基距离(“matric”: minkowski) 叶子节点数：12 (“leaf_size”: 12) SVM 核函数：径向基核函数(“Kernel”: rbf) 核函数参数：1 (“Gamma”: 1) 惩罚因子：13 (“C”:13) RF 建立子树的数量：47 (“n_estimators”: 47) 叶子节点最少样本数：3 (“min_samples_leaf”: 3) 划分时考虑的最大特征数量：3 (“max_features”: 3) 决策树的最大深度：11 (“max_depth”: 11) ADA 弱学习器的最大迭代次数：17 (“n_estimators”: 17) GBDT 最大的弱学习器的个数：86 (“n_estimators”: 86) 叶子节点最少样本数：21 (“min_samples_leaf”: 21) 划分是考虑的最大特征数量：2 (“max_features”: 2) 决策树的最大深度：7 (“max_depth”: 7) 表2. 机器学习方法的参数 3.2. 1D-CNN 该部分首先将1D-CNN作为整个分类器得到一种分类结果，然后将该网络中间层的结果作为特征，使用3.1节中分类效果较好的三个分类器进行分类得到另一种分类结果。 图6展示了1D-CNN的具体结构。输入的CNN是一个经切割后的PPG 信号片段。整个结构包括两对具有激活功能的卷积层和池化层C1、C2、S1和S2。C1包含16个步长为1，大小为3 × 1的卷积滤波器，因此C1层将输出16个特征图。C1输出在池化层S1中进行降采样，以将特征减少到只有有意义的特征。最大池化层S1用于返回10 × 1过滤器中的最大值。C2包含64个大小为5 × 1卷积滤波器，最大池化层S2的大小为5 × 1。为了避免过拟合，在C1后引入一个批量归一化层，将神经元输入的分布改变为均值为0，方差为1的标准正态分布，解决了梯度消失问题，提高了学习收敛速度。采用整流线性单元作为激活函数，增强了层间的非线性，提高了运行速度。 图6. 1D-CNN 结构图 为了验证1D-CNN是否具有良好的特征提取效果，采用t分布随机邻域嵌入(t-Distributed Stochastic Neighbour Embedding， t-SNE)算法进行降维处理，并对多类样本提取的特征向量进行可视化。随机邻域嵌入(Stochastic Neighbour Embedding， SNE) [ 19 ] 的思想是，如果数据在高维空间是相似的，映射到低维空间的距离也是相似的。它将不同类数据之间的距离视为条件概率正态分布(高维和低维样本分布均视为正态分布)。利用Kullback-Leibler发散距离来保证映射后的分布尽可能相同。t-SNE [ 20 ] 简化了SNE的梯度公式，在低维空间中用t分布代替正态分布，扩大了距离较大的簇之间的距离，解决了低维空间的数据拥塞问题。图7展示了从MIT数据库中三类情绪样本信号段内，提取的32维特征向量经过t-SNE算法降至3维后的可视化结果，其中，每个颜色代表同一类数据。由图可知，同一类间的点聚合得很紧密，不同类之间的点存在较明显的疏远。说明1D-CNN具有良好的特征提取效果。 图7. 多维特征向量降维后的可视化