朱紅梅,駱德漢,莫卓峰
(廣東工業(yè)大學 信息工程學院,廣東 廣州510006)
嗅覺是人類的一種化學感官,它通過感知空氣中的化學物質(zhì)來了解周圍的環(huán)境。以往的研究表明,感知到的化學刺激與生物嗅覺系統(tǒng)復雜的組織結構有關[1-2]。嗅覺上皮內(nèi)的嗅覺受體神經(jīng)元與分子結合并向嗅覺神經(jīng)提供電信號時被激活,信號被傳送到嗅球并在嗅球上形成圖案。然后,根據(jù)嗅球上的反應模式,在大腦進行與情緒和記憶相關的綜合信息加工[3]。由于每種類型的嗅覺受體具有不同的分子選擇性,因此出現(xiàn)在嗅球上的刺激模式因分子而異。也就是說,對氣味的印象也因分子而異。
氣味感官評價測試已被廣泛采用,獲得通過語言描述符量化的嗅覺描述符。嗅覺描述符的提取不僅在食品和化妝品行業(yè),而且在其他行業(yè)的消費產(chǎn)品評價[4]中都是必不可少的。對大量化學品進行感官評估測試需要大量的時間和資源,本身是不切實際的。因此,本研究的目的是通過有限的樣本分析,建立數(shù)學模型來預測嗅覺描述符。質(zhì)譜是化學物質(zhì)具有代表性的物理化學性質(zhì)之一,早期的研究闡明了化學物質(zhì)的氣味與其化學結構之間的關系[5]。大量的質(zhì)譜數(shù)據(jù)可以用來構建嗅覺描述符的預測模型。一些研究通過主成分分析(PCA)和非負矩陣分解(NMF)等線性建模方法報道了化學物質(zhì)氣味特征與其理化參數(shù)之間的關系[6-7]。這些研究表明,一些基本參數(shù)確實會影響人們對氣味的感知。由于質(zhì)譜數(shù)據(jù)本質(zhì)上是高維稀疏的,雖然PCA 和NMF 是眾所周知的預測建模方法,但它們不適合高維稀疏的數(shù)據(jù)結構。因此,很難得出這些線性建模技術與系統(tǒng)完全兼容的結論。深度學習建模是非線性建模中最權威的方法之一,具有廣泛的應用前景。本文設計AE-SVM 來對質(zhì)譜數(shù)據(jù)進行提取特征并完成對嗅覺描述符的分類。
自動編碼器(Autoencoder,AE),作為一種在半監(jiān)督學習或無監(jiān)督學習中常用的神經(jīng)網(wǎng)絡模型,可以很好地學習到數(shù)據(jù)的隱含特征。從直觀上來看,由于AE 模型可以有效地提取出數(shù)據(jù)的特征,AE 模型可以直接用于特征降維[8]。一般而言,AE 模型由編碼器(encoder)和解碼器(decoder)兩個部分組成。在訓練過程中,編碼器的輸出通常作為解碼器的輸入,將解碼器的輸出值(即自動編碼器的目標值)設置成與編碼器的輸入值 (即自動編碼器的輸入值)相等。通常采用反向傳播算法訓練AE 模型并得到最優(yōu)參數(shù)。
支持向量機(Support Vector Networks,SVM)最初被CORTES C 等人應用到機器學習的分類任務中[9]。其原理如圖1 所示,支持向量機使用最大化超平面來解決二分類問題。隨著機器學習的發(fā)展,如今,支持向量機在多分類問題上也能獲得很好的效果,廣泛用于分類、回歸和異常值檢測的監(jiān)督學習。
一般來說,支持向量機在多分類問題上有兩種方法,分別是成對分類方法(one-against-one)[10]和一類對余類方法(one-against-all)[11]。假設訓練集有M個類別,成對分類方法則在每兩個類之間構造一個二分類支持向量機(binarySVM)。如圖2 所示,在一個3 分類問題中,d12、d13、d23表示二分類支持向量在1 類和2 類、1 類和3 類以及2 類和3 類數(shù)據(jù)之間的決策邊界。對于第i類和第j類數(shù)據(jù),其求解一個二分類支持向量機為:
圖1 SVM 原理
其中,上標表示是i類和j類之間的參數(shù);t表示i類和j類的并集中樣本的索引;表示輸入空間到特征空間的非線性映射。第i類和第j類的決策函數(shù)為:
圖2 SVM 成對分類方法
最后對新的數(shù)據(jù)投票進行分類。而一類對余類方法則是對每一個類作為類,其余所有類作為類構造二分類支持向量機,如圖3 所示。兩種方法各有優(yōu)缺點,一類對余類方法因為訓練集是一對多,容易存在偏差。經(jīng)過HSU C W 等人的比較[11],成對分類方法適合實際使用,因此,本文使用這種方法對質(zhì)譜數(shù)據(jù)進行分類。
圖3 SVM 一對余類方法
本研究的AE-SVM 對嗅覺描述符分類流程如圖4 所示。將數(shù)據(jù)集分為訓練集和測試集,這個數(shù)據(jù)集將在2.1 節(jié)進行介紹。訓練集經(jīng)過數(shù)據(jù)預處理后放入設計好的AE 模型中進行訓練,數(shù)據(jù)預處理的過程和AE 模型將分別在2.2 節(jié)和2.3 節(jié)進行介紹。在保存之后,評估AE 模型的性能并保存性能最好的參數(shù),再使用AE 模型得到訓練集降維后的特征,并訓練SVM 模型。最后得出AE-SVM 模型并使用測試集評估該模型,得到的結果呈現(xiàn)在2.5 節(jié)中。
圖4 AE-SVM 流程圖
質(zhì)譜是代表分子結構信息的物理化學性質(zhì),以強度與m/z(質(zhì)荷比)的關系圖形式給出。給定相同的測量條件,可以為每個分子確定質(zhì)譜。因為可以在統(tǒng)一條件下執(zhí)行許多質(zhì)譜測量,可以使用大規(guī)模質(zhì)譜數(shù)據(jù)集。這項研究中使用的質(zhì)譜數(shù)據(jù)集來源于美國國家標準技術研究所(NIST)開源數(shù)據(jù)[12]。該數(shù)據(jù)庫由100 000 多種通過70 [eV]電子電離獲得的質(zhì)譜化學物質(zhì)組成。m/z 低于50 的強度通常源自無味的分子,例如氧氣、氮氣和二氧化碳,而高的強度源自揮發(fā)性低且對氣味特性影響很小的分子。因此,本研究從原始數(shù)據(jù)集中提取了51 至262 m/z 的強度。
西格瑪奧德里奇(Sigma-Aldrich)已發(fā)布了一份化學品目錄,其中使用數(shù)百種描述符,對1 000 多種單分子氣味物質(zhì)進行了分析[13]。在目錄中,每種物質(zhì)的氣味特征通過約150 種不同的描述符來描述,如balsam(香脂)、caramel(焦糖)、spicy(辛辣的)等。盡管目錄中的信息有時可能不足以詳細描述化學物質(zhì)的氣味,但由于它描述了化學物質(zhì)的氣味,因此它仍然是一種有價值的工具。
以Sigma-Aldrich 目錄和NIST 數(shù)據(jù)集中列出的化學物質(zhì)為例,共獲得了999 個樣品,去除沒有收集到對應質(zhì)譜的cas 號,最終得到了987 個樣品,每個樣品的提取了51 ~262 m/z 的強度,最終得到987×212 的質(zhì)譜數(shù)據(jù)。從Sigma-Aldrich 目錄的數(shù)據(jù)集中的150 個描述符中選擇136 個(因為其他14 個描述符在目錄中只出現(xiàn)了3 次或更少)。因此獲得了987 個cas 號對應136 個嗅覺描述詞,構建987*136 維的矩陣數(shù)據(jù)。隨后找出每個嗅覺描述詞對應cas 號數(shù)量大于50 的質(zhì)譜數(shù)據(jù)和嗅覺描述符,最終本文實驗以9 種嗅覺描述符作為分類目標。
在第2.1 節(jié)中獲得的數(shù)據(jù)是不平衡數(shù)據(jù),樣本太小的類無法提取到太多特征,導致很難從中提取規(guī)律。過度依賴有限數(shù)量的樣本來訓練的模型很可能會導致過擬合的問題出現(xiàn)。本文使用SMOTE 過采樣來解決嗅覺描述符標簽數(shù)據(jù)不均衡的問題,通過增加采集數(shù)量較少類別的樣本數(shù)量來實現(xiàn)平衡。SMOTE 過采樣改進的隨機過采樣方法,克服了隨機過采樣在訓練模型后使得模型泛化性能不足的問題。通過向少數(shù)類添加隨機噪聲、干擾數(shù)據(jù)或特定規(guī)則來生成新的合成樣本。
由于質(zhì)譜數(shù)據(jù)數(shù)量較大,區(qū)間范圍較大,很多數(shù)據(jù)進行補0 處理,會影響到數(shù)據(jù)分析的結果。為了消除數(shù)據(jù)范圍的影響,需要對數(shù)據(jù)進行歸一化處理。原始數(shù)據(jù)經(jīng)過數(shù)據(jù)歸一化處理后,各數(shù)據(jù)處于同一數(shù)量級,利于后續(xù)實驗的進行。本文使用離差標準化,如式(6)所示,對原始數(shù)據(jù)進行線性變換,以得到0 到1 之間的值:
質(zhì)譜數(shù)據(jù)集的數(shù)據(jù)是高維數(shù)據(jù),每個樣本有數(shù)百個維度,噪聲多,計算量大,會使實驗結果的精確度降低。這個數(shù)據(jù)集有接近75%的數(shù)據(jù)標記為0,使得整體樣本非常稀疏。當樣本數(shù)量有限時,模型的預測能力會隨著維數(shù)的增加而降低。
降維,即特征提取,是神經(jīng)網(wǎng)絡中常用的一種方法,它可以在實現(xiàn)有效投影函數(shù)的同時,避免因高維而產(chǎn)生的問題。自動編碼器是一種常用的降維方法,它通過無監(jiān)督學習輸入數(shù)據(jù)的隱含特征,同時可以解構出原始輸入數(shù)據(jù)。由于存在“維數(shù)災難”的問題,當特征向量的大小沒有得到優(yōu)化時,編碼器的性能會下降。本研究使用的自編碼器有五層,其中三層為隱藏層,如圖5 所示。使用PyTorch 進行建模,將編碼器的輸出設置為50,采用ReLU 函數(shù)作為每層網(wǎng)絡的激活函數(shù)。優(yōu)化器選用Adam 優(yōu)化器,并將學習率設置為0.001。AE 模型在訓練完之后,保存編碼器,用于提取質(zhì)譜數(shù)據(jù)特征。具體結果和分析請看2.5 節(jié)內(nèi)容。
圖5 構建AE 模型流程圖
將實驗數(shù)據(jù)通過自動編碼器進行特征提取以后,原本的212 維原始質(zhì)譜數(shù)據(jù)將轉化為50 維的特征向量,然后使用SVM 算法進行分類。本文使用Python 調(diào)用sklearn 機器學習庫中的SVM 函數(shù)進行建模。選擇高斯核函數(shù)作為SVM 的核函數(shù),并將gamma 參數(shù)設置為auto。在5 折交叉驗證后,保存交叉驗證效果最佳的SVM 模型作為最終測試集使用的分類模型。
本文將AE-SVM 模型應用于嗅覺描述符的分類中,將數(shù)據(jù)集按照3:1 的比例劃分為訓練集和測試集。首先,通過AE 模型得到原始質(zhì)譜數(shù)據(jù)的50 維特征。如圖6 所示,使用均方誤差(MSE)作為損失函數(shù),利用訓練集數(shù)據(jù)對模型進行訓練。由圖6 可以看出,本實驗設置300 個epoch 進行迭代。隨著迭代次數(shù)的增加,AE 模型的損失函數(shù)下降逐漸緩慢。epoch大約為200 的時候,誤差下降到了0.014 6 且函數(shù)趨于收斂。可以看到,AE 模型的訓練過程符合預期。
圖6 AE 模型訓練損失
為了驗證AE 模型對質(zhì)譜數(shù)據(jù)進行特征提取的性能,本文構建了PCA、LDA 和TSNE 3 種主流的機器學習特征提取方法與AE 模型做對比。表1 表示了測試集經(jīng)過分別經(jīng)過PCA、LDA、TSNE 和AE 特征提取之后,經(jīng)由SVM 模型進行分類的結果??梢郧逦乜吹剑?jīng)過AE 對質(zhì)譜數(shù)據(jù)進行特征提取之后,SVM 對嗅覺描述符的分類準確度達到了85.71%,明顯高于PCA+SVM、LDA+SVM 和TSNE+SVM 的71.43%、67.86%和75%。這表示本文設計的AE 模型能準確地從質(zhì)譜數(shù)據(jù)中提取出主要的特征,并且效果優(yōu)于其他方法。
為了更好地驗證SVM 模型對質(zhì)譜數(shù)據(jù)特征預測嗅覺描述符的效果,本文構建了KNN 和GaussianNB兩個常用的機器學習分類器與SVM 做對比。如表2所示,質(zhì)譜數(shù)據(jù)經(jīng)過AE 模型進行特征提取之后,分別使用SVM、KNN 和GaussianNB 進行分類。從表2中看出,SVM 對AE 模型提取的質(zhì)譜數(shù)據(jù)特征具有更好的預測效果,其準確度達到了85.71%。而KNN 和GaussianNB 對質(zhì)譜數(shù)據(jù)特征預測嗅覺描述符的準確度僅有76.43%和78.57%。AE-SVM 模型明顯更適合質(zhì)譜數(shù)據(jù)預測嗅覺描述符。另一方面,由于質(zhì)譜數(shù)據(jù)高維且稀疏的特點,在不使用特征提取的情況下,僅使用質(zhì)譜原始數(shù)據(jù),單獨使用SVM、KNN 和GaussianNB進行嗅覺描述符預測的準確度分別僅有27.14%、30.71%和14.29%,遠遠無法達到預測效果。
表1 特征提取模型準確度對比
表2 模型分類準確度對比
本文提出了一種AE-SVM 分類模型,該模型通過輸入質(zhì)譜數(shù)據(jù)預測其所屬的嗅覺描述符類別。AE 算法將高維稀疏的質(zhì)譜數(shù)據(jù)進行特征提取,與SVM 算法相結合,成功使用了質(zhì)譜數(shù)據(jù)對嗅覺描述符進行分類并獲得不錯的分類效果,使其達到了85.71%,遠優(yōu)于其他算法。