?

基于前饋神經網絡的預測分類器

2021-10-15 03:33黃麗婷
數字通信世界 2021年9期
關鍵詞:分類器神經元準確率

黃麗婷

(泉州信息工程學院軟件學院,福建 泉州 326000)

0 引言

深度學習經歷長時間的發展而孕育出各種各樣的人工神經網絡技術[1]。就像人類要想成為一個好的決策者可以通過經驗進行學習,人工神經網絡也可以通過對數據的學習而成為一個好的分類器。

在深度學習中,雖然人工神經網絡看起來很復雜,其節點、層數和參數的數量繁多,但神經網絡的核心組件只有層、模型、損失函數和優化器這四個部分。此外,在深度學習實際項目中,為了讓人工神經網絡模擬人類的學習行為,需要提供大量數據樣本。在此之前,還需要對數據樣本進行預處理工作,這一系列的前置工作必不可缺[2]。

深度學習領域的技術框架主要為Keras和PyTorch,其中Keras是Python中的高級深度神經網絡API,它基于Tensorflow、CNTK或Theano框架運行[3]。而另一種主流的深度學習框架Pytorch雖然晚于Keras出現,但其發展十分迅速。PyTorch 1.0版本不但優化了原有內容,并且整合了Caffe2而成為十分熱門的深度學習框架[4]。

近年來,深度學習中的各類人工神經網絡模型已被大規模應用于人臉檢測、物體檢測、語音識別、機器翻譯、自動駕駛等各種各樣復雜的任務[1],而深度學習在醫療領域的應用也是日新月異。隨著可用于機器學習的醫療領域數據(如WHO全球衛生觀察站數據)被大量公開于網絡,大量醫療數據都可以通過網絡下載而獲取,這為醫療領域的深度學習模型研究開發提供了必要的大數據基礎。

在對醫學數據分析和疾病的識別與預測上,深度學習的計算模型也具有十分重要的應用意義,例如:對于骨質增生、椎間盤突出、脊椎滑脫等具有大量患者的骨科疾病,深度學習的計算模型可以為這些疾病的分類、識別和預測提供高效的參考信息。

1 前饋神經網絡

機器學習中的人工神經網絡(ANN)是模仿人腦的生物神經網絡結構來進行構建,它具有節點且節點間具有內部連接的計算網絡。其中的節點被編程為具有相似于真實神經元的表現,因而被稱為人工神經元。[1]

深度學習則是在機器學習的基礎上建立一套更為復雜的人工神經網絡模型,其中的一種經典模型叫作前饋神經網絡(feedforward neural network)[5],它可以讓計算機通過較為簡單的概念來構建復雜的模型。前饋神經網絡的本質是一種數學函數,它能將一組輸入數據映射成輸出數據,這樣復雜的函數是由許多較簡單的函數復合而成[4]。

例如,有三個函數 ,他們復合在一起形成如下函數。

式中,f(1)代表深度前饋網絡的輸入層;f(2)代表深度前饋網絡的隱藏層;f(3)代表深度前饋網絡的輸出層。這個例子描述了一個最簡單的前饋神經網絡模型,而更為復雜的前饋神經網絡往往具有多個隱藏層,這些隱藏層的維度決定了神經網絡的寬度。

一個多維的前饋神經網絡往往由輸入層xi、隱藏層hnj和輸出層yk構成(其中hnj的下標n為隱藏層數量,而下標j為第n隱藏層的神經元數量)。在前饋神經網絡中,其隱藏層和輸出層的輸入張量都需要通過線性函數來進行計算。對于第n隱藏層的第j個神經元來說,假設其輸入張量的數量為i,那么其相應的輸入線性函數f(nj)(x)如下所示。

該函數f(nj)(x)是典型的線性回歸函數[6],其中xi為輸入層張量,而wij則代表不同層神經元之間的連接權,wij也是模型需要通過訓練來學習的參數。然而,在計算該神經元的輸出值時,前饋神經網絡則采用非線性函數來進行計算。在隱藏層和輸出層中,所有的神經元都必須采用非線性的激活函數來計算其輸出值。例如,對于第n層隱藏層上的第j個神經元,其激活函數可以表示為以下公式。

如該公式所示,隱藏層上的任何一個神經元的輸入值為:f(nj)(x)與閾值θnj之間的差值,該差值將作為變量被代入激活函數中來計算其輸出值,例如,第n層隱藏層上的第j個神經元的輸出值也正是其激活函數的計算結果。

而輸出層yk上的神經元,采用與隱藏層神經元類似的算法來對其輸入值和輸出值進行計算。就前饋神經網絡的分類器而言,輸出層神經元的輸出值y=f(*)(x)代表著輸入層的張量通過前饋神經網絡模型而被映射成某一個類別y。

而在模型訓練中,作為分類器的前饋神經網絡一般采用監督學習的方式,即使用有標簽的數據集來訓練模型。在監督學習的過程中,首先要設計深度學習的靜態結構,如構建前饋神經網絡模型、選擇訓練需要的損失函數和優化器等。在此基礎上,模型的訓練還包括一系列動態的實現過程,如預處理數據集、前向傳播、反向傳播和優化模型等。

1.1 靜態結構

運用前饋神經網絡構建分類器時,必須設計好以下靜態結構。

(1)層(Layer):設計輸入層、隱藏層和輸出層的神經元結構。

(2)模型(Model):設計由層構成的運算模型,先設計好每一層的輸入線性函數,也即預設連接權wij等的初始值;然后,選擇隱藏層hnj和輸出層的激活函數;對于分類器模型,softmax函數或是ReLU函數都可以作為激活函數。

(3)損失函數(Loss Function):用于計算模型的預測值與真實數據之間的誤差,如均方差函數和分類交叉熵函數;分類器往往采用交叉熵函數計算損失;如基于N個樣本數量和M種輸出類別,其交叉熵損失函數L如下所示。

(4)優化器(Optimizer):使損失函數誤差值最小化的算法,好的優化器能迅速通過損失函數學習到適合的連接權w 和閾值θ ;常用的優化器有隨機梯度下降算法(SGD)和自適應優化算法等[8]。

1.2 實現過程

在實現前饋神經網絡模型的過程中,還必須包括以下執行步驟。

(1)預處理數據(Preprocess Data):載入相關數據集,根據評估方法對數據集進行劃分,例如根據留出法(Holdout)將數據集分為訓練數據和測試數據。

(2)定義模型(Define Model):根據前饋神經網絡的靜態結構來逐層定義神經元數量、激活函數,以及輸出層神經元對應的預測分類標簽。

(3)構建/編譯模型(Compile Model):根據所定義的模型,初始化連接權值,并指定損失函數、優化器和評估度量。

(4)前向傳播(Forward Propagation):在將輸入值xi運算成輸出值y 的過程中,數據在網絡上向前傳送;輸入值 xi提供初始數據,并通過模型層層傳遞,經過每一層隱藏層的運算,最終在輸出層上輸出為預測類型y。

(5)反向傳播(Back Propagation)[9]:也被稱為誤差逆傳播,是指將輸出值的誤差反向傳遞給隱藏層的神經元,這些誤差數據可以通過優化器來幫助優化隱藏層神經元的相關參數,優化的內容包括模型的連接權w和閾值θ。

(6)模型評估(Model Evaluation):對于已經完成訓練的分類器模型,可以使用預先設置的測試數據集來對其進行測評,以測試分類器的準確率。

(7)可視化結果(Visualization):對于神經網絡的模型結構、訓練過程和評估結果,使用可視化工具以圖像的形式進行展示。

2 實驗及其結果

2.1 實驗環境

本實驗的開發環境如下所述。

(1)操作系統為macOS Catalina 10.15.6系統。

(2)集成開發環境為Anaconda Navigator 1.9.12中的Spyder 4.1.5。

(3)開發框架為基于Tensorflow 2.0的Keras深度神經網絡框架。

2.2 實驗數據集

本實驗所采用的骨科患者生物力學特征數據集的原始數據集來自UCI ML存儲庫(http://archive.ics.uci.edu/ml),其后經Kesci數據平臺整理而形成CSV格式文件。

在該數據集中,每個患者的疾病特征由如下的骨盆和腰椎的形狀和方向(每個為一列)所派生出的6個生物力學屬性表示。

(1)pelvic incidence:骨盆入射角

(2)pelvic tilt:骨盆傾斜

(3)lumbar lordosis angle:腰椎前凸角度

(4)sacral slope:骶骨傾斜角

(5)pelvic radius:盆腔半徑

(6)grade of spondylolisthesis:脊椎前移的等級

在該數據集中,每個患者的疾病數據分類則有以下三種情況。

(1)Hernia:椎間盤突出

(2)Spondylolisthesis:脊椎前移

(3)Normal:正常

2.3 實驗模型設計

基于以上前饋神經網絡的理論,本文為具有6個輸入特征數據和3個輸出分類數據的預測分類器設計了如圖1所示的前饋神經網絡模型。

圖1 分類器模型

在該模型中,輸入層(xi)有6個輸入神經元,對應骨科疾病數據集中的6個生物力學屬性;而輸出層(yk)有3個輸出神經元,對應骨科疾病分類。它們之間存在3層隱藏層(hnj),這3層隱藏層分別具有8個神經元(h11~h18)、6個神經元(h21~h26)和4個神經元(h31~h34)。

在該模型中,所有的初始連接權在[-1,1]的范圍內通過正態分布初始化獲取。其隱藏層的激活函數是ReLU函數(線性整流函數),而輸出層則采用softmax函數作為激活函數,它們的具體公式和輸出值范圍如表1激活函數所示。

表1 激活函數

本文將通過實驗來對該分類器模型進行訓練,在實驗中,將采用不同的優化器來比較其反向傳播的收斂速度,并通過最終模型的準確率來確定最高效的優化器。

2.4 實驗實現方案

本實驗具體實現方案如表2所示。

表2 實驗方案設計

2.5 實驗結果分析

圖2、圖3和圖4分別展示了實驗一、實驗二和實驗三的模型訓練過程和評估模型時的準確率。

圖2 SGD優化器

圖3 Adagrad優化器

圖4 Adam優化器

從以上三張圖所示的實驗數據可以看出,雖然收斂最快、最穩定的優化器是Adagrad,但是其評估(test)準確率比訓練(train)準確率更低,而其中訓練結果準確率最高的優化器是Adam。這兩種自適應優化器的效率都比沒有經過參數精調的SGD優化器更好。

使用這三種不同優化器進行模型訓練后,在評估時的損失值和準確率如表3所示。

表3 實驗損失值和準確率

從以上結果可以看出,在優化該分類器模型時,Adam相比其他兩種優化器的訓練結果,其評估準確率更高,達到83.87%,對于疾病分類具有較鮮明的參考作用。

3 結束語

本文基于深度學習中的前饋神經網絡理論,選取了骨科患者特征數據集來進行分類預測的實驗。在實驗中,本文設計出一種基于6個輸入神經元和3個輸出神經元的分類器模型,該模型包含3層隱藏層。本文使用骨科患者特征數據集來對模型進行訓練,并對模型的分類預測結果作出了評估。根據實驗結果,最終確定使用Adam優化器來進行模型優化,這為創建更高效的疾病分類器提供了參考。

本文只針對骨科疾病數據進行了預測分類實驗,今后在此基礎上將根據不同領域的數據分類需求而對分類器模型提出多種設計并進行對比實驗,將嘗試對比分析不同維數的前饋神經網絡對于各領域數據分類預測的準確率。

猜你喜歡
分類器神經元準確率
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
基于樸素Bayes組合的簡易集成分類器①
AI講座:神經網絡的空間對應
頸椎病患者使用X線平片和CT影像診斷的臨床準確率比照觀察
基于特征選擇的SVM選擇性集成學習方法
基于差異性測度的遙感自適應分類器選擇
激活皮層生長抑素中間神經元抑制神經病理性疼痛的發展
研究人員精確定位控制飲酒的神經元
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合