сеньорчикОткрыть в Telegram
← все вопросывопросы для собеседований · Computer Vision

Вопросы по Computer Vision на собеседовании

CV-секция проверяет, работали ли вы с картинками руками: как готовили данные, какие аугментации выбрали и почему метрика на валидации разошлась с продом.

49 вопросов в банке·4 подтем·ниже разбор 9

Из чего состоит тема

Так тема разложена в тренажёре: движок ведёт прогресс по каждой подтеме отдельно и возвращает те, где вы ошибаетесь.

Разборы подтем

Конспект по каждой: что это, как отвечать вслух, на чём валятся, плюс вопросы для самопроверки.

Примеры вопросов с разбором

  1. #cnn_fundamentals1 / 9
    Почему для изображений берут свёрточные сети, а не обычные полносвязные?
    A)Локальность и разделяемые веса дают мало параметров и инвариантность к сдвигу — свёртка приспособлена к структуре картинки
    B)Полносвязные сети технически неспособны принять на вход изображение, представленное в виде числовой матрицы пикселей, поэтому для распознавания картинок их на практике не применяют
    C)Свёрточные сети обучаются без ошибок и не переобучаются на наборах изображений
    D)Полносвязные сети работают на GPU, а свёрточные умеют считаться и на обычном центральном процессоре
    показать ответ и разбор
    +A)Локальность и разделяемые веса дают мало параметров и инвариантность к сдвигу — свёртка приспособлена к структуре картинки

    // разбор: Свёртка использует структуру изображения: фильтр смотрит на локальную область и применяется одними и теми же весами по всему кадру (weight sharing). Это резко сокращает число параметров против полносвязного слоя (где каждый пиксель связан с каждым нейроном) и даёт инвариантность к сдвигу — паттерн распознаётся, где бы он ни оказался. Полносвязная сеть картинку принять может, но параметров у неё непомерно много.

  2. #cv_architectures2 / 9
    Что дали остаточные связи (skip-connections) в ResNet?
    A)Позволили обучать очень глубокие сети без деградации: градиент течёт по обходному пути, слой учит поправку к входу
    B)Убрали из сети необходимость в функциях активации между свёрточными слоями архитектуры
    C)Сократили общее число слоёв сети ровно вдвое при сохранении прежнего итогового качества классификации изображений ради ускорения обучения глубокой свёрточной сети
    D)Сделали так, что сеть обучается без обратного распространения ошибки, одним прямым проходом по слоям
    показать ответ и разбор
    +A)Позволили обучать очень глубокие сети без деградации: градиент течёт по обходному пути, слой учит поправку к входу

    // разбор: До ResNet очень глубокие сети деградировали: точность падала не из-за переобучения, а из-за трудностей оптимизации (затухание градиента). Skip-connection добавляет вход блока к его выходу (H(x)=F(x)+x), так что слой учит лишь остаток-поправку, а градиент имеет короткий путь назад. Это позволило устойчиво обучать сети в десятки и сотни слоёв. Активации и backprop при этом остаются на месте.

  3. #cv_practice3 / 9
    Зачем в обучении CV-моделей применяют аугментацию данных?
    A)Аугментация ускоряет инференс уже обученной модели в проде, никак не влияя на сам процесс её обучения на данных
    B)Аугментация нужна для того, чтобы уменьшить итоговый размер файлов изображений на диске перед обучением
    C)Чтобы заменить собой необходимость иметь размеченную обучающую выборку — метки после аугментации не требуются
    D)Расширить датасет вариациями (флип, кроп, поворот, цвет) — регуляризация и устойчивость
    показать ответ и разбор
    +D)Расширить датасет вариациями (флип, кроп, поворот, цвет) — регуляризация и устойчивость

    // разбор: Аугментация на лету создаёт правдоподобные вариации обучающих картинок — отражения, кропы, повороты, сдвиги яркости/цвета, шум. Модель видит объект в разных условиях и учится инвариантности, а не заучивает конкретные кадры: это дешёвая регуляризация, особенно ценная на небольших датасетах. Метки при этом остаются нужны, а размер файлов и скорость инференса тут ни при чём.

  4. #detection_segmentation4 / 9
    Чем задача детекции отличается от классификации и от сегментации?
    A)Классификация даёт класс всего кадра, детекция — что и где (рамки объектов), сегментация — класс каждого пикселя
    B)Это три взаимозаменяемых названия одной задачи распознавания образов на изображении
    C)Детекция определяет цвет объекта, классификация — его размер, а сегментация — его яркость
    D)Все три задачи решаются одной сетью с одинаковым выходным слоем и функцией потерь
    показать ответ и разбор
    +A)Классификация даёт класс всего кадра, детекция — что и где (рамки объектов), сегментация — класс каждого пикселя

    // разбор: Классификация отвечает «что на картинке» одним классом на весь кадр. Детекция находит объекты и локализует их прямоугольными рамками (класс + bbox для каждого). Сегментация размечает каждый пиксель классом (semantic) или ещё и разделяет экземпляры (instance). Это растущая по детальности лестница задач, и выходы/лоссы у них разные.

  5. #cnn_fundamentals5 / 9
    Что делает операция свёртки (convolution) в CNN?
    A)Выпрямляет изображение в один длинный вектор и сразу подаёт его в обычный полносвязный классификатор
    B)Скользит небольшим фильтром по изображению и на каждой позиции считает взвешенную сумму — карту откликов на паттерн
    C)Случайно перемешивает все пиксели входного изображения между собой ради дополнительной регуляризации сети при обучении
    D)Сжимает изображение до фиксированного маленького размера простым отбрасыванием части строк и столбцов пикселей
    показать ответ и разбор
    +B)Скользит небольшим фильтром по изображению и на каждой позиции считает взвешенную сумму — карту откликов на паттерн

    // разбор: Свёрточный слой прогоняет по изображению небольшое обучаемое ядро (фильтр): на каждой позиции считается взвешенная сумма пикселей под ядром, и получается карта признаков (feature map) — где в кадре сработал этот паттерн. Разные фильтры ловят разные признаки (края, текстуры), а их набор и обучается. Это не выпрямление в вектор и не перемешивание пикселей.

  6. #cv_architectures6 / 9
    Что такое transfer learning в CV и почему он так эффективен на небольших датасетах?
    A)Обучение модели со случайных весов на своём маленьком датасете без участия чужих данных
    B)Берут сеть, предобученную на большом датасете (ImageNet), и дообучают под свою задачу — низкоуровневые фичи переиспользуются
    C)Перенос обученной модели с одного сервера на другой сервер по сети без какого-либо изменения её весов и архитектуры
    D)Автоматический перевод меток классов обучающей выборки с одного естественного языка на другой перед началом обучения
    показать ответ и разбор
    +B)Берут сеть, предобученную на большом датасете (ImageNet), и дообучают под свою задачу — низкоуровневые фичи переиспользуются

    // разбор: Transfer learning берёт сеть, уже обученную на большом датасете (например, ImageNet), и адаптирует под свою задачу. Ранние слои выучили универсальные признаки — края, текстуры, формы, — которые полезны почти для любых изображений, поэтому их переиспользуют, а дообучают в основном верхние слои/голову. На маленьком датасете это резко снижает потребность в данных и риск переобучения по сравнению с обучением с нуля.

  7. #cv_practice7 / 9
    Какую аугментацию нельзя применять бездумно и почему?
    A)Аугментация безопасна и полезна; ограничений на её применение практически нет
    B)Меняющую семантику/метку: флип превратит '6' в '9' или зеркалит лево/право в медснимке
    C)Не получится применять самую слабую аугментацию, потому что она не даёт полезного эффекта модели
    D)Опасны аугментации, увеличивающие разрешение картинки, так как они замедляют обучение сети
    показать ответ и разбор
    +B)Меняющую семантику/метку: флип превратит '6' в '9' или зеркалит лево/право в медснимке

    // разбор: Аугментация должна сохранять корректность метки. Преобразование, меняющее смысл, вредит: горизонтальный флип путает '6' и '9' или зеркалит текст; отражение лево/право меняет сторону органа в медицине; сильный поворот делает объект неестественным. Набор аугментаций подбирают под домен — то, что валидно для кошек, невалидно для цифр и снимков. Сила аугментации и разрешение тут вторичны.

  8. #detection_segmentation8 / 9
    Что такое IoU (Intersection over Union) и зачем он в детекции?
    A)Доля площади пересечения предсказанной и истинной рамок к площади их объединения — мера совпадения боксов
    B)Суммарное число всех объектов, найденных детектором на изображении, делённое на реальное число объектов в кадре
    C)Средняя яркость пикселей внутри предсказанной рамки, по которой решают, есть ли внутри неё вообще какой-то объект
    D)Скорость работы детектора в кадрах в секунду, усреднённая по всему тестовому набору изображений при инференсе
    показать ответ и разбор
    +A)Доля площади пересечения предсказанной и истинной рамок к площади их объединения — мера совпадения боксов

    // разбор: IoU — отношение площади пересечения предсказанной и эталонной рамок к площади их объединения: 1 — идеальное совпадение, 0 — нет пересечения. По порогу IoU (например, 0.5) решают, считать ли предсказание попаданием, на нём же строится NMS и метрика mAP. Это мера качества локализации, а не счётчик объектов, не яркость и не скорость.

  9. #cnn_fundamentals9 / 9
    Зачем в CNN нужен пулинг (или свёртка со страйдом)?
    A)Чтобы раскрасить карты признаков в разные цвета для наглядной визуализации работы сети человеку
    B)Чтобы убрать из сети переобучение на обучающей выборке изображений
    C)Снизить пространственный размер карт, увеличить рецептивное поле и добавить устойчивость к небольшим сдвигам
    D)Чтобы принудительно увеличить пространственное разрешение карт признаков и тем самым уточнить положение каждого пикселя
    показать ответ и разбор
    +C)Снизить пространственный размер карт, увеличить рецептивное поле и добавить устойчивость к небольшим сдвигам

    // разбор: Пулинг (или страйд) уменьшает пространственные размеры карт признаков: растёт эффективное рецептивное поле следующих слоёв (нейрон видит больший кусок входа), падает вычислительная нагрузка, появляется небольшая устойчивость к сдвигам и локальным искажениям. Это снижение разрешения, а не повышение, и переобучение оно само по себе не отменяет.

это 9 из 49

Ещё 40 вопросов по теме — в тренажёре, с движком повторения

Прочитать разбор и ответить самому — разные навыки. В Сеньорчике вопросы идут сессиями, а движок возвращает подтемы, где вы ошибаетесь, пока они не начнут отскакивать. Бесплатно, лимит по энергии.

Частые вопросы