Что такое рецептивное поле?
Что проверяют
Понимаете ли вы, откуда у сети берётся способность видеть контекст, и умеете ли связать архитектуру с задачей. Вопрос отсеивает тех, кто собирает сети из готовых блоков, ни разу не посчитав, какую область входа реально видит выход.
Как отвечать
Рецептивное поле нейрона это область входа, которая влияет на его активацию. Для первого свёрточного слоя с ядром три на три оно ровно три на три, а дальше растёт с глубиной.
Считается рекуррентно: поле очередного слоя равно полю предыдущего плюс размер ядра без единицы, умноженный на накопленный шаг, где накопленный шаг это произведение страйдов всех предыдущих слоёв. Два слоя с ядром три на три без страйда дают пять на пять, три слоя семь на семь. Отсюда и приём заменять большое ядро стопкой маленьких: поле то же, параметров меньше, нелинейностей больше.
Растят поле тремя способами: глубиной, страйдом и пулингом (дёшево, но огрубляет карту признаков), расширенной свёрткой с промежутками в ядре (поле растёт без роста числа параметров и без потери разрешения).
Важная поправка: эффективное поле заметно меньше теоретического, вклад точек спадает от центра примерно как гауссиана. Паспортное число это верхняя оценка, а не то, что сеть действительно использует. Для сегментации и детекции поле должно покрывать объект вместе с контекстом; в свёрточных сетях для временных рядов оно задаёт глубину истории.
Где спотыкаются
Считают, что поле равно размеру ядра последнего слоя, и не учитывают накопление по глубине и по страйдам. Отсюда сети, которые физически не видят объект целиком.
Путают теоретическое поле с эффективным и удивляются, что модель игнорирует края крупного объекта, хотя формально охватывает всё изображение.
Наращивают поле одними страйдами и пулингом. Контекст появился, но разрешение карты признаков упало, и мелкие объекты пропадают. В плотных задачах это решают расширенной свёрткой или ветвями с разным масштабом.