Robocikowo>ROBOCIKOWO
Architektura

U-Net

2015AktywnyOpublikowano: 8 czerwca 2026Aktualizacja: 8 czerwca 2026Opublikowany
Konwolucyjna architektura encoder-decoder o kształcie litery U z połączeniami skip; standardowy szkielet segmentacji medycznej i predykcji szumu w modelach dyfuzyjnych.
Kluczowa innowacja
Symetryczna architektura encoder-decoder z połączeniami pomijającymi (skip connections) między poziomami o tej samej rozdzielczości, łącząca globalny kontekst z lokalnymi szczegółami w jednej różniczkowalnej sieci.
Kategoria
Architektura
Poziom abstrakcji
Building block
Poziom operacji
Element architekturyModel
Zastosowania
Segmentacja medyczna (CT, MRI, histopatologia, mikroskopia)Predykcja szumu w modelach dyfuzyjnych (DDPM, Stable Diffusion 1.x/2.x/SDXL)Image-to-image translation i transfer (Pix2Pix, ControlNet)Inpainting i outpaintingSuper-resolution i restorationSegmentacja satelitarna i lotniczaDiffusion policy w robotyceGeneracja wideo (SVD, AnimateDiff)

Jak działa

Encoder składa się z kilku poziomów; każdy poziom to dwie konwolucje 3×3 + ReLU + BatchNorm/GroupNorm, po których następuje 2× downsampling (max-pool lub stride-2). Liczba kanałów się podwaja na każdym poziomie (64 → 128 → 256 → 512 → 1024 w oryginale). Bottleneck na dnie U łączy ścieżki. Decoder upsampluje (transposed conv lub interpolacja + conv) i KONKATENUJE wynik z aktywacją z odpowiadającego poziomu encodera (skip connection), po czym następują dwie konwolucje. Wyjście to convolution 1×1 mapująca na liczbę klas (segmentacja) lub kanałów (regresja, predykcja szumu). W modelach dyfuzyjnych U-Net jest dodatkowo warunkowany na: (a) embedding kroku t (sinusoidalny, dodawany do każdego bloku), (b) embedding warunku c przez cross-attention. Self-attention działa w blokach o niskiej rozdzielczości (8×8, 16×16, 32×32) gdzie koszt N² jest opłacalny.

Rozwiązany problem

Klasyczne CNN do klasyfikacji tracą precyzję przestrzenną poprzez głębokie poolingi. Czyste sieci dekodujące bez bezpośredniego dostępu do wczesnych aktywacji nie potrafią odtworzyć dokładnych granic obiektów. U-Net rozwiązuje to przez skip connections, które dostarczają „świeże" lokalne informacje z encodera bezpośrednio do decodera, umożliwiając pixel-perfect predykcję na obrazach o oryginalnej rozdzielczości.

Komponenty

Contracting path (encoder)Stopniowe zmniejszanie rozdzielczości i wzrost wymiarowości cech

Sekwencja bloków konwolucyjnych z downsamplingiem. Każdy poziom kompresuje przestrzennie i podwaja kanały, ekstrahując coraz bardziej globalne cechy.

Expansive path (decoder)Stopniowe odbudowywanie rozdzielczości

Symetryczna ścieżka upsamplingu (transposed conv lub interpolacja + conv) odtwarzająca oryginalny rozmiar i redukująca kanały.

Skip connectionsŁączenie kontekstu globalnego z lokalnymi szczegółami

Aktywacje encodera są konkatenowane z odpowiadającymi aktywacjami decodera na tym samym poziomie rozdzielczości. Kluczowe dla precyzji granic.

BottleneckNajgłębszy poziom łączący encoder i decoder

Bloki konwolucyjne (i często attention) operujące na najmniejszej rozdzielczości i największej liczbie kanałów; zawiera najbardziej globalny kontekst.

Timestep embedding (variant: diffusion U-Net)Warunkowanie sieci na krok t procesu dyfuzji

Sinusoidalny embedding t przepuszczany przez MLP i dodawany jako bias do każdego bloku rezydualnego. Specyficzne dla U-Net w dyfuzji.

Oficjalna

Cross-attention (variant: text-conditioned diffusion U-Net)Wstrzykiwanie warunku tekstowego/multimodalnego

Q z aktywacji U-Net, K/V z embeddingu warunku c (np. CLIP). Dodawane w blokach attention na różnych rozdzielczościach.

Oficjalna

Implementacja

Pułapki implementacyjne
Artefakty szachownicy z transposed convŚrednia

Transposed conv z niewłaściwym kernelem produkuje regularne wzorce szachownicy widoczne zwłaszcza w generacji.

Rozwiązanie:Zastąpić transposed conv przez interpolację (bilinear/nearest) + zwykłą konwolucję.
Nierówności rozmiarów w skip connectionsŚrednia

Niezgodność rozdzielczości encoder-decoder przy nieparzystych rozmiarach lub złym paddingu uniemożliwia konkatenację.

Rozwiązanie:Padding dopasowany do głębokości U-Net, croppowanie przed konkatenacją lub same-padding konwolucji.
Eksplozja pamięci w 3D U-NetWysoka

Trójwymiarowe wolumeny medyczne kosztują O(D·H·W·C) pamięci — łatwo przekroczyć VRAM nawet na A100.

Rozwiązanie:Patch-based training/inference, mixed precision, gradient checkpointing.
BatchNorm nie pasuje do dyfuzjiŚrednia

Statystyki batchu zależą od rozkładu szumu i są niestabilne przy zmiennych krokach t.

Rozwiązanie:Użyć GroupNorm (DDPM/SD) lub LayerNorm.

Ewolucja

Oryginalny paper · 2015 · MICCAI 2015 · Olaf Ronneberger
U-Net: Convolutional Networks for Biomedical Image Segmentation
Olaf Ronneberger, Philipp Fischer, Thomas Brox
2015
U-Net — wprowadzenie
Punkt przełomowy

Ronneberger, Fischer & Brox publikują U-Net dla segmentacji biomedycznej; wygrywa ISBI cell tracking challenge.

2016
3D U-Net i V-Net

Rozszerzenie na trójwymiarowe wolumeny medyczne (Çiçek i in., Milletari i in.).

2018
nnU-Net — auto-konfigurowany pipeline medyczny

Isensee i in. tworzą generyczny framework U-Net automatycznie dostrajający hiperparametry per dataset.

2020
DDPM — U-Net jako sieć predykcji szumu
Punkt przełomowy

Ho i in. używają U-Net z attention i timestep embedding jako standardowego ε_θ w dyfuzji.

2022
Stable Diffusion U-Net z cross-attention
Punkt przełomowy

Latent Diffusion (Rombach i in.) wprowadza U-Net z cross-attention warunkowanym tekstem; szkielet SD 1.x/2.x/SDXL.

2023
SDXL — większa U-Net (2.6B)

SDXL skaluje U-Net do 2.6B parametrów z dwustopniowym refinementem dla 1024 px natywnie.

2023
ControlNet — warunkowanie U-Net dyfuzji

Zhang & Agrawala dodają równoległą zamrożoną kopię U-Net dla precyzyjnej kontroli (depth, pose, edges).

2024
DiT i SD3 — odejście od U-Net na rzecz Transformera

Diffusion Transformer (Peebles & Xie) i SD3 zastępują U-Net architekturą czystego Transformera; U-Net pozostaje jednak dominująca w wielu pipeline'ach.

Hiperparametry (konfigurowalne osie)

Depth (number of levels)Wysoka

Liczba poziomów piramidy (typowo 4-5 w segmentacji, 4-6 w dyfuzji).

Base channelsKrytyczna

Liczba kanałów na pierwszym poziomie (64 w oryginale, 128-320 w SD/SDXL).

Channel multipliersWysoka

Mnożniki kanałów per poziom (np. [1,2,4,4] w SD).

Attention resolutionsWysoka

Rozdzielczości, na których działają self/cross-attention (np. 32×32, 16×16, 8×8).

Normalization layerŚrednia

BatchNorm (oryginalna), GroupNorm (DDPM/SD), LayerNorm. GroupNorm jest standardem w dyfuzji.

Upsampling methodŚrednia

Transposed conv vs interpolation + conv (mniej artefaktów szachownicy).

Paradygmat wykonania

Tryb główny
Gęsty

Cała sieć jest aktywna na każdy obraz / krok dyfuzji.

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

Poziom równoległości
W pełni równoległy

Wszystkie konwolucje, skip connections i attention są w pełni równoległe w batchu i przestrzennie. Brak wewnętrznej rekurencji.

Zakres
TreningInferencja

Wymagania sprzętowe

Podstawowe

Konwolucje, attention i upsampling są idealnie dopasowane do tensor cores. Cała rodzina U-Net działa szczytowo na GPU NVIDIA/AMD.

Dobry fit

TPU obsługuje konwolucje 2D bardzo dobrze; trening Imagen i innych dyfuzji odbywa się na TPU.

Ograniczony

Mała U-Net dla segmentacji medycznej działa na CPU z AVX2/AVX-512, ale dyfuzyjna inferencja jest praktycznie niedostępna.