Как работает свёрточная сеть
Вопрос
Объясните, как устроена свёрточная сеть для классификации изображений: от пикселей до класса.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Свёртка: ядро скользит по картинке, считает признаки в каждой позиции
Каналы, stride, padding, число параметров не зависит от размера картинки
Иерархия признаков: края, текстуры, части объектов, объекты
Уменьшение разрешения (пулинг или stride) и рост числа каналов
Голова: global average pooling и линейный слой, softmax
Что могут спросить следом
- Как посчитать размер выхода свёртки?
- Зачем нужны свёртки 1×1?
Разбор
Свёрточный слой держит набор маленьких обучаемых ядер, например 3×3 по всем входным каналам. Каждое ядро скользит по изображению и в каждой позиции считает взвешенную сумму пикселей окна: получается карта признаков, показывающая, где найден паттерн. Одни и те же веса используются во всех позициях, поэтому параметров мало и признак находится в любом месте. Stride и padding управляют размером выхода. Слои складываются в иерархию: первые находят края и цветовые переходы, средние текстуры и части, глубокие целые объекты. По ходу сети разрешение уменьшают пулингом или свёртками со stride 2, а число каналов растёт. Между свёртками нелинейность и нормализация, в современных сетях residual-связи. В конце global average pooling сжимает каждую карту в число, линейный слой даёт логиты классов, softmax вероятности.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.