Архитектура 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. **Контекстную информацию**: признаки из кодирующего пути дополняют контекст из декодирующего.
Математически пропускающее соединение для уровня можно записать как:
где — операция апсемплинга (транспонированная свёртка),
— конкатенация по канальной размерности,
— карта признаков с уровня
кодирующего пути,
— карта признаков уровня
декодирующего пути.
Функция потерь
Для задач бинарной сегментации U-Net использует модифицированную бинарную перекрёстную энтропию с весами для пикселей:
где — вес пикселя, вычисляемый на основе расстояния до границ объектов. Это позволяет сети уделять больше внимания границам, что критически важно для медицинской сегментации. Веса вычисляются как:
где и
— расстояния до двух ближайших границ,
— вес для балансировки классов.
Пример работы 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 остаётся стандартом в медицинской сегментации, а современные исследования направлены на интеграцию трансформеров, самообучение и автоматическую настройку гиперпараметров.
См. также
- Свёрточные нейронные сети
- Семантическая сегментация
- FCN
- ResNet
- Трансформеры в компьютерном зрении
- Медицинская диагностика
Примечания
Литература
- 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.
- 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.
- Ç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.
- 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.
- Oktay O., Schlemper J., Folgoc L. L., et al. (2018). Attention U-Net: Learning where to look for the pancreas. arXiv:1804.03999.
- 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.
- 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.
- Chen J., Lu Y., Yu Q., et al. (2021). TransUNet: Transformers make strong encoders for medical image segmentation. arXiv:2102.04306.
- Cao H., Wang Y., Chen J., et al. (2021). Swin-Unet: Unet-like pure transformer for medical image segmentation. arXiv:2105.05537.

