Вопросы по нейросетям на собеседовании
Вопросы по нейросетям редко про архитектуры из статей. Гораздо чаще про обучение: почему модель не сходится, что делает нормализация батча и как вы боролись с переобучением на своих данных.
Из чего состоит тема
Так тема разложена в тренажёре: движок ведёт прогресс по каждой подтеме отдельно и возвращает те, где вы ошибаетесь.
- Архитектуры сетей15
- Backprop и оптимизация14
- Практика обучения14
- Регуляризация в DL12
Разборы подтем
Конспект по каждой: что это, как отвечать вслух, на чём валятся, плюс вопросы для самопроверки.
- Архитектуры нейросетей15 вопросов
- Backprop и оптимизация нейросетей14 вопросов
- Регуляризация в глубоком обучении12 вопросов
- Обучение нейросети на практике14 вопросов
Примеры вопросов с разбором
- Зачем в ResNet нужны skip-соединения (residual-блоки)?A)Главная цель skip-связей — сократить общее число обучаемых параметров сетиB)Позволяют пропускать часть слоёв на инференсе и так ускорять предсказаниеC)Дают градиенту короткий путь и учат поправку F(x) к identityD)Заменяют операцию пулинга в свёрточной сети
показать ответ и разбор
+C)Дают градиенту короткий путь и учат поправку F(x) к identity// разбор: До ResNet сети глубже ~20 слоёв деградировали даже на трейне — проблема оптимизации, не переобучения. Тождественный путь x + F(x) даёт градиенту магистраль без затухания, а «выучить ноль» проще, чем выучить identity. Идея стала универсальной: residual-связи — каркас и трансформеров.
- Что такое проблема затухающих градиентов и в каких сетях она возникала особенно остро?A)Наоборот, градиенты неограниченно растут по модулю, и обучение расходится в бесконечностьB)Ошибки округления float32 накапливаются при проходе через десятки слоёв сетиC)Множители <1 по слоям экспоненциально гасят градиент к ранним слоямD)Проблема затрагивает выходной слой, а скрытые слои учатся нормально
показать ответ и разбор
+C)Множители <1 по слоям экспоненциально гасят градиент к ранним слоям// разбор: Цепное правило перемножает якобианы всех слоёв: если множители < 1 (насыщенные сигмоиды/tanh), градиент экспоненциально затухает с глубиной. Ответы индустрии: ReLU-семейство, аккуратная инициализация (He/Xavier), residual-связи (ResNet), нормализация, а в рекуррентных сетях — LSTM/GRU с гейтами.
- Как работает dropout и почему на инференсе его выключают?A)Постепенно снижает learning rate по заранее заданному расписанию к концу обученияB)Удаляет наименее важные по модулю веса сети — это прунингC)Добавляет гауссов шум ко входным данным перед подачей в первый слойD)Зануляет случайные активации на трейне; на инференсе — все нейроны с масштабом
показать ответ и разбор
+D)Зануляет случайные активации на трейне; на инференсе — все нейроны с масштабом// разбор: Dropout можно видеть как обучение экспоненциального ансамбля подсетей с общими весами. При инференсе усредняем ансамбль приближённо: включаем всё и масштабируем (в современных фреймворках — inverted dropout уже на трейне). Бонус-вопрос собеса: MC-dropout — оставить его включённым для оценки неопределённости.
- Лосс на трейне скачет и периодически взрывается до NaN. Какая последовательность действий наиболее разумна?A)Снизить lr, включить clipping, проверить данные и масштаб входовB)Увеличить learning rate, чтобы быстрее проскочить плохую зону лосса и выйти из неёC)Удалить батч-нормализацию из всех слоёв и переобучить модель с нуляD)Увеличить размер модели, дав ей больше ёмкости для стабилизации
показать ответ и разбор
+A)Снизить lr, включить clipping, проверить данные и масштаб входов// разбор: NaN обычно рождается из exploding gradients или численных краёв (log/деление на ноль, переполнение в fp16). Чек-лист: lr вниз или warmup, clip_grad_norm, санитайз данных и таргетов, численно стабильные реализации (log-sum-exp, встроенный CrossEntropyLoss), при mixed precision — loss scaling.
- Почему свёрточные сети эффективнее полносвязных на изображениях?A)Свёртка точнее полносвязной сети на большинстве данных и задачB)Полносвязная сеть не умеет принимать двумерный входC)Фильтры свёртки заданы заранее и не требуют обучения на данныхD)Локальность и общие фильтры → эквивариантность и мало параметров
показать ответ и разбор
+D)Локальность и общие фильтры → эквивариантность и мало параметров// разбор: Полносвязный слой на 224×224×3 потребовал бы сотни миллионов весов и учил бы каждый пиксель отдельно. Свёртка кодирует индуктивные смещения зрения: локальные паттерны важнее глобальных связей, а «кошачье ухо» выглядит одинаково в любом углу кадра. Меньше параметров — лучше обобщение при тех же данных.
- Чем Adam отличается от SGD с momentum и почему Adam часто выбирают по умолчанию?A)Адаптирует шаг каждому параметру по средним градиента и его квадратаB)Adam не использует градиенты, а подбирает шаг случайным поиском по пространствуC)Adam приходит в глобальный минимум даже на невыпуклой задачеD)SGD с momentum быстрее Adam на большинстве данных и архитектур сети
показать ответ и разбор
+A)Адаптирует шаг каждому параметру по средним градиента и его квадрата// разбор: Первый момент — направление (аналог momentum), второй — поэлементный масштаб шага: редкие/маленькие градиенты получают больший относительный шаг. Отсюда быстрая сходимость «из коробки». Нюансы для сеньора: правильный weight decay — это AdamW; на CV-задачах тюненный SGD+momentum иногда обобщает лучше.
- Batch normalization: что именно она делает и какой известный практический эффект даёт помимо стабилизации обучения?A)Приводит веса каждого слоя к единичной евклидовой норме перед умножением на входB)Нормализует активации по батчу (0/1) с обучаемыми scale/shiftC)Сортирует примеры внутри батча по возрастанию сложности перед прямым проходомD)Заменяет нелинейную функцию активации слоя на линейную ради устойчивости
показать ответ и разбор
+B)Нормализует активации по батчу (0/1) с обучаемыми scale/shift// разбор: BN выравнивает распределения активаций, сглаживая ландшафт оптимизации; шум оценок среднего/дисперсии по мини-батчу даёт лёгкий регуляризующий эффект. Грабли: маленькие батчи (статистики шумят — берут GroupNorm/LayerNorm), различие train/eval режимов — классический источник багов, и в трансформерах стандарт LayerNorm, а не BN.
- Fine-tuning предобученной модели на маленьком датасете: какой набор практик снижает риск катастрофического забывания и переобучения?A)Обучать все слои с большим learning rate с нуля, игнорируя предобученные весаB)Малый lr, постепенная разморозка, ранняя остановка или LoRA/adaptersC)Удалить предобученные веса и раздуть датасет аугментациями в сто разD)Обучать лишь функцию активации, оставив веса замороженными
показать ответ и разбор
+B)Малый lr, постепенная разморозка, ранняя остановка или LoRA/adapters// разбор: Нижние слои несут универсальные признаки — их трогают осторожно (freeze → gradual unfreeze, discriminative lr). Большой lr стирает предобученные представления за несколько шагов. PEFT-методы (LoRA/adapters) обучают <1% параметров: дёшево, а базовые веса нетронуты — сейчас это дефолт для LLM и вижн-моделей.
- Почему LSTM справляется с длинными зависимостями лучше ванильной RNN?A)Аддитивная ячейка памяти и гейты проводят градиент без затуханияB)У LSTM просто больше слоёв, чем у ванильной RNN, по определениюC)LSTM обрабатывает последовательность сразу в обоих направлениях времениD)LSTM заменяет рекуррентность свёртками по временной оси
показать ответ и разбор
+A)Аддитивная ячейка памяти и гейты проводят градиент без затухания// разбор: В ванильной RNN градиент умножается на W^T на каждом шаге — экспоненциальное затухание/взрыв. В LSTM состояние ячейки обновляется аддитивно (c_t = f⊙c_{t−1} + i⊙ĉ), и при открытом forget-гейте градиент проходит почти без искажений. Гейты учатся, что помнить и что забывать. Тот же принцип аддитивных магистралей — в residual-связях.
это 9 из 55
Ещё 46 вопросов по теме — в тренажёре, с движком повторения
Прочитать разбор и ответить самому — разные навыки. В Сеньорчике вопросы идут сессиями, а движок возвращает подтемы, где вы ошибаетесь, пока они не начнут отскакивать. Бесплатно, лимит по энергии.
Частые вопросы
Что спрашивают чаще всего про обучение сети?
Как выбирают шаг обучения и оптимизатор, зачем нужен прогрев и расписание, откуда берутся затухающие и взрывающиеся градиенты, что делать при расхождении лосса.
Как отвечать про регуляризацию?
Через задачу: dropout и weight decay ограничивают сложность, аугментации увеличивают данные, ранняя остановка ловит момент переобучения. Хороший ответ связывает приём с симптомом на кривых обучения.