C24 · Нейросетевые методы
Как устроены архитектуры CNN
Сравним пути информации, размеры и стоимость блоков, а не только названия сетей.
Если нужны основы
Теория
Последовательность, ветвление, короткая связь
Начнём с вопроса: каким путём одна клетка исходного изображения попадёт в ответ? При последовательном соединении каждый слой получает только выход предыдущего. Два фильтра 3×3 могут зависеть от области 5×5 исходника; три — от 7×7. В примере ветвь F действительно несколько раз усредняет изображение: это прозрачная проверка путей и области зависимости, а не обученная сеть.
Короткая связь добавляет исходное x к F(x): появляется отдельный неизменённый вклад. Включи и выключи её при тех же слоях и выбранной клетке. Сумма требует одинаковой формы: из двух карт 16×16×1 получится одна такая карта. Объединение каналов, concat, оставит оба числа отдельно и даст 16×16×2. Это разные операции; увеличение яркости от суммы само по себе не доказывает улучшение качества или обучения.
Обычный путь и короткая связь
Схема показывает путь x через ветвь F из усреднений 3×3. Включи короткую связь: исходный x пойдёт в сумму в обход F. Нажимай этапы и сравни поля на одной шкале.
- Вход x16×16×1 · одна карта
- Передать x без измененияВход x → Сумма x + F(x)
Точные значения — в разборе точки
Серая шкала 0…2: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…2: от чёрного к белому.
Разобрать выбранную точку
Что показывает график
Каждый слой расширяет область зависимости. Короткая связь сохраняет прямой путь x, но не обещает, что выход станет красивее или останется в 0…1.
- Слоёв 3×3
- 2
- Размер 16×16 сохраняется
- 16
- Поле восприятия
- 5
- Умножений в ветви
- 4608
- Сложений короткого пути
- 256
Параметры и подробности
Здесь F — заданная цепочка усреднений 3×3, а не ResNet с обученными весами. При сложении размер и число каналов совпадают. Сложение не равно объединению каналов.
Выбери точку на изображении. Стрелки перемещают её; Home и End — к краям строки. Просмотр не изменяет вычисление.
Для изменения примера нужен JavaScript и Canvas. Рассчитанные изображения доступны выше.
Меньше операций и больше пространственных деталей
Обычная свёртка k×k между C входными и O выходными каналами имеет весов. Depthwise сначала применяет отдельное пространственное ядро к каждому каналу, pointwise 1×1 смешивает каналы: . Например, k=3, C=16, O=32 даёт 4608 против 656 весов без смещений. Это изменение выразительности блока, а не бесплатная замена один к одному.
При карте 16×16 каждый такой вес применяется в 256 положениях: здесь это 1 179 648 против 167 936 умножений за один проход, без смещений и других операций. Число операций — полезная оценка, но не измерение скорости браузера или GPU: важны память, реализация и размеры. Уменьшение карты вдвое по обеим сторонам уменьшает число положений вчетверо, но теряет мелкие детали. Следующий пример показывает, зачем сохранять для них отдельный путь.
Два разрешения и два канала
После усреднения блока 2×2 карта 16×16 становится 8×8: разные мелкие рисунки могут дать одинаковые средние. Это та же потеря информации, которую показывают масштабы и пирамиды в C14. Свёртка на маленькой сетке охватывает больший участок исходного изображения. Простое повторение клеток вернёт размер 16×16, но не утраченный рисунок.
Сохраним исходную карту рядом с увеличенной. Concat означает объединение вдоль оси каналов: в каждой точке лежит пара [u,x], то есть 16×16×2, а не сумма. Затем свёртка 1×1 умножает эту пару на строку весов [1−α, α]. Это знакомое смешивание каналов матрицей из M02; сдвига по пространству здесь нет. На схеме узел concat не выбирается: два его канала уже доступны отдельно в исходном и увеличенном полях.
В U-Net признаки высокого разрешения объединяются с увеличенным выходом декодера. Наш одноуровневый блок показывает только этот принцип: усреднение, фиксированную свёртку, повторение клеток и управляемую смесь. Это не полная U-Net: нет обучения, набора уровней и предсказания классов. При получаем исходное благодаря прямой копии, а не потому что декодер научился восстанавливать детали.
Грубый контекст и прямой путь деталей
Проследи схему вниз до 8×8 и обратно до 16×16. Задача сравнения — сохранить исходные мелкие детали. При α=0 проверь, какие детали потеряны и какова ошибка; при α=1 исходник вернётся из сохранённой копии. Сравни счётчик умножений на сетке 8×8 и 16×16: экономия грубого пути не равна бесплатному восстановлению.
- Вход x16×16×1 · канал прямого пути
- Объединить каналы16×16×2 · [увеличенный, исходный]
- Сохранить исходную карту xВход x → Объединить каналы
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Разобрать выбранную точку
Что показывает график
Увеличение не восстанавливает потерянные детали. Они доступны по отдельному прямому пути. Concat сохраняет оба канала, а свёртка 1×1 решает, сколько каждого взять. Здесь её веса выбираешь ты, обучения нет.
- Ошибка относительно исходника
- 0.0007
- Умножений 3×3 на сетке 8×8
- 576
- Умножений 3×3 на сетке 16×16
- 2304
- Каналов после concat
- 2
- Вес грубого пути
- 0.5
- Вес прямого пути
- 0.5
Параметры и подробности
Одноуровневый авторский encoder–decoder с фиксированными весами, не U-Net и не сегментация. Края свёртки повторяются. Грубая клетка — среднее ровно одного блока 2×2; увеличение повторяет его позицию без сдвига сетки. У concat два скалярных канала: они видны отдельно как «увеличенный грубый путь» и «исходная карта», а не как RGB. Последний слой 1×1 смешивает их с весами [1−α, α].
Выбери точку на изображении. Стрелки перемещают её; Home и End — к краям строки. Просмотр не изменяет вычисление.
Для изменения примера нужен JavaScript и Canvas. Рассчитанные изображения доступны выше.
Увеличение карты не обращает потерю информации
Транспонированная свёртка — транспонированная матрица заданного линейного преобразования. Она складывает отпечатки входных элементов в большой сетке. Это не обратная матрица: после уменьшения разные исходные изображения могли дать один результат.
Resize-then-convolution сначала интерполирует карту, затем фильтрует. Сравнение покрытия изолирует один источник шахматных артефактов. Реальный вид зависит также от весов, границ и обучения. Большой размер выхода сам по себе не доказывает появление достоверной новой детали.
Откуда берётся шахматный узор
На правой карте выбери клетку: контуры покажут все накрывающие её отпечатки. Каждый добавляет ровно 1. Меняй размер отпечатка при том же шаге 2 и сравни число контуров с яркостью клетки. У края часть отпечатка может уходить за фрагмент бесконечной решётки.
Точные значения — в разборе точки
Серая шкала 0…4: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…4: от чёрного к белому.
Разобрать выбранную точку
Что показывает график
Ядро 3 при шаге 2 даёт чередование 1, 2 и 4 вкладов. Размер, кратный шагу, выравнивает покрытие внутри поля, но обученные веса всё равно могут создавать артефакты.
- Минимум покрытия
- 1
- Максимум покрытия
- 4
Параметры и подробности
Контуры справа — все отпечатки, накрывающие выбранную клетку: каждый добавляет ровно 1. Их число равно значению карты покрытия. Считаем бесконечную единичную решётку с шагом 2; часть контура у края может выходить за показанный фрагмент. Для 3×3 перекрытие неравномерно, для 2×2 и 4×4 — равномерно. Это карта покрытия, не работа генеративной модели.
Выбери точку на изображении. Стрелки перемещают её; Home и End — к краям строки. Просмотр не изменяет вычисление.
Для изменения примера нужен JavaScript и Canvas. Рассчитанные изображения доступны выше.
Где встречаются разобранные соединения
Справка и следующие методы
В LeNet, AlexNet и VGG можно узнавать последовательность локальных фильтров и уменьшений карты. Inception объединяет каналы нескольких параллельных ветвей. ResNet использует сложение с коротким путём, DenseNet — объединение прежних карт по каналам. Название сети не заменяет проверку размеров на соединении: сложение и concat требуют разных условий.
MobileNet использует раздельные пространственную и поканальную операции из расчёта стоимости выше. EfficientNet согласованно меняет глубину, ширину и входное разрешение. FCN и U-Net возвращают пространственный выход; у U-Net есть высокодетальные связи к декодеру. Пирамида признаков передаёт несколько разрешений головам задач. Сравнения в этой главе показывают механизмы и оценки операций, но не обученные результаты или рейтинг этих архитектур.
Практика
Проверь идею на другом условии. Следуй задаче над изображениями; разбор точки поможет объяснить результат. Эта практика не оценивается.
Каким путём вернулась деталь?
Начни с α=0: исходная карта и грубый выход различаются. Найди небольшую деталь, выбрав её на изображении. Плавно увеличь α и сравни вклады в этой клетке. При α=1 деталь вернулась по прямому пути — объясни, почему это не доказательство, что увеличение само её восстановило.
- Вход x16×16×1 · канал прямого пути
- Объединить каналы16×16×2 · [увеличенный, исходный]
- Сохранить исходную карту xВход x → Объединить каналы
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Разобрать выбранную точку
Что показывает график
Увеличение не восстанавливает потерянные детали. Они доступны по отдельному прямому пути. Concat сохраняет оба канала, а свёртка 1×1 решает, сколько каждого взять. Здесь её веса выбираешь ты, обучения нет.
- Ошибка относительно исходника
- 0.0029
- Умножений 3×3 на сетке 8×8
- 576
- Умножений 3×3 на сетке 16×16
- 2304
- Каналов после concat
- 2
- Вес грубого пути
- 1
- Вес прямого пути
- 0
Параметры и подробности
Одноуровневый авторский encoder–decoder с фиксированными весами, не U-Net и не сегментация. Края свёртки повторяются. Грубая клетка — среднее ровно одного блока 2×2; увеличение повторяет его позицию без сдвига сетки. У concat два скалярных канала: они видны отдельно как «увеличенный грубый путь» и «исходная карта», а не как RGB. Последний слой 1×1 смешивает их с весами [1−α, α].
Выбери точку на изображении. Стрелки перемещают её; Home и End — к краям строки. Просмотр не изменяет вычисление.
Для изменения примера нужен JavaScript и Canvas. Рассчитанные изображения доступны выше.
Игры
Проверь объяснение
Вопрос 1 из 5
Можно ли без преобразования сложить 16×16×8 и 16×16×16?
Точные значения — в разборе точки
Серая шкала 0…4: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Выбери один ответ. Он проверится сразу.
Ограничения и материалы
Границы этого примера
Показываем точные учебные блоки, не инференс перечисленных архитектур. Число весов не измеряет само по себе скорость, память или качество на устройстве.