国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于新進(jìn)化優(yōu)化BP學(xué)習(xí)算法的心音識別方法

2020-09-27 12:56:42袁倩影全海燕
關(guān)鍵詞:心音識別率粒子

袁倩影, 全海燕

(昆明理工大學(xué) 信息工程與自動化學(xué)院, 昆明 650504)

心音是由于心臟活動而產(chǎn)生的一種振動信號, 心音信號的識別有利于對心血管類疾病的診斷. 目前, 對心音信號進(jìn)行特征提取的方法已有很多[1], 如Fourier變換、 小波分析、 Hilbert變換等方法. Fourier變換和小波分析均易導(dǎo)致相位信息的丟失, 影響后續(xù)分類器的設(shè)計(jì)[2]; Hilbert變換可處理非靜態(tài)、 非線性的特性, 適合應(yīng)用于突變信號[3]. 心音信號分類器主要采取支持向量機(jī)、K近鄰、 神經(jīng)網(wǎng)絡(luò)等算法進(jìn)行構(gòu)建[4]. 支持向量機(jī)可通過多分類器的構(gòu)建處理有關(guān)多分類的問題, 但訓(xùn)練時耗較長, 核函數(shù)的選取較復(fù)雜; 基于遺傳(GA)算法等改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法可作為心音分類器, 但都是以增加算法控制參數(shù)和迭代次數(shù)為代價提高心音識別率. 基于此, 本文提出一種基于單形進(jìn)化優(yōu)化BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的心音識別方法, 對比實(shí)驗(yàn)結(jié)果表明, 該方法提高了心音分析的識別率, 可為心血管類疾病的診斷提供技術(shù)支持.

1 基于FastPCA的心音信號特征提取

主成分分析(PCA)是通過線性變換將源數(shù)據(jù)變換為一組各維度線性無關(guān)數(shù)據(jù)的統(tǒng)計(jì)分析方法. 計(jì)算主成分的目的是將高維數(shù)據(jù)投影到低維空間, 通常用于對高維數(shù)據(jù)空間的降維. 傳統(tǒng)PCA步驟如下:

1) 對樣本x去均值化得到向量Z;

2) 對向量Z求協(xié)方差系數(shù)Sl=ZTZ∈d×d, 其中d為樣本x的維數(shù);

3) 求解協(xié)方差Sl的特征值D和特征向量V, 特征值D即為樣本x的主成分;

4) 將D按數(shù)值大小排列, 計(jì)算累計(jì)貢獻(xiàn)率;

5) 根據(jù)累計(jì)貢獻(xiàn)率大小確定第1、 第2、 …、 第k個主成分[5]. 一般根據(jù)累計(jì)貢獻(xiàn)率在85%~95%內(nèi)選取主成分的維數(shù).

2 基于SSSE算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)

2.1 BP神經(jīng)網(wǎng)絡(luò)

圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of BP neural network

BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò), 應(yīng)用廣泛. BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)一般由輸入層、 隱含層和輸出層構(gòu)成[7], 其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示, 其中Xi(i=1,2,…,n)表示輸入向量;Wij和Wjk表示權(quán)值;Yk(k=1,2,…,m)表示輸出向量. BP神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元采用Sigmoid(S)函數(shù)做為激勵函數(shù), 且在網(wǎng)絡(luò)中每層神經(jīng)元的結(jié)果都與上一層神經(jīng)元的處理結(jié)果有關(guān). 由圖1可見, BP神經(jīng)網(wǎng)絡(luò)采用三層結(jié)構(gòu), 輸入層神經(jīng)元數(shù)目為i=1,2,…,n, 隱含層單元個數(shù)為j, 輸出層神經(jīng)元數(shù)目為k=1,2,…,m.

BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的核心是優(yōu)化BP神經(jīng)網(wǎng)絡(luò)輸出與期望的誤差函數(shù), 本文采用誤差絕對值, BP神經(jīng)網(wǎng)絡(luò)的誤差函數(shù)定義為

(1)

目前, 已有許多改進(jìn)BP神經(jīng)網(wǎng)絡(luò)智能優(yōu)化算法[8], 例如: 基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò), 缺陷是遺傳算法對種群數(shù)量和變異的編碼長度選取要求極高; 基于粒子群優(yōu)化算法的BP神經(jīng)網(wǎng)絡(luò), 優(yōu)點(diǎn)是參數(shù)較少, 但在求解過程臨近結(jié)束時, 初始設(shè)置的粒子通常會聚集在某極值附近, 粒子尋優(yōu)過程較慢, 直接導(dǎo)致增加了收斂時長和偏差. 這些改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)智能優(yōu)化算法常通過設(shè)置更多的參數(shù), 以收斂時長及算法復(fù)雜度為代價提高性能.

單形進(jìn)化算法(surface-simplex swarm evolution, SSSE)是對BP神經(jīng)網(wǎng)絡(luò)輸出與期望的誤差函數(shù)進(jìn)行優(yōu)化, 其控制參數(shù)只有一個, 即種群數(shù)量, 避免了出現(xiàn)以增加控制參數(shù)提高準(zhǔn)確率的問題.

2.2 SSSE優(yōu)化BP神經(jīng)網(wǎng)絡(luò)

SSSE算法是基于單形鄰域與多角色進(jìn)化策略的智能優(yōu)化算法. 該算法的實(shí)現(xiàn)原理為: 基于隨機(jī)選取二維子空間, 利用定義的粒子單形鄰域, 實(shí)現(xiàn)單形凸集逼近搜索[9], 提高粒子勘探局部區(qū)域與算法收斂的性能. 同時, 在搜索策略中引入粒子多角色態(tài), 實(shí)現(xiàn)粒子多樣化, 提高搜索的全局性[10]. 將BP誤差函數(shù)作為SSSE算法優(yōu)化的目標(biāo)函數(shù), 其實(shí)現(xiàn)優(yōu)化的過程如圖2所示.

圖2 SSSE-BP算法流程Fig.2 Flow chart of SSSE-BP algorithm

SSSE算法優(yōu)化步驟如下:

1) 在搜索空間內(nèi)對m個粒子進(jìn)行初始化隨機(jī)定位, 并采取均勻分布的原則:

(2)

2) 在總搜索空間內(nèi), 將群體中所有的粒子按均勻分布的方式構(gòu)建搜索子空間, 并隨機(jī)選取兩個維度a,b, 利用這兩個維度, 使每個粒子在該搜索子空間內(nèi)重新搜索新位置:

4) 根據(jù)所選取的目標(biāo)函數(shù), 對所得的每個粒子位置進(jìn)行優(yōu)劣性能判斷, 利用其確定粒子的3個角色態(tài): 中心角色態(tài)Xic(t+1), 表示每個粒子最終的最優(yōu)位置; 開采角色態(tài)Xil(t+1), 表示粒子得到的最新位置; 勘探角色態(tài)Xig(t+1), 表示粒子以均勻分布的規(guī)則在搜索空間隨機(jī)選取的位置.

5) 記錄群體中最優(yōu)粒子的位置Xoc(t+1), 循環(huán)步驟2)~5), 并對每次循環(huán)得到的最優(yōu)解判斷其收斂性, 直至誤差函數(shù)收斂到給定的精度要求, 即認(rèn)為算法完成尋優(yōu)過程, 結(jié)束算法的尋優(yōu)運(yùn)算.

SSSE算法的優(yōu)勢是對粒子進(jìn)行全局性的隨機(jī)搜索尋優(yōu), 避免陷入局部最優(yōu)值; 控制參數(shù)只有一個, 即種群數(shù)量, 而人工蜂群算法、 遺傳算法、 粒子群算法等智能優(yōu)化算法及其改進(jìn)型算法, 都有較多的初始控制參數(shù), 以增加控制參數(shù)提高準(zhǔn)確率; 對于算法的可靠性, 在不同的隨機(jī)初始化條件下, 50次內(nèi)SSSE算法從未有偏離全局最優(yōu)點(diǎn)的情形.

3 心音信號識別算法

3.1 數(shù)據(jù)來源

本文數(shù)據(jù)主要來源于丁香園論壇(http://www.dxy.cn/bbs/thread/30808564#30808564)提供的異常/正常心音信號. 本文選取9類異常/正常心音進(jìn)行實(shí)驗(yàn), 每類心音均含有多個信號, 9類心音信號分別為: 正常心音[12]、 第一心音減弱、 第二心音增強(qiáng)、 第二心音減弱、 二尖瓣關(guān)閉不全、 二尖瓣狹窄、 主動脈關(guān)閉不全、 二聯(lián)律和心包摩擦音.

在進(jìn)行心音信號分類時, 將所有心音樣本分為訓(xùn)練集和測試集[13]兩類. 訓(xùn)練集用于SSSE算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練心音樣本, 共有90×9個訓(xùn)練樣本. 測試集共有22×9個心音樣本, 用于對訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行測試, 并驗(yàn)證提出的基于SSSE算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)應(yīng)用在心音識別上的性能.

3.2 算法流程

本文選擇MATLAB作為試驗(yàn)平臺, 研究目前已有心音信號分析模型的缺陷, 基于心音信號周期性的特點(diǎn), 提出以FastPCA算法對心音信號進(jìn)行特征提取降維, 以基于SSSE算法改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)作為模型核心, 最終實(shí)現(xiàn)對心音信號的識別分類[14].

模型實(shí)現(xiàn)步驟如下:

1) 首先對心音信號進(jìn)行預(yù)處理. 利用小波變換對心音進(jìn)行歸一化、 去噪操作, 小波母函數(shù)為sym5, 分解層數(shù)為5.

2) 對心音信號進(jìn)行特征提取降維. 心音信號未降維時, 樣本維度為4 900. 本文采用FastPCA方法對信號進(jìn)行降維, 先對樣本去均值化, 然后求協(xié)方差函數(shù), 對協(xié)方差函數(shù)求解特征值和特征向量, 按累計(jì)貢獻(xiàn)率大小選取主成分的維度, 貢獻(xiàn)率計(jì)算公式為

(11)

其中:D表示112×1維特征向量;n表示D的行數(shù);k為最終選取的主成分的維度;t為可自設(shè)的誤差. 多次實(shí)驗(yàn)結(jié)果表明, 當(dāng)t=0.1, 累計(jì)貢獻(xiàn)率為90%, 選取主成分的維度為36時, 心音識別率最高, 因此, 本文最終選取主成分維度為36.

3) 對降維后的心音信號進(jìn)行歸一化處理, 歸一化方法為

(12)

4) 初始化BP神經(jīng)網(wǎng)絡(luò)相關(guān)參數(shù). 神經(jīng)網(wǎng)絡(luò)采用三層結(jié)構(gòu), 對比多次實(shí)驗(yàn)效果, 設(shè)置輸入層神經(jīng)元數(shù)為30, 隱含層神經(jīng)元數(shù)為40, 輸出層神經(jīng)元數(shù)為3.

5) 將降維歸一化后的訓(xùn)練集共810個心音樣本輸入經(jīng)SSSE算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)中. 優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值和偏置, 其中權(quán)值更新流程如下:

① 將m個粒子按均勻分布的規(guī)則在目標(biāo)函數(shù)定義域內(nèi)進(jìn)行隨機(jī)初始化定位;

② 對搜索空間內(nèi)的每個粒子按單形鄰域和多角色搜索策略搜索新位置;

③ 對每個粒子的4個中心角色位置進(jìn)行更新;

④ 根據(jù)誤差函數(shù)評價粒子的優(yōu)劣, 以確定粒子的3個角色態(tài): 中心態(tài)、 開采態(tài)和角色態(tài);

⑤ 記錄粒子的最優(yōu)位置, 當(dāng)粒子的收斂位置在所要求的精度范圍內(nèi)時, 停止搜索;

⑥ 將BP神經(jīng)網(wǎng)絡(luò)權(quán)值定為粒子的最優(yōu)位置, 偏置與權(quán)值并行更新.

6) 將測試樣本共198個心音周期輸入訓(xùn)練好的網(wǎng)絡(luò)中, 最終輸出心音分類結(jié)果.

7) 對輸出的心音分類結(jié)果進(jìn)行統(tǒng)計(jì)分析, 得到心音識別率及誤差曲線.

4 實(shí)驗(yàn)結(jié)果與分析

將上述9類心音各112個樣本, 利用FastPCA算法進(jìn)行降維特征提取, 得到9類112×36組數(shù)據(jù), 選取部分特征值, 列舉出9類心音各一組樣本的特征值如圖3所示. 每類選取90組用于SSSE-BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練, 22組用于測試, 各類心音識別率列于表1. 由表1可見, 9類心音共198個測試樣本, 正確識別190個, 總體識別率為95.96%, 具有較好的識別率. 表2為本文經(jīng)SSSE算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的心音識別率對比. 由表2可見, 本文模型的心音識別率為95.96%, 遠(yuǎn)優(yōu)于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)模型的識別率. 上述兩種實(shí)驗(yàn)方法結(jié)果的誤差曲線如圖4所示.

圖3 9類心音的特征值Fig.3 Eigenvalues of 9 kinds of heart sounds

表1 各類心音識別率

表2 兩種實(shí)驗(yàn)方法的心音識別率對比

由圖4可見, 本文方法在迭代次數(shù)為1 000時, 誤差函數(shù)值小于10, 基本處于平穩(wěn)狀態(tài); 而傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)模型在迭代次數(shù)為1 000時, 誤差函數(shù)值大于60, 收斂效果明顯不如SSSE-BP神經(jīng)網(wǎng)絡(luò)模型. 為了驗(yàn)證本文算法的收斂性, 以迭代次數(shù)t=3 000進(jìn)行5次實(shí)驗(yàn), 5次實(shí)驗(yàn)的平均誤差曲線如圖5所示. 由圖5可見, 當(dāng)?shù)螖?shù)t=1 000時, 平均誤差曲線趨于平穩(wěn), 當(dāng)t∈[1 000,3 000]時誤差由6降至3, 可認(rèn)為達(dá)到了設(shè)置的收斂精度要求. 因此, 本文提出的基于SSSE算法改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)過程中有效.

圖4 兩種實(shí)驗(yàn)方法誤差曲線對比Fig.4 Comparison of error curves of two experimental methods

圖5 5次實(shí)驗(yàn)的平均誤差曲線Fig.5 Average error curve of 5 experiments

將本文方法與文獻(xiàn)[15]中方法對心音分類的識別率進(jìn)行對比, 結(jié)果列于表3, 其中文獻(xiàn)[15]中采集的心音信號頻率與本文中用于特征提取的心音信號頻率均為11 050 Hz, 實(shí)驗(yàn)平臺均使用MATLAB軟件. 由表3可見, 本文算法能較好地應(yīng)用于各種異常心音的識別分類, 且準(zhǔn)確率分別比對比算法提高了4.9%,3.9%,1.9%. 實(shí)驗(yàn)結(jié)果表明, 本文給出的基于SSSE算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)確率較高、 收斂性較好.

表3 采用不同算法時心音識別率的對比結(jié)果

綜上所述, 針對改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法均以增加控制參數(shù)為代價提高收斂速度的問題, 本文提出了一種基于單形進(jìn)化算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法, 即SSSE-BP神經(jīng)網(wǎng)絡(luò). 實(shí)驗(yàn)結(jié)果表明, 在心音分類上本文算法明顯優(yōu)于其他對比算法的心音識別率.

猜你喜歡
心音識別率粒子
基于類圖像處理與向量化的大數(shù)據(jù)腳本攻擊智能檢測
基于真耳分析的助聽器配戴者言語可懂度指數(shù)與言語識別率的關(guān)系
基于粒子群優(yōu)化的橋式起重機(jī)模糊PID控制
提升高速公路MTC二次抓拍車牌識別率方案研究
基于雙閾值的心音快速分段算法及其應(yīng)用研究
基于粒子群優(yōu)化極點(diǎn)配置的空燃比輸出反饋控制
雙聲道心音能量熵比的提取與識別研究
基于香農(nóng)熵的心音信號檢測方法研究
高速公路機(jī)電日常維護(hù)中車牌識別率分析系統(tǒng)的應(yīng)用
二維心音圖特征提取與識別方法的研究
绩溪县| 阿合奇县| 永兴县| 宁明县| 阳新县| 通辽市| 虞城县| 甘孜| 长葛市| 泽普县| 江西省| 巧家县| 香港 | 广东省| 张家界市| 八宿县| 阿勒泰市| 东明县| 龙南县| 浦东新区| 双城市| 西乌珠穆沁旗| 松滋市| 安庆市| 新乐市| 富民县| 宁德市| 巴林左旗| 泸水县| 沙洋县| 香河县| 岳阳县| 三河市| 微山县| 容城县| 金寨县| 西畴县| 从化市| 孝昌县| 长垣县| 昆山市|