AI 모델 개요
이 AI 모델은 PyTorch 라이브러리를 사용하여 구현되었으며, MIMIC-IV 데이터셋을 이용하여 ICU 환자의 예후(사망 위험)을 예측하는 모델입니다. 본 모델은 시퀀스 데이터 처리에 효율적인 LSTM(Long Short-Term Memory) 신경망을 활용해 개발되었으며, 각 환자의 연속적인 데이터를 입력으로 받아 사망 위험을 예측합니다.
LSTM 구조에 대한 간략한 설명
2. 정적 데이터의 변환
- 정적 데이터는 3D 텐서 형태로 변환되어 LSTM과 함께 처리될 수 있도록 준비됩니다.
- 오버샘플링이 적용된 훈련 데이터와 그렇지 않은 테스트 데이터가 각각 준비됩니다.
3. DualInputModel 클래스
- DualInputModel은 시계열 데이터와 정적 데이터를 동시에 처리할 수 있는 네트워크 구조를 가지고 있습니다.
- nn.LSTM을 사용하여 시계열 데이터를 처리합니다. LSTM의 아웃풋과 정적 데이터가 결합되어 Fully Connected Layer로 전달됩니다.
- forward 메서드에서 시계열 데이터는 LSTM을 거쳐 특정 시점의 아웃풋만 추출되고, 이 아웃풋과 정적 데이터가 결합된 후 Fully Connected Layer로 전달됩니다.
모델의 동작 방식:
- 시계열 데이터는 LSTM 레이어를 통해 처리됩니다. LSTM은 시계열 데이터의 순서와 패턴을 학습하여 해당 정보를 내장합니다.
- 시계열 데이터의 처리 결과와 정적 데이터는 결합되어 Fully Connected Layer로 전달됩니다. 이 과정에서 두 유형의 데이터가 함께 처리됩니다.
- Fully Connected Layer는 결합된 데이터를 처리하여 최종 아웃풋을 생성합니다. 여기서 ReLU 활성화 함수와 시그모이드 활성화 함수가 사용됩니다.
- 최종 아웃풋은 이진 분류 문제를 해결하기 위해 사용되며, 이를 기반으로 손실을 계산하고 모델을 업데이트합니다.
장점:
- 시계열 데이터와 정적 데이터를 동시에 처리할 수 있어, 두 유형의 데이터에서 정보를 동시에 추출하고 활용할 수 있습니다.
- LSTM을 사용하여 시계열 데이터의 복잡한 패턴과 종속성을 학습할 수 있습니다.
이 코드를 통해, 복잡한 데이터 구조와 패턴을 가진 실제 문제 상황에서 딥 러닝 모델을 효과적으로 적용하고 활용할 수 있습니다.
개발 환경 및 실행 방법
개발 환경
- 플랫폼: Google Colab - 클라우드 기반의 주피터 노트북 개발 환경
- 프로그래밍 언어: Python
- 핵심 라이브러리:
- PyTorch: 딥 러닝 모델 구현 및 훈련
- Scikit-learn: 데이터 전처리 및 오버샘플링
- Numpy: 데이터 처리
코드 설명
- PatientDataset 클래스: PyTorch의 Dataset 클래스를 상속받아 환자 데이터를 로딩하는 용도로 사용됩니다. 학습 및 테스트 데이터를 PyTorch DataLoader에 적합한 형태로 변환합니다.
- LSTMModel 클래스: LSTM 기반의 신경망 모델을 정의합니다. LSTM 레이어 다음에 Fully Connected 레이어가 연결되어 있어, 시퀀스 데이터의 특성을 학습한 후 최종 예측을 출력합니다.
- 손실 함수 및 옵티마이저: Binary Cross-Entropy 손실 함수와 Adam 옵티마이저를 사용하여 모델을 훈련합니다.
이 환경에서 본 모델은 시퀀스 길이, 피처의 개수 등을 고려하여 다양한 ICU 환자 데이터에 대해 예후를 정확하게 예측할 수 있습니다.
'AI 공부' 카테고리의 다른 글
Colab (0) | 2023.10.04 |
---|---|
LSTM 딥러닝(데이터 전처리) (0) | 2023.10.03 |
LSTM 딥러닝(결과) (1) | 2023.10.03 |
MIMIC 4 data set (0) | 2023.09.26 |
댓글