<p>文/台灣人工智慧學校工程師<a href="https://medium.com/ai-academy-taiwan/%E5%BF%83%E9%9B%BB%E5%9C%96ai-%E5%BF%83%E8%87%9F%E7%97%85%E5%81%B5%E6%B8%AC-f94e6eb278fe"> 陳在民TSAI-MIN CHEN(Simon)</a></p>

<code><p>這是一篇介紹自己論文的簡介。內文源引自 <a href="https://www.cell.com/iscience/fulltext/S2589-0042(20)30070-5?_returnURL=https%3A%2F%2Flinkinghub.elsevier.com%2Fretrieve%2Fpii%2FS2589004220300705%3Fshowall%3Dtrue#">Tsai-Min Chen, Chih-Han Huang, Edward S.C. Shih, Yu-Feng Hu, Ming-Jing Hwang. “Detection and Classification of Cardiac Arrhythmias by a Challenge-Best Deep Learning Neural Network Model”</a>. iScience, 2020.</p>
<p>論文連結：<a href="https://doi.org/10.1016/j.isci.2020.100886">https://doi.org/10.1016/j.isci.2020.100886</a></p>
<p>Model Code (entry no. CPSC0236)：<a href="http://2018.icbeb.org/Challenge.html">http://2018.icbeb.org/Challenge.html</a></p></code>
<p align=center><img src="/wp-content/uploads/2020/06/1_5eNiA7iDlWhgEd-abagDdg.jpeg" alt="" width="700" height="700" class="alignnone size-full wp-image-12516" /></p>
<p align=center>電腦醫生看心電圖判斷疾病</p>
<h2 class="writingsH2"><strong>1. 引言</strong></h2>
<p>近年來人工智慧(AI)的應用越來越蓬勃發展，其影響不止於農業與工業，現在連醫療產業也開始受到這一波潮流所影響，原本必須去醫院交給專業醫師來做的診斷，AI也漸漸得能夠發揮輔助的腳色。舉凡X光照片、CT斷層掃描、基因檢測、病理切片等等。其中最讓人有實質感觸的就是蘋果最近推出的新產品Apple Watch，結合心電圖模組來偵測使用者心律不整的情形。這些現在進行式也使得自動化的心電圖疾病診斷越來越熱門。</p>
<p>在2018年時，中國的生物醫學工程與生物技術國際會議與聯想集團舉辦了第一屆中國電生理競賽CPSC2018，在這一場比賽中主辦方提供了來自中國11所醫院的心電圖診斷資料(6,877筆紀錄)，讓參賽者嘗試建構出世界最強的心電圖自動診斷模型。那時剛從台灣人工智慧學校畢業的我也跟著中研院生醫所N121實驗室的夥伴們一同參賽。在不小心拿到冠軍後，就決定在Cell Press的子刊iScience上發一篇論文，將經驗傳承給後續的科學家。</p>
<p align=center><img src="/wp-content/uploads/2020/06/1_xjXa8SrgldKVuNc_eWgOzg.png" alt="" width="540" height="309" class="alignnone size-full wp-image-12523" /></p>
<p align=center>總體冠軍+3個子比賽的冠軍</p>
<h2 class="writingsH2"><strong>2. 目標</strong></h2>
<p>這次比賽的目標非常簡單，給你病人的12導程心電圖紀錄與其相對應的診斷資料，希望你能夠創造出一個可以自動診斷9種心律不整病態的AI模型，如下。</p>
<p align=center><img src="/wp-content/uploads/2020/06/1_u-LeYvziEYgHN_aBCSSMpw.png" alt="" width="700" height="313" class="alignnone size-full wp-image-12526" /></p>

<p>既然是比賽，那就必須有個公平評斷AI模型好壞的標準。在評斷AI模型好壞時，兩個比較直觀的評斷方式就是Recall和Precision。以AI警察抓小偷來理解的話比較簡單，假設這個世界上有100個人，其中10個人是小偷，而AI警察抓了20個嫌疑犯其中9個確認是小偷。</p>
<p>Recall就是AI警察抓回來的所有嫌疑犯中確認是小偷的數量除以全部小偷的數量，也就是9/10 = 0.9</p>
<p>Precision就是AI警察抓回來的所有嫌疑犯中確認是小偷的數量除以抓回來的所有嫌疑犯數量，也就是9/20 = 0.45。</p>
<p>聰明的你應該也會發現一個道理，如果這個AI警察不管三七二十一，把所有的人都當小偷抓起來，這樣的話Recall就是10/10 = 1.0，</p>


<blockquote>超級無敵好啊!!!</blockquote>


但是你如果去看Precision就會是10/100 = 0.1 ，


<blockquote>超級無敵爛阿!!!</blockquote>


<p>因此如果單純只看Recall或是Precision都有可能偏頗地判斷AI模型的表現，所以這次比賽使用的是Recall和Precision的調和平均，也就是F1-score，如下圖。</p>
<p align=center><img src="/wp-content/uploads/2020/06/1_aRdYIZSZ1vdvUWSxEwWIPA.png" alt="" width="700" height="344" class="alignnone size-full wp-image-12531" /></p>
<h2 class="writingsH2"><strong>3. 資料與方法</strong></h2>
<p>本次資料為6,877筆紀錄，每一筆資料會包含某位病人12導程的心電圖紀錄，紀錄時間為6秒到144秒，取樣頻率為500赫茲(Hz)，如下圖。</p>
<p align=center><img src="/wp-content/uploads/2020/06/1_gKvceg82-6tr45pTR0x_yA.png" alt="" width="700" height="296" class="alignnone size-full wp-image-12533" /></p>
<p>因為心電圖訊號的紀錄時間長短不一，為了方便模型套件學習，我統一用一個6,877 *72,000 * 12的矩陣表示，其中72,000對應到最長的紀錄時間所產生的所有樣本點(144s*500Hz)。對於任何一筆訊號來說，不足144秒的紀錄部分都會用0從開頭的地方進行填補。</p>
<p>在整理完資料後，就是要設計一個AI模型來找出心電圖訊號與疾病的關聯。AI模型有很多種，舉凡傳統機器學習的回歸模型、決策樹模型、支持向量機模型等等，如何依據資料特性選擇適合的模型框架，就是資料科學家的價值所在。</p>
考量到這次競賽所使用的資料為時序型資料，與相對應的疾病標註需要靠醫師的肉眼進行圖像判斷，因此我決定結合RNN與CNN的深度學習模型框架，設計出一套融合兩者的全新AI模型架構: MetforNet121。</p>
<p align=center><img src="/wp-content/uploads/2020/06/0_ohK15HLJLVgSkw5R.jpg" alt="" width="487" height="301" class="alignnone size-full wp-image-12535" />
<p align=center>MetforNet121，用於12導程ECG病態分類的AI模型架構</p>
<h2 class="writingsH2"><strong>4. 結果</strong></h2>
<p>幸運地，我的模型在最後獲得了第一名的佳績(紅色字)，並在4個子比賽中也獲得了3項冠軍。</p>
<p align=center><img src="/wp-content/uploads/2020/06/1_0BadEsIjwOMGvWnS732WMw.png" alt="" width="700" height="371" class="alignnone size-full wp-image-12537" /></p>
<p align=center>CPSC 2018前10名結果</p>
<h2 class="writingsH2"><strong>5.延伸討論</strong></h2>
<p><strong>5.1 AI模型被低估了嗎?</strong></p>
<p>雖然拿到了冠軍，做出了一個0.837F1-score評價的AI模型。但我不經懷疑我的AI模型只有這點程度嗎?換一種說法是，</p>


<blockquote>你無法讓一個智商比你低的人來判斷你的智商好壞。</blockquote>


<p>如果評斷AI模型學習的標準答案一開始就是錯誤的，就很有可能低估它的表現。因此特別邀請了三位心臟科醫師進行復判，但考量醫師工作繁重時間寶貴，因此僅針對AI模型在各病態中有高度信心但是答錯的案例讓醫師進行富判。結果令人振奮，</p>


<blockquote>有6/9的病態診斷被三位醫師的共識所推翻(紅色字)</blockquote>


<p>，此舉再次提高了我對於這個AI模型的信心。</p>
<p align=center><img src="/wp-content/uploads/2020/06/1_Im-NI7X9tLsiUVelW3vubQ.png" alt="" width="700" height="277" class="alignnone size-full wp-image-12541" /></p>
<p><strong>5.2 AI模型可以預測多重病態嗎?</strong></p>
<p>除此之外，我也很好奇這個AI模型是否能夠預測兩個以上的病態?</p>


<blockquote>就很像小孩子就算你沒特別去教他，但他有一天就自己學會罵髒話。</blockquote>


<p>剛好這個資料集中有476筆資料是有兩個以上不同的診斷結果，就拿來當測試吧。結果又是一個令人振奮，</p>


<blockquote>在50個以上的多重病態樣本中，大部分的多重病態都能被預測出來(粗體字)</blockquote>


<p>，如此結果讓我不禁有一種看到孩子長大的欣慰感。</p>
<p align=center><img src="/wp-content/uploads/2020/06/1_OZtjCc87CBMXJA2Ik7iTGg.png" alt="" width="516" height="374" class="alignnone size-full wp-image-12544" /></p>
<p align=center>預測出來的多重病態數量在分子、實際上的多重病態數量在分母</p>
<p><strong>5.3 哪個導程訓練AI模型比較好呢?</strong></p>
<p>前面有提到蘋果推出搭載心電圖模組的Apple Watch，但是這樣的產品受限於硬體而無法使用全部12導程的心電圖訊號，而只選用導程I當成訊號來源，但是導程I真的對AI模型來說是最好的選擇嗎?</p>


<blockquote>沒有人知道。</blockquote>


<p>那我就來做實驗測試吧!結果就是，整體來說如果只使用單導程心電圖訊號的話，我誠心推薦aVR導程(紅色)或V1導程(綠色)當成訊號源，因為他們常常在各種病態檢測中有排名較前的預測能力，如下圖。</p>
<p align=center><img src="/wp-content/uploads/2020/06/0__S3wWpeBK12j9UxE.jpg" alt="" width="487" height="486" class="alignnone size-full wp-image-12548" /></p>
<p align=center>單導程模型的F1-Score結果排名，由左到右代表F1-Score高到低。</p>
<h2 class="writingsH2"><strong>6. 結論</strong></h2>
<p>AI心電圖模組結合行動穿戴裝置來達到病態的即時檢測是一種未來趨勢，而這項科技也已經被證明是可行且有效的。<ins datetime="2020-06-13T02:20:22+00:00">在判別心臟疾病的準確率上AI心電圖模組也已經能夠與普通醫師和心臟病專家匹敵</ins>。然而相關的法規與利益分配或許才是該技術未來實際落地前必須解決地問題。</p>
<p>本文提供了一項簡單的實證，證明AI能夠同時偵測出兩種以上不同的心臟病態，其表現甚至有可能超出比賽所呈現的分數。除此之外，也提供了簡單實驗推薦aVR與V1做為單導程行動穿戴裝置偵測心臟疾病的資料收集源。</p>


<code>本文引自<a href="https://medium.com/ai-academy-taiwan">台灣人工智慧學校medium專欄</a>，由台灣人工智慧學校所經營，學校AI工程師們將定期於medium上分享近期技術研究及AI相關知識</code>

