👽 졸업 논문 ( 13 ) - 은하 병합 여부 판별 멀티모달 AI 아키텍처 설계

2025. 4. 8. 14:01개발/👽 졸업 논문

 

 

 

Data

 

데이터의 조건

:  광학 데이터(이미지)와 분광학 데이터(수치)가 함께 있을 것

:  광학 데이터와 분광학 데이터가 매칭되어 있을 것 ( A 은하의 광학 / 분광학 데이터가 매칭 )

:  은하의 병합 여부가 라벨링되어 있을 것 (train data의 경우)

:  데이터양이 많을 것

 

 

[ 시뮬레이션 데이터 ]

 

Illustris TNG simulation data

   :  은하의 시뮬레이션 이미지 데이터가 존재하며 시뮬레이션 후처리를 통해 분광학 데이터를 추출할 수 있다

-  분광학 데이터 추출 방법

:  SKIRT를 사용한 광학/IR 모의 관측 결과 일부 제공

:  Bruzual & Charlot (2003) 또는 FSPS (Flexible Stellar Population Synthesis) 등의 모델 사용   

:  CLOUDY, MAPPINGS, Nebular 같은 코드 활용 -> 강선(emission line) 스펙트럼 생성

 

[ 실제 관측 데이터 ]

-  SDSS

-  MaNGA

-  Galaxy Zoo

 

 

 

멀티모달 AI 아키텍처

 

전체적인 흐름

[ Data Preprocessing : 데이터 전처리 ]

Image Data
벡터화
:  이미지에서 feature 추출하는 과정

Tabular Data(수치 데이터) 전처리
: 결측값 처리, 정규화/표준화, 피처 선택 등

[ 데이터 정렬 : 데이터를 잠재 공간에 넣어주기 ]

이미지 데이터를 벡터화하면 고차원의 데이터로 변환됨 (이미 공간적으로 정렬되어 있음)
이미지 데이터 :  높이 × 너비 × 채널의 형태
각 픽셀의 위치가 공간상 좌표(x, y)에 해당하며 이 자체가 공간적인 정렬임
예: (3, 3) 위치의 픽셀은 항상 그 위치에 있고, 그 위치에 의미가 있음. 즉, 순서를 따로 바꾸거나 정렬할 필요 없음


수치 데이터는 보통 feature_1, feature_2, ..., feature_n 처럼 열(column) 단위로 존재
하지만 열의 순서가 바뀌어도 의미가 동일함
그래서 Transformer 같은 모델에 넣을 땐, 어떤 feature가 어디에 있는지를 알려주는 positional encoding이나 column embedding이 필요
또는 정해진 순서로 정렬해서 넣어줘야 모델이 feature 간 관계를 배울 수 있음


[ 퓨전 : 서로 다른 데이터를 합쳐주기 ]

말그대로 데이터를 합쳐주는 것
fusion_input = torch.cat([image_features, tabular_features], dim=-1)

퓨전은 시기에 따라 Late, Early, Intermediate로 나뉨


[학습 / 예측 / 평가]

 

 

 

📊 데이터 벡터화

 

이미지 벡터화 툴

벡터화 방법 설명 장점 단점
statmorph 은하 이미지에서 형태학적 수치(feature)를 추출해주는 패키지 (e.g., Gini, M20, Sersic index) - 도메인 지식 기반
- 인간이 해석 가능한 feature 제공
- 작은 데이터셋에도 적합
- 자동 feature 학습 X
- 이미지의 모든 패턴 반영 어려움
- 딥러닝에 비해 표현력 낮음
CNN 이미지 특징을 추출하기 위해 합성곱 필터를 사용하는 신경망 구조 - 시각 정보 추출에 특화
- 계산 효율 좋음
- 이미지 분류에서 기본 성능 좋음
- 전체 context 파악 어려움
- 위치 변화에 민감함
ResNet CNN 구조에 Residual Connection (skip connection)을 도입한 딥러닝 모델 - 더 깊은 네트워크 학습 가능
- 과적합/기울기 소실 문제 해결
- 계산량 많음
- 구조 복잡함
EfficientNet 연산량 대비 정확도가 좋은 CNN 기반 네트워크. depth, width, resolution을 균형 있게 scaling - 효율적 (accuracy vs. cost 우수)
- SOTA 성능 가능
- 구조가 자동 튜닝되어 해석이 어려움
- 작은 데이터셋에선 과적합 가능
ViT 이미지를 patch로 나눈 후 Transformer를 적용해 특징 추출 - 전체 이미지 context 학습 가능
- 사전학습 모델과 결합 시 성능 좋음
- 데이터 많이 필요
- 연산 비용 큼
Swin Transformer 이미지를 window 단위로 나눠 로컬 attention 적용하는 Vision Transformer 변형 - 연산 효율 개선
- 지역/전체 정보 모두 포착
- 구조 복잡
- 최적화 난이도 높음
CLIP 텍스트 + 이미지를 함께 학습한 멀티모달 모델 (OpenAI) - 다양한 개념 인식 가능
- 라벨 없는 데이터에 강함
- zero-shot 분류 가능
- 사전 학습이 중요
- 특정 task에 최적화 필요
Timm 라이브러리 다양한 SOTA 모델들(ResNet, EfficientNet, ViT 등)을 제공하는 PyTorch 기반 라이브러리 - 다양한 백본 손쉽게 사용 가능
- 코드 최적화 잘 돼 있음
- 라이브러리 자체는 모델 아님
- 모델 선택, 튜닝은 사용자 몫
Zoobot이 Timm 라이브러리를 사용해서 이미지 벡터화 툴을 선택할 수 있도록 함

from zoobot.pytorch.model import TimedModel
model = TimedModel(
    model_name='resnet50',  # timm에서 제공하는 모델 이름
    num_classes=4,
    pretrained=True
)​

 

📊  데이터 정렬

Tabular Data 정렬 툴

모델  범주형 처리 연속형 처리 피처 간 상호작용 복잡도 성능
MLP One-hot / Embedding 그대로 사용 약함 ★☆☆ 보통
TabTransformer Embedding + Self-Attention 그대로 사용 강함 (범주형에 한정) ★★★ 좋음
FT-Transformer Embedding 후 토큰화 Embedding 후 토큰화 강함 (전 피처) ★★★★ 매우 좋음

 

 

📊  퓨전


퓨전 방식 설명 장점 단점
Early Fusion 입력부터 같이 처리 복합 표현 학습 가능 스케일 민감, 결측 취약
Late Fusion 각자 처리 후 마지막에 합침 모듈성 좋고 유연함 modality 간 상호작용 학습 부족
Intermediate Fusion 중간에 attention 등으로 교차 연결 상호작용 + 유연성 구현 복잡도와 연산량
  • 데이터가 완전히 같이 들어오고, 상호작용이 중요하다면 → Early 또는 Intermediate
  • 각 modality가 독립적이고 해석 가능해야 한다면 → Late
  • Cross-Modality 관계가 핵심이라면 → Intermediate (Cross-Attention 짱짱)

 

 


 

Architecture