鐺啦啦~我又來開新坑了,在<大家在用 AI 做什麼>系列中,會在 Kaggle 上找尋一些有趣的比賽,並實際去體驗,看看目前業界會使用 AI 來解決甚麼問題,雖然因為一些比賽規定不能隨意分享資料內容,但還是有能夠公開的部分,這個系列會分上下兩篇,上篇主要介紹比賽內容、資料集說明(公開可見的部分),以及初步的想法,下篇則是實際結果,那我們就先來看看第一篇是甚麼吧。
這篇我們選擇的是 Google Brain - Ventilator Pressure Prediction ,這是一個醫療領域的問題,當病人出現呼吸困難時,醫生會使用呼吸機通過插入氣管內的管子向病人肺部輸送氧氣,如何調節呼吸機的氣道壓力是個很大的課題,其影響能否確保足夠的空氣進入患者肺部,進行有效的氣體交換,提供足夠的氧氣並排出二氧化碳。
過高的氣道壓力可能會導致肺泡過度擴張甚至破裂,引發氣壓傷,反之,過低的壓力可能會導致肺泡塌陷,影響氣體交換效率,氣道壓力在吸氣和呼氣階段會有不同的要求,吸氣時需要較高的壓力將空氣推入肺部,而呼氣時需要降低壓力以允許空氣排出。
雖然現有的呼吸機配備了PID控制器,但在很多情況下,仍需要臨床醫生進行大量操作和監控。例如:
PID控制器在很多情況下能夠很好地維持穩定的壓力和氣流,但它的調節能力有限,特別是在應對不同病人肺部特徵和即時變化方面。例如:
本次比賽使用的呼吸機數據來自一個改裝的開源呼吸機,該呼吸機通過呼吸回路連接到一個人工測試肺。以下是該裝置的示意圖,其中兩個控制輸入用綠色標出,待預測的狀態變量(氣道壓力)用藍色標出。
<擷取至比賽網站>
訓練資料提供了除了兩個變量外的一些資訊,包含 :
id:全局唯一的時間步標識符,涵蓋整個文件。
breath_id:全局唯一的呼吸時間步標識符。
R:肺部屬性,表示氣道的阻力,單位為 cmH2O/L/S。物理上,這是壓力變化與流量(氣體體積/時間)變化的比值。直觀地說,可以想像通過吸管吹氣球。我們可以通過改變吸管的直徑來改變 R,R 越大,吹氣越困難。
C:肺部屬性,表示肺的順應性,單位為 mL/cmH2O。物理上,這是體積變化與壓力變化的比值。直觀地說,可以想像同樣的氣球例子。我們可以通過改變氣球乳膠的厚度來改變 C,C 越大,乳膠越薄,吹氣越容易。
time_step:實際的時間戳。
u_in:吸氣電磁閥的控制輸入,範圍從 0 到 100。
u_out:呼氣電磁閥的控制輸入,取值為 0 或 1。
pressure:在呼吸回路中測量的氣道壓力,單位為 cmH2O。
而測試資料就是去除 pressure 欄的資料,我們最後要使用測試資料產出結果進行提交
這次選擇在 Kaggle 中選擇接下來的實驗目標,希望在目標明確的情況下能更督促自己進行研究,這次選擇的比賽考慮到先前剛做完音訊的練習,一定程度上也是個序列資料,所以選擇序列資料的預測,這個比賽將使用連續呼吸下的 u_in 、 u_out 變化來預測 pressure ,初步看了資料,一個 breath_id 下包含了一次吸+吐的過程,首先遇到的問題應該會是 R、C、u_in、u_out 單位都不一致,要如何正規化才能合理的組合這四個參數並建模會是第一個挑戰,那麼,我要開始準備了,期望下篇能順利與大家見面 :)