Convolutional neural networks for vibrational spectroscopic data analysis
Jacopo Acquarelli, Twan van Laarhoven, Jan Gerretzen, Thanh N. Tran, Lutgarde M.C. Buydens, Elena Marchiori (2017)
这篇文章的研究结果表明,卷积神经网络可以有效地对振动光谱数据进行分类,识别重要的光谱区域。CNN是目前最先进的图像分类和语音识别技术,可以学习数据的可解释性表示。CNN的这些特性减少了对预处理和突出重要光谱区域的需求,而这两者都是分析振动光谱数据的关键步骤。
振动光谱数据的化学计量分析通常依赖于基线校正、散射校正和噪声去除等预处理方法,这些方法在模型建立之前应用于光谱。预处理是一个关键的步骤,因为即使在简单的问题中使用“合理的”预处理方法也可能降低最终模型的性能。
作者开发了一种新的基于CNN的方法,并提供了一个配套的公开可用的软件。它基于一个简单的CNN架构,只有一个卷积层(所谓浅CNN)他们的方法优于化学计量学标准分类分类算法(如PLS)应用于未进行过预处理的测试数据时的准确性(平均准确率86%,而PLS为62%)它甚至在预处理过的测试数据上达到了更好的性能(平均准确率96%,而PLS为89%)为了便于解释,作者的方法还包括了一个寻找重要光谱区域的过程,从而有助于结果的定性解释。
振动光谱学涉及到红外(IR)和拉曼光谱的特殊光学技术。振动光谱数据分类模型将输入对象(光谱)映射到所需的输出(类分配)。在此背景下设计一个分类模型是一项具有挑战性的任务,而这一任务在不同的领域都有所应用,如制药、聚合物、法医学、环境、食品科学以及医学。目前流行的化学计量学技术包括人工神经网络、支持向量机和线性判别分类器。这些技术通常应用于预处理过的数据。在这方面的主要困难之一是就使用何种光谱预处理方法和最佳设置达成共识。
数据预处理用于提高后续多元分析的稳健性和准确性,并通过纠正与光谱数据采集相关的问题来提高数据的可解释性。预处理方法通常取决于研究的目的和所使用的技术(拉曼或红外)已经开发了大量用于振动光谱数据的预处理方法和软件。这些方法通常是基于一些任意的标准来选择的,例如“它在以前的数据集上运行良好”。最近已经表明,即使对于相对简单的问题,大多数“合理的”预处理方法及其各自的参数设置实际上可能会降低最终模型的性能。一般来说,相同的预处理技术对于一个数据集可能很有效,但是当应用于使用不同的机器、设置或样本矩阵生成的另一个数据集时,则不起作用。
虽然化学计量学研究团体迄今为止主要集中在选择一个好的预处理方法的问题上,但是机器学习团体考虑了一些相关的问题,即学习数据的表示,识别和解开隐藏在数据中的潜在解释因素。尤其是卷积神经网络(CNNs)受到动物视觉皮层生物过程的启发(在动物视觉皮层中,细胞对视觉场的小的子区域很敏感)
CNN是多层感知器(MLP)的变体,MLP是一种前馈人工神经网络(ANN)模型(如下图)它将输入数据映射到一组适当的输出。用于分类的ANN在过去已被应用于振动光谱数据。然而,这些计算模型有两个主要问题。首先,它们容易过拟合,导致新数据的性能很差。其次,无法对分类器进行解释(训练后的神经网络被视为一个“黑匣子”)
机器学习的最新进展使得CNN可以被用来解决这两个问题。CNN的设计考虑了输入数据的空间信息:它们通过加强相邻层神经元之间的局部连接模式,探索空间-局部相关性。与传统的神经网络相比,CNN的参数更少,并且通过嵌入正则化技术,对过拟合问题具有更强的鲁棒性。这些网络的每个卷积层的输出与输入频谱的小区域直接相关。因此,训练后CNN可以用来从分类器中识别输入数据的重要区域。
CNN是目前二维数据(图像)分类的前沿技术,近年来也被应用于高光谱遥感场景的三维数据分类。用于图像分类的CNN使用池化层和全连接层。该文章主要关注一维数据(振动光谱数据),不使用池化层,而是利用卷积核和步长对数据进行平滑处理。步长使最终的模型更容易用于识别重要的光谱区域,而不是池化。此外,作者根据目标(平滑输入信号,在该例中是一个振动频谱)使用了一个新的正则项。这样,CNN能够更容易地适应不同的频谱输入,从而推广到其他数据。这是CNN在振动光谱数据重要区域的分类和识别上的第一次应用。
作者证明了一种基于浅层CNN的简单方法(如下图)比偏最小二乘回归线性判别分析(PLS-LDA)和kNN的分类精度有明显的提高,分别考虑了两种场景:即不进行任何预处理,以及对输入光谱采用了一种最优的预处理方法。此外,作者的研究结果还表明CNN比PLS-LDA更少地依赖于预处理(该软件提供了公开的获取途径)
结果的解释在化学计量学中与分类一样重要,这也是为什么PLS-LDA是化学计量学中使用的一种标准方法的原因。在作者使用的方法中,他们通过对卷积层的输出应用特征选择来检测重要的光谱区域:卷积提供的光谱的新表示突出了被认为相关的光谱区域。
总的来说,这篇文章的主要创新点为:
实验结果表明,该方法为振动光谱数据的分类和解释提供了有力的工具。
本节将首先简要介绍ANN的一般原理。接下来描述该文章为了使神经网络适合于振动光谱数据的数据分析所做出的修改。最后详细描述CNN方法在光谱特征选择上的应用。
ANN由一组相互连接的神经元组成。神经元是神经网络的基本单位,由所谓的“激活函数”(将神经元的输入转换为输出)进行区分。神经元按层组织,每层的神经元都具有相同的激活函数。MLP是一个前馈神经网络,同一层单元之间没有连接(前馈意味着也没有从神经元到前一层的连接)
可以将层分为3组:输入层、隐藏层和输出层。输入层为第一层,一般具有线性激活函数。输出层是最后一层,一般具有线性或softmax激活函数,分别用于回归和分类。MLP一般有一个或多个具有相同非线性激活函数的隐层,每一层的每一个单元都使用加权连接连接到下一层的每一个单元(全连接)这些权重通常都会随机初始化并在训练阶段以有监督的方式进行学习。为此,利用反向传播和梯度下降法的不同变体,根据网络预测误差的目标函数,求出局部最小值。
使用全连接层意味着需要训练相当数量的权重,而这个数量取决于每一层的单元数。当只有几个样本可用来训练权重时,网络很容易过拟合。这是为什么ANN在化学计量学数据分析中不常用的主要原因之一,尽管它们非常适合处理高度非线性的问题(例如,可能由于数据预处理不当而发生的问题)。
作者试图通过使用MLP的变体来克服这个限制,使用非完全连接的层(即需要训练的权重更少)并在目标函数中引入正则项。正则化通过赋予小的权重,增强了神经网络在训练数据之外的适用性。这些方法通常更可取,因为从某种意义上说,较小的权重意味着较低的复杂性,因此可以更容易地解释数据。
作者使用的是卷积层,而不是全连接层(因此得名CNN)首先对输入使用一个卷积核做卷积操作。一般来说,一个或多个卷积核可用于捕获每个卷积层输入数据的不同的属性,而付出的代价是权重的增加。
卷积操作是通过从第一个到最后一个输入元素以某一个固定的步长 stride 移动一个包含 N N N个元素的卷积核 k = ∑ i N w i \mathbf{k}=\sum_{i}^{N}w_i k=∑iNwi。由输入生成的一个新的表示是利用整个频谱上的邻近特征得到的,为此每个内核都会被反复应用于输入本身。每次应用后,卷积的结果会作为输入提供给一个经过校正的线性函数, ϕ ( x ) = m a x ( 0 , x ) \phi(x)=max(0,x) ϕ(x)=max(0,x),通常用作卷积层的激活函数。因此,每个核通过修正的线性函数,产生了输入的不同表示形式,并独立地连接到下一层。
与全连接层不同,在卷积层上,唯一需要学习的权值是卷积核的权值,这种权重数量的减少有利于网络泛化性能的提升。输出层使用softmax激活函数,这是分类任务的常见选择,因为它可以将预测转化为非负值,并将其标准化,从而得到类的概率分布: s o f t m a x k ( x ) = e W k T x ∑ j = 1 n e W j T x softmax_k(x)=\frac{e^{W_k^Tx}}{\sum_{j=1}^ne^{W_j^Tx}} softmaxk(x)=∑j=1neWjTxeWkTx其中, x x x是输入向量, n n n是输出层的节点个数(或者说类别个数) W k W_k Wk是第k个节点的权重。
作为目标,作者考虑了由交叉熵误差损失组成的下列函数,并加入了正则项:
其中, y n ^ ≡ ψ ( w ⋅ x n ) \hat{y_n} \equiv \psi(\mathbf{w}\cdot\mathbf{x}_n) yn^≡ψ(w⋅xn)是网络的输出, ψ ( ⋅ ) \psi(\cdot) ψ(⋅)是激活函数, x n x_n xn是第n个样本, w \mathbf{w} w是权重, y n y_n yn是目标标签, S h i f t ( ) ˙ Shift(\dot) Shift()˙是将数组的元素向左移动一个位置的操作。除了标准L2范数外,作者还使用了“近似L2范数”,这有助于网络保持相邻的输入变量(即振动光谱数据的波数)之间的相关性,以惩罚相邻权重之间的巨大差异。对于振动光谱数据,不期望这些变化,因为频谱在某个波数上的值依赖于相邻的波数值。
作者使用的是一维核,因为每个样本(即频谱)都表示为一维数组(向量)他们还使用了一个全链接的输出层(在卷积层之后)它的单元数等于类的数量。在这个输出层上使用softmax激活函数可以获得网络对输入样本的类预测。在神经网络的训练过程中,使用随机梯度下降(SGD)更新规则这一标准技术。
对于卷积核和输出层的权重的初始化,作者选择的是“Glorot”初始化,因为可以通过跟踪用于随机化的种子来复制初始化。因此,模型的参数及其值的范围是:
为了找到参数值的最佳组合,作者在训练阶段使用随机网格搜索交叉验证框架(RGS-CV)来选择精度最高的配置。然后利用所有训练数据对该模型进行了改造,并将其应用于试验数据中,获得了较好的分类精度。
他们将得到的方法称为CNNVS,即用于振动光谱数据分类的卷积神经网络。
建立高质量的分类模型和识别潜在的重要光谱区域是振动光谱数据分析的两个重要方面。偏最小二乘回归-线性判别分析(PLS-LDA)等方法可以通过在潜在变量空间中表示输入特征来寻找重要的输入特征。虽然PLS-LDA可能提供不可靠的适应症,尤其是对于大量不相关数据的数据变体,但是它可以反馈变量重要性,这使得它在化学计量学数据分析中的受欢迎程度超过了更强大的方法,如具有非线性内核的支持向量机(如SVM,其特征相关性无法从模型中轻易量化)
将特征选择过程集成到CNNVS中来识别重要的光谱区域是很简单的。训练后的CNN卷积层的每个输出节点对应一个应用于频谱特定区域的核。因此,可以将特征选择算法应用到这种输出中去寻找重要的特征;然后将这些特征返回到光谱的相应区域。
在作者的分析中,使用了稳定性特征选择。稳定性特征选择是将特征选择应用于随机选取的数据子集(即训练后的CNNVS卷积层的输出)该特征选择是通过重新训练CNNVS的最后一层来执行的,该层可以被视为逻辑回归网络,该逻辑回归网络具有响应于光谱的不同子集的卷积层的输出作为输入,以及类别预测作为输出。每次再训练后,选择系数为正的特征。然后,通过考虑每个特征被选择的次数,合并子集上的结果,从而为每个特征生成一个分数。
稳定性特征选择的动力来自于该方法在特征数远大于样本数的问题中的有效性,这是大多数振动光谱数据集的情况。我们称之为识别重要光谱区域的结果方法CNNVSfs,卷积神经网络用于包含特征选择的振动光谱数据分类。
如第2节所述,可以在一个卷积层上使用多个内核。目的是利用不同的核来捕捉光谱的不同性质。它们数量上的限制主要与过拟合有关,因此作者使用模型选择方法RGS-CV(在第2节末尾描述过)来排除那些对于所考虑的数据集而言具有太多卷积核的模型。
对于解释光谱上的伪影,以及推测每个核的行为与已知的预处理方法之间的关系,需要对学习到的核进行分析。
为了比较评估方法的性能,作者收集了一些公开可用的振动光谱数据集进行分类。他们将CNNVS与PLS-LDA进行了比较。PLS-LDA是一种具有一定预测精度和可解释性的模型,因此常用于化学计量数据分析。作者还考虑了Logistic回归,一个非常简单的神经网络,没有隐藏层,输入通过一个激活函数 ϕ ( t ) = 1 1 + e − t \phi(t)=\frac{1}{1+e^{-t}} ϕ(t)=1+e−t1 直接传递到输出层。因此,将CNNVS与Logistic回归进行比较,可以研究使用卷积隐层的有效性。最后,作者还使用了kNN,一个不需要训练的简单方法。
作者进行了两个系列的实验:
该文章考虑了以下振动光谱数据集:
下表对不同数据集的特征进行了概述。对于片剂、咖啡、肉类和橄榄油数据集,在没有预先定义的测试集的情况下,作者构建了一个训练集,包含随机选择的67%的样本,其余33%的样本作为测试集。
作者采用了标准偏最小二乘线性判别分析(PLS-LDA)方法,逻辑回归(LogReg)和k近邻(kNN)
偏最小二乘是一种回归方法,其目的是将一个包含n个样本和p个变量的数据集表示为一个潜在变量 T = [ t 1 , t 2 , . . . t a ] T=[t_1,t_2,...t_a] T=[t1,t2,...ta] 的空间,方向与响应既有高方差又有高相关性。然后使用这样一组n个响应表示来拟合所有样本。这与主成分回归(PCR)形成了鲜明的对比,后者只寻找那些能使方差最大化的潜在变量。已有研究表明,当样本的组内变异性大于组间变异性时,以及需要减少变量时,PLS才是有用和有效的。这是许多化学计量数据集的情况,因为它们通常包含许多变量和相对较少的样本。
Logistic回归可以看作是CNN的最后一层,换句话说,它是一个非常简单的神经网络,没有隐藏层。因此,将CNN与包含L2正则的逻辑回归进行比较,可以直接研究卷积层的重要性。分类目标函数由交叉熵误差损失和L2正则项组成:
其中, y n ^ ≡ ψ ( w ⋅ x n ) \hat{y_n} \equiv \psi(\mathbf{w}\cdot\mathbf{x}_n) yn^≡ψ(w⋅xn), ψ ( ⋅ ) \psi(\cdot) ψ(⋅)为激活函数, x n x_n xn 为第n个样本, w w w为输出权值, y n y_n yn为目标标签。换句话说,这是一个简单的网络(需要调优的参数很少)因此它提供了一个可以与CNN进行比较的基线。使用RGS-CV网络进行学习的超参数为:
训练过程中使用SGD更新权重。
k近邻(kNN)是一种非常简单而著名的分类方法。新样本的分类方法是在特征空间中选择属于k个最近邻的最频繁的类。作者用来评估样本之间距离的度量标准是曼哈坦距离和欧氏距离。考虑了 k ∈ [ 3 , 10 ] k\in[3,10] k∈[3,10],如前所述,k的最佳值与最佳度量方法使用RGS-CV进行选择。
光谱数据通常包含多个数据伪影。这些数据伪影表示与研究样本无关的数据中的变化。对于振动光谱数据,最常见的数据伪影是基线、光散射效应和仪器噪声。这种变化与响应变量无关,因此通常在实际数据分析之前需要通过数据预处理将其从数据中删除。作者采用了一种顺序的数据预处理方法,对数据连续应用了一系列预处理方法。这种连续应用的预处理方法的选择称为预处理策略。作者的预处理策略包括四个预处理步骤,每个步骤都与一些可能的方法相关联:
注意,方法的顺序与这里给出的顺序是固定的,因为这是最常用的预处理方法顺序。meancenter总是应用于数据。
数据集预处理方法的最佳组合可能取决于所考虑的分类模型的类型。因此,对于每一个数据集和方法,都选择了最佳的预处理策略。考虑了上述方法的所有组合( 7 ∗ 10 ∗ 10 ∗ 7 = 4900 7*10*10*7=4900 7∗10∗10∗7=4900 种组合)选择了对训练数据进行十折交叉验证精度最高的组合。下表总结了CNN的预处理策略。
下表展示了测试集中分类方法的精度:对于每一种方法,选择使用交叉验证获得最高精度的模型。
所述结果为分类方法在预处理数据(pre)和原始数据(raw)上的应用。使用3.3中描述的方法得到方法与数据集每次组合所采用的预处理策略。
在非预处理数据上,CNNVS的准确率显著高于PLS-LDA (p值<0.001)平均提高24%。它也比Logistic回归(p值<0.001)有6%的平均改善。除了Raman tablet数据集,CNNVS总是优于逻辑回归。观察这个数据集与其他数据集的差异,在学习曲线、学习卷积核或原始光谱(在本例中与其他拉曼光谱进行了比较)方面没有发现大的差异。
预处理数据的结果表明,与非预处理数据相比,PLS-LDA的性能得到了提高,平均准确率提高了27%。在这种情况下,CNNVS比PLS-LDA(p值<0.001)和Logistic回归(p值<0.001)具有更好的准确性。PLS-LDA的平均精度仍然低于CNNVS(比CNNVS低7%)在考虑的大多数数据集中,有一个预处理策略使CNNVS优于PLS-LDA。事实上,任何使用优化预处理策略的方法的性能都显著优于不使用预处理的方法。换句话说,预处理对于数据分析确实是一个有价值的补充,不管使用什么数据分析方法。
结果表明,与PLS-LDA相比,CNNVS对预处理的依赖性较小。为了进一步证实这个结果,使用直方图比较了CNN和PLS-LDA的许多不同预处理策略的准确性。在Beers数据集上的结果如下图所示。直方图显示,PLS-LDA原始数据的精度与预处理可能达到的最佳精度相差甚远,而CNN的这种差异较小。此外,CNN获得的精度值范围小于PLS-LDA。这说明CNN对数据预处理的依赖程度比PLS-LDA低。
然而,适当的预处理仍然能够提高CNN模型的精度。对于Logistic回归和CNN来说,预处理在大多数情况下是适得其反的(即导致精度低于原始数据)这说明选择合适的预处理方法是数据分析的一个重要步骤。在其他数据集中也观察到类似的趋势。kNN对原始数据执行得相当好,但它似乎没有从特别的预处理中获益。
作者还研究了CNNVS学习到的核,以便可能将它们与众所周知的预处理方法联系起来。虽然没有进行全面的调查,但至少给出一个解释学习到的核的示例是有趣的。例如,CNNVS对beer非预处理数据集学习到的非零元素数量较多(见下图)说明它们在进行一种平滑处理,而它们的线性趋势表明它们在执行正向和反向求导。
模型选择方法在交叉验证的基础上为卷积层选择了两个核,以达到最高的精度。注意,这两个核并不是冗余的,因为在卷积层之后需要对非线性进行校正。因此,第一个核在强度上升时输出非零值,而第二个核在强度下降时输出非零值。
如果考虑使用预处理数据学习到的核,情况就不那么清楚了,CNNVS似乎也学习了与更高阶导数对应的核。模型选择方法为卷积层选择了四个内核,而不是像非预处理数据一样选择两个核。这表明,使用优化设计的预处理可以让CNNVS在不过拟合的情况下使用更多的核,从而达到更高的精度。
CNNVS学习其他数据集的核也表现出类似的行为,只有少数例外,这表明对于检查过的非预处理数据,需要一个平滑派生核。
在化学计量学数据分析中,模型解释是一个非常重要的方面。因此,识别出与样本的鉴别化学性质相对应的重要光谱区域是至关重要的,例如物质的存在或其浓度。在接下来的部分中,将比较CNNVSfs在进行最佳预处理和不进行预处理的情况下检测到的重要区域。
关于beers和tablets的一些重要光谱区域的数据集已其他文献中进行过研究。因此,作者也对这些数据集,利用CNNVSfs来研究寻找重要的光谱区域。
已有文献表明这一数据集最重要的光谱区域在1000-1200 c m − 1 cm^{-1} cm−1
CNNVSfs在非预处理数据集上的应用结果识别出的光谱区域为1000-1200 c m − 1 cm^{-1} cm−1(见下图右侧)CNNVSfs在预处理数据集上的应用识别出光谱区域有两个,其中包括一个在 1000和2000 c m − 1 cm^{-1} cm−1中间的一个区域(见下图左侧)因此,使用预处理或非预处理输入光谱训练的CNNVSfs都突出了重要区域的一部分。
在未经预处理的NIR Tablets数据集上,CNNVSfs在7700、8850、9500和10500 c m − 1 cm^{-1} cm−1 左右的波数处识别到不同的光谱区域(见下图右)特别是在波数为 8830 c m − 1 cm^{-1} cm−1 的区域,含有已知活性物质的峰值。该峰也由CNNVSfs在预处理后的输入光谱上得到了体现(见下图左)。因此,对于这个数据集,使用预处理或非预处理输入光谱训练的CNNVSfs都突出了重要的区域。
在Raman Tablets数据集中,重要区域来自于活性物质的存在,包括源于活性物质中氰化物( C ≡ N C\equiv N C≡N)基团的波数为 2233 c m − 1 cm^{-1} cm−1的峰,在Tablets光谱中可以看到来自活性物质的几个其他峰(如波数为1614和3075 c m − 1 cm^{-1} cm−1)以往在这个数据集上使用的PLS分类方法只达到了较低的准确性,因此,以往没有进一步研究识别出的重要光谱区域。
在未进行预处理的数据集中,CNNVSfs在波数约 350、1700和3100 c m − 1 cm^{-1} cm−1 之间选取光谱区域(见下图右)从而识别出活性物质的峰,但CNNVSfs认为主峰在波数2233 c m − 1 cm^{-1} cm−1 处并不重要。在预处理数据集上,CNNVSfs选择了2233(活性物质的主峰,见下图左)和1900 c m − 1 cm^{-1} cm−1 左右的波数之间的光谱区域。因此,在这种情况下,对输入光谱进行的最优预处理有助于识别出重要区域。
作者设计了一种简单的基于CNN的振动光谱数据分类方法,称为CNNVS,并展示了如何增强它以选择重要的光谱区域。与PLS-LDA和Logistic回归相比,CNNVS在未进行预处理和预处理数据上的应用都具有更好的精度。结果表明,与标准的PLS-LDA方法相比,CNNVS对预处理的依赖性较小,对预处理数据的处理效果较好。需要更多的振动光谱分类数据集,看看这些强结果是否也适用于不同的设置。
一般说来,振动光谱数据具有相对较少的样本和较多的特征。为了提高模型的精度,增加数据大小的一种技术是数据增强,即添加扰动样本。该技术在CNN图像分析中得到了广泛的应用。然而,对于振动光谱数据,它并没有产生有益的影响。初步实验表明,这可能是由于不同的数据需要不同的预处理策略组合,在这种情况下很难对噪声进行建模。
学习到的CNN核函数执行一种平滑和导数滤波。这将意味着这些过滤器不需要作为单独的预处理步骤,从而简化了最佳预处理方法的选择。如果CNNVS真的能够通过如此简单的预处理选择始终达到类似的精度,这将是一件有趣的事情。
本文研究了振动光谱数据的分类问题。未来可以考虑使用回归方法,将研究扩展到振动光谱数据的成分分析,这将是有意思的研究。
更详细的实验结果请查看该文章的支撑数据。