Эндрю Ын: «Как работают свертки по трехмерным объемам»

DeepLearning.AI 264 тыс. 10 мин 2 мин 07.11.2017
Главное

Принципы свертки по объемам в глубоком обучении 0:01

Понимание того, как работают свертки не только с двумерными изображениями, но и с трехмерными объемами, является фундаментальным этапом в проектировании сверточных нейронных сетей (CNN). Эндрю Ын объясняет этот процесс на примере работы с цветными RGB-изображениями, которые по своей структуре уже являются трехмерными тензорами.

Основы работы с трехмерными данными 0:13

При обработке RGB-изображения входные данные представляются как стек из трех матриц, соответствующих каналам красного, зеленого и синего цветов. Например, если обычное изображение имеет размер $6 \times 6$, то цветное RGB-изображение будет иметь размер $6 \times 6 \times 3$.

Для извлечения признаков из такого объема требуется фильтр соответствующей размерности. Если входной объем имеет $N_c$ каналов, то фильтр также должен иметь $N_c$ каналов. Важнейшие правила свертки по объемам:

Детектирование признаков разного типа 4:00

Настройка параметров фильтра позволяет детектировать специфические признаки. Например, чтобы найти вертикальные границы только в красном канале, можно задать ненулевые значения весов для первого слоя фильтра и нулевые — для остальных. Если же цель — детектировать границы независимо от цвета, веса распределяются по всем трем каналам одинаково.

Использование нескольких фильтров одновременно 6:04

Для полноценной работы нейронной сети часто требуется детектировать множество различных признаков одновременно: вертикальные и горизонтальные линии, диагонали и более сложные текстуры.

Применение нескольких фильтров происходит следующим образом:

  1. Первый фильтр (например, для вертикальных линий) дает выходную матрицу $4 \times 4$.
  2. Второй фильтр (например, для горизонтальных линий) дает вторую матрицу $4 \times 4$.
  3. Результаты стекируются вместе, формируя итоговый выходной объем $4 \times 4 \times 2$.

По словам Эндрю Ына, количество каналов в выходном объеме в точности равно количеству использованных фильтров.

Формализация размерностей 8:08

При использовании свертки по объемам размерность выходного слоя вычисляется по стандартным формулам с учетом количества фильтров ($n_c'$):

Данная формула применима при условии использования шага (stride) равного 1 и отсутствии padding. В технической литературе размерность этого третьего измерения часто называют «глубиной» (depth), однако Эндрю Ын предпочитает термин «каналы» (channels), чтобы избежать путаницы с глубиной всей нейронной сети.

💬 Цитаты

«Количество каналов в вашем изображении должно совпадать с количеством каналов в вашем фильтре.»

«По сути, количество каналов в выходном объеме равно количеству используемых вами фильтров.»

👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Свертка по объемам (Convolutions Over Volumes)
Операция свертки, при которой фильтр имеет ту же глубину (количество каналов), что и входной объем данных.
RGB-изображение
Изображение, состоящее из трех цветовых каналов: красного, зеленого и синего, представленное как трехмерный массив данных.
Каналы (Channels)
Размерность третьего измерения тензора в сверточных сетях, соответствующая либо цветовым компонентам, либо количеству примененных фильтров.
Стекирование (Stacking)
Процесс объединения нескольких двумерных выходных матриц в единый трехмерный объем.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Convolutional Neural Networks Andrew Ng DeepLearning.AI Computer Vision