Архитектура U-Net

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM GPT-4 Turbo и проверена участником Amir Baidanov 02:59, 19 июля 2026 (MSD)


U-Net — архитектура свёрточной нейронной сети, разработанная для задач семантической сегментации изображений, особенно в медицинской диагностике. Предложенная Олафом Роннебергером и его коллегами в 2015 году, U-Net получила название благодаря характерной U-образной форме, состоящей из симметричных кодирующей и декодирующей частей [1]. Ключевое новшество архитектуры — пропускающие соединения (skip connections), передающие высокоразрешающие признаки из кодирующей части в декодирующую, что позволяет сохранить детали при восстановлении пространственного разрешения.

Содержание

Интуитивная картина

Представьте, что вы хотите нарисовать точную карту города по спутниковому снимку. Сначала вы делаете общий обзор, выделяя основные районы и дороги (кодирующий путь). Затем вы начинаете детализировать, но при этом вы забыли мелкие детали, потому что слишком далеко отошли от исходного изображения. Чтобы этого избежать, вы постоянно сверяетесь с оригиналом, перенося важные детали с каждого шага обзора на соответствующий шаг детализации. Именно так работают пропускающие соединения в U-Net: они передают детальную информацию с каждого уровня кодирующего пути на соответствующий уровень декодирующего пути, позволяя восстановить точные границы объектов.

В отличие от классических свёрточных сетей, которые сжимают изображение до вектора признаков и затем расширяют его (что приводит к потере пространственной информации), U-Net сохраняет и передаёт пространственные детали на всех уровнях, что делает её идеальной для пиксельной классификации.

Историческая справка

U-Net была разработана в 2015 году в Computer Science Department, University of Freiburg, для участия в соревновании ISBI 2015 по сегментации нейронных структур в электронно-микроскопических изображениях. Архитектура стала прямым развитием Fully Convolutional Networks (FCN), предложенных ранее в том же году [1].

Ключевое отличие U-Net от FCN — симметричная структура с пропускающими соединениями, которые позволили значительно улучшить точность сегментации. Архитектура быстро стала стандартом в медицинской визуализации, выиграв множество соревнований по сегментации. В последующие годы появились многочисленные модификации: 3D U-Net для объёмных данных, Attention U-Net с механизмами внимания, U-Net++ с плотными соединениями и другие.

Архитектура U-Net

Кодирующий путь (Contracting Path)

Кодирующий путь следует классической архитектуре свёрточной сети:

1. **Свёрточные блоки**: каждый блок состоит из двух свёрток 3×3 с ReLU-активацией; 2. **Пулинг**: после каждого блока выполняется max pooling 2×2 с шагом 2 для уменьшения пространственной размерности вдвое; 3. **Увеличение числа каналов**: после каждого пулинга число каналов удваивается (64 → 128 → 256 → 512 → 1024).

На каждом уровне кодирующий путь сохраняет карту признаков, которая будет передана в соответствующий уровень декодирующего пути через пропускающее соединение.

Декодирующий путь (Expansive Path)

Декодирующий путь восстанавливает пространственное разрешение:

1. **Транспонированные свёртки** (up-convolution): увеличивают пространственную размерность вдвое (обычно с шагом 2); 2. **Конкатенация**: карта признаков после транспонированной свёртки конкатенируется с сохранённой картой с соответствующего уровня кодирующего пути; 3. **Свёрточные блоки**: после конкатенации выполняются две свёртки 3×3 с ReLU-активацией; 4. **Уменьшение числа каналов**: число каналов уменьшается вдвое на каждом уровне.

Финальный слой — свёртка 1×1 с сигмоидной (для бинарной сегментации) или softmax-активацией (для многоклассовой), дающая карту вероятностей для каждого пикселя.

Пропускающие соединения

Пропускающие соединения (skip connections) — ключевая инновация U-Net. Они соединяют каждый уровень кодирующего пути с соответствующим уровнем декодирующего пути, передавая:

1. **Высокоразрешающие признаки**: детали, потерянные при пулинге, восстанавливаются из кодирующего пути; 2. **Пространственную информацию**: точное положение объектов сохраняется; 3. **Контекстную информацию**: признаки из кодирующего пути дополняют контекст из декодирующего.

Математически пропускающее соединение для уровня l можно записать как:

F_{dec,l} = \text{Conv}(\text{Concat}(U(F_{dec,l+1}), F_{enc,l}))

где U — операция апсемплинга (транспонированная свёртка), Concat — конкатенация по канальной размерности, F_{enc,l} — карта признаков с уровня l кодирующего пути, F_{dec,l} — карта признаков уровня l декодирующего пути.

Функция потерь

Для задач бинарной сегментации U-Net использует модифицированную бинарную перекрёстную энтропию с весами для пикселей:

L = -\sum_{x \in \Omega} w(x) \left[ y(x) \log p(x) + (1 - y(x)) \log(1 - p(x)) \right]

где w(x) — вес пикселя, вычисляемый на основе расстояния до границ объектов. Это позволяет сети уделять больше внимания границам, что критически важно для медицинской сегментации. Веса вычисляются как:

w(x) = w_c(x) + w_0 \cdot \exp\left(-\frac{d_1(x)^2 + d_2(x)^2}{2\sigma^2}\right)

где d_1(x) и d_2(x) — расстояния до двух ближайших границ, w_c(x) — вес для балансировки классов.

Пример работы U-Net

Рассмотрим задачу сегментации опухоли на снимке МРТ мозга:

1. **Вход**: изображение размером 572×572 пикселя; 2. **Кодирующий путь**:

  - Уровень 1: 572×572 → 568×568 (64 канала) → 284×284 (64 канала) после пулинга;
  - Уровень 2: 284×284 → 280×280 (128 каналов) → 140×140 (128 каналов);
  - Уровень 3: 140×140 → 136×136 (256 каналов) → 68×68 (256 каналов);
  - Уровень 4: 68×68 → 64×64 (512 каналов) → 32×32 (512 каналов);
  - Уровень 5: 32×32 → 28×28 (1024 канала) → (для декодинга);

3. **Пропускающие соединения**: каждая карта признаков (568×568×64, 280×280×128, 136×136×256, 64×64×512) сохраняется для передачи в декодер; 4. **Декодирующий путь**:

  - Уровень 5 → 4: up-conv 28×28×1024 → 56×56×512 + конкатенация с 64×64×512 → 52×52×512;
  - Уровень 4 → 3: up-conv → 104×104×256 + конкатенация с 136×136×256 → 100×100×256;
  - Уровень 3 → 2: up-conv → 200×200×128 + конкатенация с 280×280×128 → 196×196×128;
  - Уровень 2 → 1: up-conv → 392×392×64 + конкатенация с 568×568×64 → 388×388×64;

5. **Выход**: свёртка 1×1 → 388×388×1 (карта вероятностей для опухоли).

Результат — карта сегментации, где каждый пиксель классифицируется как принадлежащий опухоли или нормальной ткани.

Применения

Медицинская диагностика

U-Net широко используется в медицинской визуализации:

  • Сегментация органов (печень, почки, сердце) на КТ и МРТ;
  • Сегментация опухолей (мозга, лёгких, груди);
  • Сегментация клеток в микроскопических изображениях;
  • Анализ сосудистых структур;
  • Сегментация костей и зубов на рентгеновских снимках.

Другие области

  • Сегментация спутниковых снимков (здания, дороги, растительность);
  • Промышленный контроль качества (дефекты, трещины);
  • Обработка видео и оптический поток;
  • Реконструкция 3D-сцен;
  • Сегментация в сельском хозяйстве (поля, культуры).

Модификации архитектуры

3D U-Net

Расширение U-Net для обработки трёхмерных данных (например, КТ-сканы, МРТ-объёмы). Использует 3D-свёртки и 3D-пулинг, что значительно увеличивает вычислительную сложность, но позволяет работать с объёмными данными [1].

U-Net++

Модификация с плотными соединениями (dense skip connections), где каждый уровень декодера соединён со всеми предыдущими уровнями кодера. Это улучшает поток градиентов и позволяет сети адаптивно выбирать уровень детализации [1].

Attention U-Net

Добавляет механизм внимания в пропускающие соединения, позволяя сети фокусироваться на наиболее релевантных признаках и подавлять шумовые [1].

Res-UNet

Интеграция остаточных блоков из ResNet в архитектуру U-Net, что позволяет обучать более глубокие сети и улучшает поток градиентов [1].

V-Net

Вариант для сегментации объёмных данных с использованием остаточных соединений и функции потерь на основе коэффициента Дайса (Dice loss) вместо кросс-энтропии [1].

nnU-Net

Автоматизированная конфигурация U-Net, адаптирующая архитектуру и гиперпараметры под конкретный набор данных. nnU-Net ("no new U-Net") стала стандартом в медицинской сегментации благодаря своей эффективности и простоте использования [1].

Swin-UNet

Сочетание U-Net с трансформерной архитектурой Swin Transformer, использует механизмы внимания вместо свёрток в некоторых частях сети [1].

Преимущества и недостатки

Преимущества

  • Высокая точность сегментации благодаря пропускающим соединениям;
  • Эффективное использование пространственной информации;
  • Работает с небольшим числом размеченных данных (благодаря аугментации);
  • Модульность и возможность адаптации под разные задачи;
  • Большое число модификаций для различных применений.

Недостатки

  • Высокая вычислительная сложность (особенно для 3D-данных);
  • Требует большого объёма памяти GPU;
  • Трудоёмкая настройка гиперпараметров;
  • При работе с очень большими изображениями может быть неэффективной;
  • Требует много размеченных данных (особенно с весами для границ).

Современные направления

  • U-Net с трансформерами: интеграция механизмов внимания для улучшения выделения глобального контекста [1];
  • Self-supervised обучение: предобучение U-Net на неразмеченных данных;
  • Federated learning: обучение U-Net на распределённых данных без их централизации;
  • Обработка видео: адаптация U-Net для сегментации в видео-потоках;
  • Интерпретируемость: методы визуализации и объяснения решений U-Net.

Краткий вывод

U-Net — одна из наиболее успешных архитектур для семантической сегментации, особенно в медицинской визуализации. Её ключевая инновация — пропускающие соединения, передающие высокоразрешающие признаки из кодирующей части в декодирующую, что позволяет сохранить пространственные детали при восстановлении разрешения. За годы существования архитектура породила множество модификаций (3D U-Net, Attention U-Net, U-Net++, nnU-Net), адаптированных для различных задач и типов данных. Несмотря на вычислительные затраты, U-Net остаётся стандартом в медицинской сегментации, а современные исследования направлены на интеграцию трансформеров, самообучение и автоматическую настройку гиперпараметров.

См. также

Примечания


Литература

  1. Ronneberger O., Fischer P., Brox T. (2015). U-Net: Convolutional networks for biomedical image segmentation. International Conference on Medical Image Computing and Computer-Assisted Intervention, 234–241.
  2. Long J., Shelhamer E., Darrell T. (2015). Fully convolutional networks for semantic segmentation. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 3431–3440.
  3. Çiçek Ö., Abdulkadir A., Lienkamp S. S., Brox T., Ronneberger O. (2016). 3D U-Net: Learning dense volumetric segmentation from sparse annotation. International Conference on Medical Image Computing and Computer-Assisted Intervention, 424–432.
  4. Zhou Z., Siddiquee M. M. R., Tajbakhsh N., Liang J. (2018). UNet++: A nested U-Net architecture for medical image segmentation. Deep Learning in Medical Image Analysis and Multimodal Learning for Clinical Decision Support, 3–11.
  5. Oktay O., Schlemper J., Folgoc L. L., et al. (2018). Attention U-Net: Learning where to look for the pancreas. arXiv:1804.03999.
  6. Milletari F., Navab N., Ahmadi S. A. (2016). V-Net: Fully convolutional neural networks for volumetric medical image segmentation. 2016 Fourth International Conference on 3D Vision, 565–571.
  7. Isensee F., Jaeger P. F., Kohl S. A. A., Petersen J., Maier-Hein K. H. (2021). nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation. Nature Methods, 18(2): 203–211.
  8. Chen J., Lu Y., Yu Q., et al. (2021). TransUNet: Transformers make strong encoders for medical image segmentation. arXiv:2102.04306.
  9. Cao H., Wang Y., Chen J., et al. (2021). Swin-Unet: Unet-like pure transformer for medical image segmentation. arXiv:2105.05537.

Ссылки