# 【論文閱讀】Generalized Deep Neural Network Model for Cuffless Blood Pressure Estimation with Photoplethysmogram Signal Only ## Abstract 這篇論文提出一個僅僅使用光電容積脈搏波 (Photoplethysmogram, PPG) 信號,來訓練深度學習的模型,用於無袖帶血壓 (Blood Pressure, BP) 估計。模型從 PPG 信號中提取 **32 個特徵**,並神經網絡進行 SBP (收縮壓) 和 DBP (舒張壓) 的預測。評估使用 RMSE、MAE、AAMI 和 BHS 標準,結果顯示 SBP 的 RMSE 為 4.643 mmHg、DBP 為 3.307 mmHg,且 80.63% 的 SBP 絕對誤差低於 5 mmHg、90.19% 的 DBP 低於 5 mmHg,符合 BHS Grade A 標準,優於先前僅使用 PPG 的模型。此方法強調 PPG 的低成本與易用性,有助於心血管疾病 (CVD) 的預防與即使監測 * 分病人,切成 Beat 再分割,代表 Intra-Subject ( 內樣本訓練,表示訓練與測試資料中有同一位病人的 ),大致上已經沒什麼參考價值了,一樣有作弊嫌疑 * 32個特徵怎麼取,會根據篩選指標來篩出來,接著特徵一樣會做 Z-Score 正規化 ## Introduction & Related Work * 心血管疾病是全球主要死亡原因,2016 年造成 1790 萬人死亡,高血壓監測至關重要 * 傳統袖帶式血壓計耗時 (1-2 分鐘)、不舒適,且無法連續監測,使用 $\text{ECG} + \text{PPG}$ 的模型雖準確,但增加成本與複雜度 * PPG 是一種非侵入性技術,透過光學測量微血管血容量變化,適合穿戴式裝置,但先前模型多需額外信號或手動特徵提取 * 開發僅 PPG 的通用模型,基於脈波速度 (PWV) 理論,縮短測量時間至 10 秒內,提升可及性 ## Intro ### 基本原理 基於傳統演算法是從 **ECG訊號** 與 **PPG訊號** 取出生理訊號的參數,該方法仰賴基於 **Pulse wave velocity (PWV)** 也就是脈波傳播速率, PWV 是由心跳引起的壓力脈搏,在動脈傳播會類似在一個有帶彈性的管道傳播,所以 PWV 被視為與血壓高度相關的,該公式稱為 [**Moens–Korteweg Equation**](https://en.wikipedia.org/wiki/Moens%E2%80%93Korteweg_equation) $$ \text{PWV} = \sqrt{\frac{Eh}{2r\rho}} \tag{1} $$ * $r$ : 動脈半徑,單位 $m$ * $h$ : 動脈厚度,單位 $m$ * $E$ : 動脈彈性模量,單位 $\text{Pa} = \frac{N}{m^2} = \frac{kg}{m \cdot s^2}$ * $\rho$ : 血液密度,單位 $\frac{\text{kg}}{m^3}$ ### Pulse Wave Velocity ( PWV ) PWV 也可以可以透過感測器兩端量測到的 **Pulse Transit time (PTT)** 與兩個 Sensor 端的距離 $d$ 計算出來 :::info Pulse Transit time (PTT) 為從 ECG 量測的脈博波從心臟傳到 PPG 訊號量測位置的時間差 ::: $$ \text{PWV} = \frac{d \ \text{距離}}{\text{PTT} \ \text{時間}} \tag{2} $$ * $\text{PTT}$ : ECG R 波到 PPG Onset/Peak * $d$ : 為 Sensor 兩端距離 ### 彈性模量 彈性模量被假設為一個常數,需要經過實現測試出來 $$ E(P) = E_0 e^{\alpha P} \tag{3} $$ * $E_0$ : 彈性模量在 0 mmHg 每單位血壓,實際上要測量才能得到 * $\alpha$ : 為動脈血管硬度,越大表示血管硬化越嚴重 ### 最後推論 將 $(1)$ 與 $(2)$ 帶入 $(3)$ 可以知道血壓 $\text{P}$ 與 $\text{PTT}$ 是對數關係而非線性,同時包含許多參數來估計血壓 $$ P = -\frac{2}{\alpha} \ln(\text{PTT}) + \frac{1}{\alpha} \ln \left(\frac{2 r \rho}{E_0 h} d^2\right) \tag{4} $$ $\because$ $(1)$ 與 $(2)$ 是相等的 $$ \therefore \frac{d^2}{PTT^2} = \frac{Eh}{2r\rho} $$ 移項處理將 $E$ 移至左項並把 $PTT$ 那一樣獨立開來 $$ E = \frac{1}{PTT^2} \frac{2r \rho d^2}{h} = E_0e^{\alpha P} $$ 先將 $E_0$ 移項後取 $\ln$ $$ P = \frac{1}{\alpha}\ln(\frac{1}{PTT^2}) + \frac{1}{\alpha}\ln(\frac{2r \rho}{E_0h}d^2) $$ $$ P = \frac{-2}{\alpha}\ln(PTT)+ \frac{1}{\alpha}\ln(\frac{2r \rho}{E_0h}d^2) $$ 為了找到一個線性關係,我們先不將 $\ln$ 部分展開 $$ P = \frac{1}{\alpha} (\ln(\frac{1}{PTT^2}) + \ln(\frac{2r \rho}{E_0h}d^2)) $$ :::danger $\ln(a \cdot b) = \ln(a) + \ln(b)$ $\ln(\frac{a}{b}) = \ln(a) - \ln(b)$ ::: ![image](https://hackmd.io/_uploads/H1IqV4gOel.png =50%x) * $\text{PTT}(p)$ 代表 ECG 的 R-Peak 到 PPG 的 Systolic Peak * $\text{PTT}(d)$ 代表 ECG 的 R-Peak 到 PPG 的 Max Slope Point * $\text{PTT}(f)$ 代表 ECG 的 R-Peak 到 PPG 的 Valley ## Matrerials and Methods * Data Preprocesing PPG 訊號會先移除噪聲,接著取得其一階與二階導數 * Feature Extractor 人工選取特徵,也會同時輸入進模型進行訓練,從 65 個候選特徵,選出 59 個,再透過篩選指標來選最佳 32 個最佳特徵 * Deep Neural Network * 全連接層串接,輸入為 $32$ 維度特徵,輸出就是 $2$ 個,包含 $\text{SBP}$, $\text{DBP}$ * $70\%$ 訓練、$20\%$ 驗證、$10\%$ 測試 ### Data Source 神經網路基本上都是 Data-Driven,Data 本身意義代表著一切,影響著神經網路的方方面面。 * MIMIC-II (Mutli-Parameter Inetllignet Monitoring in Intensive Care) * 該資料集包含 12000 獨立的 Subject 組成,包含了超過 4 百萬的 Heart Cycle * 評估指標 * RMSE * AAMI 平均誤差小於 5mmHg、標準差小於 8mmHg * BHS 標準,誤差百分比分級 (Grade A: ≥60% ≤5 mmHg, ≥85% ≤10 mmHg, ≥95% ≤15 mmHg) * 統計分析 * Bland-Altman 圖 * Pearson 相關係數 $r$ ### PPG Raw Data Preprocessing 1. Noise Removal 透過 Buffterworth 來移除 $0.5 \sim 8.0 \text{ Hz}$ 頻率訊號 2. Normalization and 1st and 2nd Derivation 執行最大最小正規化並使用在所有訊號上,包含原始訊號、一階導數、二階導數 $$ x' = \frac{x - X_m}{X_M - X_m} $$ 3. Feature Points Detection 檢測收縮峰值檢測,起始和結束谷點檢測,最大最小斜率檢測 ![image](https://hackmd.io/_uploads/rkzTJSeOxe.png =50%x) ## 結論 論文基本上可以參考部分認為**前面推導基本血壓的原理**,原因在於資料處理並不是那麼嚴謹,一樣有相同病人但是會被分割成訓練與測試集,這樣的問題被稱作 Data-Overlap,Data-Overlap 的話,訓練出來模型標準差一定是低的,這毫無意外