Diffusion 은 왜 Unet을 좋아해?

ad_official·2025년 1월 22일

diffusion

목록 보기
11/12

-1. 들어가기 전에



0. Low-Level Features VS High-Level Features

  • 이 두 가지 용어는 주로 컨볼루션 신경망(CNN)의 특징 추출 과정에서 발생하는 다양한 수준의 정보 표현을 설명하는 데 사용

1.1 Low-Level Features

  • 정의:
    • Low-Level Features은 주로 이미지의 기본적인 시각적 요소를 포착
    • 이는 에지(edge), 모서리(corner), 텍스처(texture), 색상(color) 등과 같은 저차원적이고 지역적인 정보를 포함
  • 추출 과정:
    • U-Net의 엔코더(Contracting Path) 부분에서, 초기 층들은 주로 저해상도 특징을 학습하게 됩니다.
  • 특징:
    • 고해상도 정보: 원본 이미지의 세밀한 공간 정보를 유지합니다.
    • 지역적 정보: 작은 영역 내의 정보에 집중합니다.
    • 저차원적 표현: 단순하고 기본적인 시각적 요소를 포함합니다.

1.2 High-Level Features

  • 정의:

    • High-Level Features은 이미지의 추상적이고 전역적인 정보를 포착
    • 이는 객체의 형태(shape), 구조(structure), 의미론적 의미(semantic meaning) 등과 같은 고차원적이고 복잡한 정보를 포함
  • 추출 과정:

    • 엔코더의 깊은 층을 지나면서, 네트워크는 이미지의 복잡한 패턴의미 있는 구조를 학습하게 됩니다.
    • 이 과정에서 특징 맵의 해상도은 낮아지지만, 채널 수는 증가하여 더 풍부한 정보가 담깁니다.
  • 특징:

    • 저해상도 정보: 공간적 해상도는 낮아지지만, 더 추상적인 정보를 포함합니다.
    • 전역적 정보: 이미지 전체의 맥락을 이해하는 데 도움이 됩니다.
    • 고차원적 표현: 복잡하고 의미 있는 패턴을 포함합니다.



1. U-net의 장단점

1.1. U-Net의 주요 구조적 특징

  1. 엔코더-디코더 구조
    • 엔코더(Contracting path): Convolution과 풀링(Pooling)을 거치며 점차적으로 공간적 크기를 줄이면서, 이미지에서 추상적 특징(High-level features)을 추출한다.
    • 디코더(Expanding path): Upsampling이나 Transposed Convolution 등을 통해 공간적 크기를 복원하면서, 세밀한 위치 정보를 회복하고 분할 맵(segmentation map)을 복원한다.
  2. Skip Connection(스킵 연결)
    • 엔코더의 특정 레이어에서 추출한 로컬(feature-level) 정보를 디코더의 대응되는 레이어에 직접 전달하는 구조
    • 이렇게 함으로써 깊은 계층을 거치면서 사라질 수 있는 저수준 특징위치 정보를 디코더에서 다시 사용할 수 있게 되어 정확한 경계(Edge) 복원에 유리하다.

1.2. U-Net의 장점

  1. 적은 데이터로도 효과적인 학습

    • 원 저자들의 실험(의료 영상)에서 매우 적은 수의 학습 데이터(수십 장~수백 장)로도 좋은 성능을 낸다는 것이 알려졌다.
    • 이는 스킵 연결을 통한 저해상도 + 고해상도 특징의 결합이 효과적으로 이뤄지기 때문이며, 데이터 보강(Data Augmentation) 전략도 함께 사용하기 용이하다.
  2. 경계 정보를 잘 유지

    • 디코더로 올라오는 과정에서 스킵 연결이 세밀한 공간 정보(경계, 모서리 등)를 유지하기 때문에, 오브젝트의 정확한 형태 복원에 강점이 있다.
  3. 다양한 해상도 정보의 통합

    • 엔코더에서 여러 층을 거치며 추출된 다양한 스케일의 특징을 디코더에서 복합적으로 활용한다.
    • 저해상도에서 얻은 전역적(Contextual) 정보와 고해상도에서 얻은 미세(Micro) 정보가 결합되어, 픽셀 단위의 분류/분할 작업에 적합하다.
  4. 확장성 및 변형 구조의 용이성

    • U-Net은 비교적 구조가 직관적이어서, 다양한 변형(Attention U-Net, Residual U-Net, Multi-Scale U-Net 등)으로 쉽게 확장 가능하다.
    • 모델 최적화나 특화된 기능(예: 3D U-Net, 2.5D U-Net)을 적용하기에도 편리하다.

1.3. U-Net의 단점

  1. 높은 메모리 사용량
    • U-Net은 엔코더뿐 아니라 디코더에서도 대칭적으로 레이어를 쌓고, 스킵 연결에 필요한 중간 피처맵(feature map)도 저장해야 한다.


2. Diffusion + Unet?

2.1. 결론 요약

  1. 2025년 기준 Diffusion 모델 분야에서,

    • 순수 CNN 기반 U-Net은 여전히 주류 혹은 표준 아키텍처
    • 단, 실제 구현에서는 크로스 어텐션, 시간 임베딩 등의 모듈을 추가해 하이브리드 형태가 흔한 형태
    • TransformerHybrid 형태(예: CNN + Transformer + Cross Attention)로의 확장이 활발하며,
    • 완전히 CNN 기반 U-Net을 벗어난 다양한 구조도 다수 제안되고 있음
  2. U-Net이 많이 활용되는 주요 이유

    • (1) 단계적 노이즈 제거엔코더-디코더 구조가 자연스럽게 맞물림
    • (2) 스킵 연결을 통해 고해상도 디테일 유지가 용이
    • (3) 시간 임베딩(Diffusion 단계) 주입이 간단하고 효과적
    • (4) 여러 해상도에서 조건부 생성(Text/Image 등) 하기 좋은 유연한 구조

2.2. Diffusion 모델에서 U-Net을 많이 활용하는 이유

2.2.1. 시간 임베딩(temporal embedding)과의 결합 용이

  • Diffusion 모델에서 중요한 요소 중 하나가 시간 단계(시점) t를 어떻게 네트워크에 주입(conditioning)하느냐
    • 보통은 sin/cos 주기의 포지셔널 인코딩(PE, positional encoding) 같은 방식을 CNN에 삽입하거나,
    • U-Net의 중간 레이어(예: 각 블록마다 AdaGN(Adaptive Group Norm) 형태로 t 임베딩을 곱해주거나, Residual 블록에 직접 더하는 형태)를 통해 시간 정보를 추가
  • CNN 기반의 U-Net 구조는,
    • 블록 단위로 매우 간단하게 time_embeddingResidual connection 형태로 주입할 수 있으며,
    • 이로 인해 시간 조건(현재 몇 번째 Diffusion 스텝인가?)을 네트워크가 체계적으로 학습할 수 있음
  • Transformer 기반 구조나 다른 복잡한 아키텍처에 비해서,
    • 상대적으로 간단한 모듈 추가만으로 시간 정보를 주입할 수 있다는 것은 이론적·구현적 장점

2.2.2. 여러 해상도(멀티 스케일) 조건부 생성에 유리

  • Stable Diffusion(Latent Diffusion) 등에서 보듯이,
    • 텍스트 조건(text prompt)을 Cross Attention 형태로 추가하고,
    • 이미지 역시 매우 다양한 해상도(512×512, 768×768, etc.)로 다룰 수 있습니다.
  • U-Net은 엔코더-디코더 구조상,
    • 각 해상도 레벨에서 Cross Attention이나 조건부 모듈(Conditional BatchNorm, AdaGN 등)을 손쉽게 붙일 수 있습니다.
    • 예컨대 중간 레이어마다 텍스트 임베딩을 어텐션으로 결합함으로써, 텍스트와 이미지의 멀티 스케일 조합을 지원
  • 이처럼 U-Net은 다양한 해상도에서 다양한 타입의 조건(condition)을 섞기에 적합한 유연성을 지닌 구조
profile
ad_official

0개의 댓글