일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- tensorflow
- lazy propagation
- Overfitting
- dropout
- back propagation
- object detection
- 다익스트라
- 분할 정복
- dfs
- NEXT
- c++
- 너비 우선 탐색
- 문자열
- 미래는_현재와_과거로
- 백트래킹
- 조합론
- 우선 순위 큐
- pytorch
- 플로이드 와샬
- 크루스칼
- BFS
- DP
- 세그먼트 트리
- 알고리즘
- 2023
- 가끔은_말로
- 회고록
- 이분 탐색
- 자바스크립트
- 가끔은 말로
- Today
- Total
Doby's Lab
SRL-AE: ECG 데이터 이상치 탐지에 강인한 오토인코더 알고리즘 본문
✅ Intro
오랜만에 글을 적습니다. 종강한 지 둘째 날에서 셋째 날로 넘어가는 밤에 글을 적고 있네요. 이번에도 새로운 연구를 해보았답니다. 항상 연구가 끝나면 아쉬움들이 남습니다. 이번 연구도 그렇고요. 하지만, 개인적인 목적을 달성함에 있어서는 많은 걸 느끼고 만족했던 연구였습니다. 그래서, 모든 프로젝트의 끝은 회고라고 생각하기에 이번에도 회고를 준비해 봤습니다.
이번에 진행한 프로젝트는 지금껏 해왔던 연구들과 다소 결이 다르답니다. 의도치 않게(?) 과거의 프로젝트들은 전부 Computer Vision에서 다루는 Task가 전부였습니다. Classification, Semantic Segmentation, Object Detection... 여기까지만 보면 저는 Computer Vision 하는 사람이에요. 하지만, 저는 Medical AI에서 부딪히는 Challenge를 모두 다루어보고 싶기에 Medical Image만으로 만족하기에는 아쉬움이 많았습니다. 그래서, 뜬금없이 Biosignal, Anomaly Detection으로 연구를 해봤답니다. 물론, 더 다양한 이유들이 있기에 이는 아래에서 다루겠습니다만, 아무튼 이번 연구는 새로운 도전이었다는 말을 하고 싶었습니다.
그래서, 이번 글에서는 '연구에 대한 간단한 Description', '나는 왜 이런 연구를 했을까', '다음 목적(OMS 3)'와 같은 순서로 작성해 보았습니다. 또한, 본 연구를 기반하여 작성한 논문으로 2024 대한전자공학회 추계학술대회에 참여했습니다. 추가적으로, 중요한 건 이번 연구가 'U-Net 기반 아키텍처를 활용한 울혈성 심부전 환자 폐부종 진단 방법론 연구(OMS)'에 이은 다음 시리즈 OMS 2라는 것이 참 기쁘답니다. (아, 그 OMS는 모르는 분들 있을까봐.. 그냥 제가 만든 말입니다. 부끄럽지만, 꾸준히 밀고 있는 말입니다..ㅎ)
시작하기 전에 이번 프로젝트에서 진행한 코드들은 아래 깃허브에 모두 정리해 두었습니다. 논문은 아직.. 출판이 안 돼서 링크 첨부가 어렵네요. (출판되자마자 뛰어 오겠습니다)
GitHub - drawcodeboy/SRL-AE: Sparse Residual LSTM Autoencoder | Robust Autoencoder for Anomaly Detection in ECG | 2024 대한전
Sparse Residual LSTM Autoencoder | Robust Autoencoder for Anomaly Detection in ECG | 2024 대한전자공학회 추계학술대회 | Autumn Annual Conference of IEIE, 2024 | OMS 2 - drawcodeboy/SRL-AE
github.com
(논문 링크 추가 예정)
✅ In brief
본 연구는 ECG의 Anomaly Detection을 Autoencoder를 통해 수행하는 Task에서 모델 추론 결과에 대한 신뢰성을 보장하기 위해 새로운 모델 'Sparse Residual LSTM Autoencoder(SRL-AE)'를 제안했습니다. Medical AI 필드에서도 딥러닝은 많은 발전을 이루었으나, 실제 시장에 도입되기에는 여러 문제가 있습니다. 그중 하나는 AI에 대한 신뢰성이라 생각했고, 이에 대해 기여할 수 있는 주제로 설정하였습니다.
추론 결과에 대한 신뢰성을 확인하는 방식은 실험 별 Autoencoder의 loss 값을 통해서 'Normal loss과 Anomaly loss 평균값의 거리(Loss gap)'을 통해 측정하였고, 실험 결과 본 연구에서 제안하는 SRL-AE가 가장 뛰어난 성능을 보여주었습니다.
✅ Why?
이번 프로젝트를 진행한 이유는 다음과 같습니다.
1) 새로운 도전, 정체되어 있기가 싫었다.
앞서 Intro에서 언급한 것과 같이 새로운 도전을 해보고 싶었습니다. Computer Vision 뿐만이 아닌 Signal Processing의 영역을 다루어보면서 Medical AI 연구자로서 한 발 더 나아가고 싶었습니다. 또한, 기존 프로젝트들은 전부 Supervised Learning으로 해결하는 방법이었기 때문에, Unsupervised Learning 기법 중 하나인 Autoencoder를 활용한 Self-supervised Learning 기법을 다룰 수 있는 프로젝트에 도전하였습니다. Anomaly Detection을 통해 Classification을 한다는 건 기존과 다른 접근 방식이었기 때문에, 진행하면서도 흥미로웠습니다.
이전까지 특정 기술에 정체되어 있는 시간들을 보내는 게 다소 지루하다고 느꼈습니다. 이번 프로젝트를 진행하면서 원래 AI가 다루는 기술이 넓다는 것을 알았지만, 더 넓다는 것을 깨닫고 또 새로운 도전을 준비하고 있습니다.
2) Medical AI의 핵심적인 3가지 모달리티, 나의 주요 연구 분야는?
새로운 도전과 함께 이번 프로젝트를 진행했었던 핵심 동기는 하나 더 있었습니다. 작년 즈음에 저는 처음으로 다이브를 통해 Medical AI를 시작했었고, 그때 당시 전체 팀은 세 팀으로 구성되어 있었습니다. 각 팀은 Clinical Data, Medical Image, Biosignal를 다루는 팀이었고, 저는 Clinical Data 팀에 속해있었습니다. 활동이 마무리되던 시점에 'Medical AI를 하는 사람이라면, 이 3가지를 한 번쯤은 다 다루어보아야 할 거 같다'는 생각이 들었습니다. 그 생각이 이번 프로젝트까지 이어지면서 3번의 프로젝트를 마무리해냈고, 이제 저의 Medical AI 1장 프롤로그를 끝낸 듯합니다.
그동안에 각 필드를 통해 국내 학술대회 2편의 논문, KCI 논문을 쓰면서 많은 성장을 이루었으나, 아직 분명하지 못한 것은 저의 주요 연구 분야입니다. 3가지 분야를 겪으면서 한 편으로 바랬던 것은 저의 메인 도메인을 찾는 것이었습니다. 하지만, 이건 이번 프로젝트를 마무리 한 이후에도 갈피가 잡히지 않았습니다. 물론, 모달리티 관점에서 아직 다루어보지 못한 것들이 더 많고, AI 기술로도 해보지 못한 것들이 너무 많아 한 편으로는 성급한 것 같기도 합니다. 다만, 이후에 많은 시간 동안 생각을 해봤습니다. 그에 대한 답을 찾지는 못 했으나, 'Medical AI에서는 이 기술이 많이 발전되어야 하지 않을까?'라는 생각이 들게 하는 기술이 있어, 해당 기술에 대한 공부를 하면서 Medical AI에 기여하는 연구자가 되고 싶습니다.
3) OMS 2, 한계를 넘어서
올해 초에 One-Man Show(OMS)라는 키워드를 만들어 '나의 한계를 넘어보자'라는 명목하에 프로젝트를 진행했었습니다. 이때 당시에 스스로 정의한 한계점들을 뛰어넘으면서 이 키워드는 일회성으로 남기지 말아야겠다는 생각을 했습니다. 또한, 한계점들을 뛰어넘음과 동시에 새로운 한계점들을 발견했었기에 'OMS 2를 해야 한다'는 마음은 진행하면서 진작에 갖고 있었습니다. 그때 당시에 새롭게 정의했었던 한계점은 크게 2가지가 떠오릅니다.
첫 번째는 '복잡한 코드'입니다. 각 실험마다의 코드를 복사+붙여 넣기 하면서 난장판이 되었던 Repository와 IPython 기반 파일만 제어할 줄 알았던 부족한 역량을 올해 초에 느꼈습니다. 그래서, 많은 오픈 소스들이 갖는 공통적인 특성들을 정리했습니다. 모듈화, argparse 활용을 통한 커맨드 기반 실험, venv를 통한 가상환경, Docker를 통한 독립적인 가상환경, PyTorch의 완벽한 핸들링, 여러 실험들을 통해 쌓인 노하우 등을 통해 이번 OMS 2를 위해 만들어진 Repository는 많이 발전했음을 느낍니다. 더 단순화를 위해 시도해보아야 할 방법들이 있습니다. 앞으로는 더 탄탄한 구조의 코드를 통해 실험을 진행하려 합니다.
두 번째는 '딥러닝에서 Contribution'입니다. OMS 1은 딥러닝에서 어떠한 기여를 했다고 보기보다는 영상 처리 쪽에서 기여를 하려고 한 연구라고 생각합니다. 그래서, 딥러닝 쪽에서 어떠한 기여를 하고 싶다는 바람이 컸습니다. 특히, 기존 아키텍처를 발전시켜서 내가 이름을 붙인 아키텍처를 만드는 것은 너무나 해보고 싶던 일 중 하나였기 때문에, 기존 LSTM Autoencoder를 내 연구 목적에 맞게 발전시키는 것이 이번 연구의 핵심이었습니다. 여담이지만, 연구 후반부 시점에서 아키텍처 이름 짓는 거 때문에 오랜 시간을 썼던 기억이 납니다.
✅ Outro
Project Description은 늘 그렇듯이 개인적인 소감을 다루기에 조금 짧은 글로 마무리를 하려 합니다. 지금은 기억이 나지 않아 '그때 당시에 쓰려했던 말을 못 적는 것이 아닐까'란 생각에 늘 아쉽습니다만, 지금 당장 기억나는 것들이 어쩌면 제일 강렬한 기억이기에 이대로 글을 마무리하려 합니다.
종종 '연구가 뭘까, 이렇게 하는 게 맞는 걸까?'라는 생각에 잠식되는 때가 있습니다. 이번에 이 연구로 학회에 가서 저의 포스터에 대해 많은 질문을 던져주신 분들과 얘기를 나누며 연구 자체에 대한 칭찬을 듣거나, 새로운 아이디어에 대한 조언을 듣고 돌아오는 길에 '앞으로 연구에 대해 생각할 때는 나의 서툰 방향 감각을 믿어봐도 되겠다'라고 다짐했습니다.
그럼에도 불구하고, 아직 부족한 점들이 많습니다. 이번에도 느낀 한계점들이 있기에 이 한계점들을 또 뛰어넘는 마지막이 될 OMS 3와 함께 다음 Project Description로 돌아오겠습니다. 감사합니다.
저의 논문을 도와주신 지도 교수님.. 항상 감사합니다!
P.S. 2024 회고 작성하러 갑니다..ㅎ
'AI Projects > Project Description' 카테고리의 다른 글
U-Net 기반 아키텍처를 활용한 울혈성 심부전 환자 폐부종 진단 방법론 연구 (3) | 2024.04.07 |
---|---|
머신 러닝을 활용한 당뇨병 환자의 관상 동맥 질환 모델 개발 (0) | 2023.11.05 |
Cat & Dog Binary Classification Project Version 2.1 (FINAL) (0) | 2023.01.23 |
Cat & Dog Binary Classification Project Version 2 (1) | 2023.01.07 |
Cat & Dog Binary Classification Project (0) | 2022.12.12 |