Найти в Дзене
machine learning engineer

Свертка и пулинг. Простым языком о компьютерном зрении.

Тип статьи: [Машинное Обучение] (смотрите Карту блога)

В математике довольно часто за сложным и объемным аппаратом стоит простая и интуитивно понятная логика. Так и с компьютерным зрением.

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

Сеть состоит из слоев нейронов. Слои следуют один за одним и по цепочке обрабатывают некоторую информацию. Каждый слой, в процессе обучения сети, учится решать некоторую задачу. Чем слой дальше от начала, тем эта задача более объемная.

Например, сеть учиться распознавать котов и собак по фотографии. Она получает на вход первого слоя изображение. На первых слоях сеть может выбирать на картинке палочки, кружочки, дуги. Ближе к середине сеть уже находит на картинке глаза, усы, нос. В конце она уже может принять решение: кто на изображении - кот или собака.

Что же такое свертка и пулинг? Это те базовые операции, благодаря которым сеть находит закономерности (палочка, усы, кот).

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

Такой слой называется сверточным слоем, а операция, которую он выполняет, - сверткой.

Что же дальше? Как из огромного количества маленьких кружочков и палочек выделить что-либо осмысленное. Тут на помощь приходит слой, выполняющий операцию пулинга (или пулинговый слой). Пулинговый слой помогает выбирать важные для конкретной задачи палочки и кружочки.

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

Далее мы просто повторяем комбинацию слоев свертки и пулинга.

Получается что-то такое:

1. Свертка: очень много палочек, очень много кружочков, ... ;

2. Пулинг: важные палочки, важные кружочки;

3. Свертка: комбинация нескольких палочек;

4. Пулинг: кошачий ус;

и т.д.

Вот и все.

Спасибо за прочтение статьи. Если понравилось - ставьте лайк и подписывайтесь на канал. До скорых встреч :)

Обо мне.