Вопросы на собеседовании: Нейронные сети
32 вопроса по разделу «Нейронные сети» — с короткими ответами и ссылкой на подробный разбор каждой темы.
Как пользоваться: закрой ответ, ответь вслух за минуту, сравни. Все разделы — на странице вопросов с собеседований, теория раздела — в оглавлении раздела, тренажёр — в mock-интервью.
- От нейрона к многослойному перцептрону · 4
- Функции активации · 4
- Обратное распространение ошибки · 4
- Оптимизаторы: SGD, Momentum, Adam · 4
- Практика обучения: батчи, dropout, batchnorm · 4
- Распознавание цифр из пикселей · 4
- Свёрточные сети (CNN) · 4
- Рекуррентные сети (RNN, LSTM) · 4
От нейрона к многослойному перцептрону
- «Почему перцептрон не решает XOR?» — его граница решения — гиперплоскость, а классы XOR линейно неразделимы; нужен скрытый слой, который перестраивает пространство признаков.
- «Что будет, если убрать активации из 10-слойной сети?» — произведение линейных отображений линейно, сеть эквивалентна одному линейному слою.
- «Что гарантирует теорема об универсальной аппроксимации?» — существование приближения непрерывной функции широким MLP; она не гарантирует ни разумный размер сети, ни то, что градиентный спуск эти веса найдёт.
- «Зачем bias?» — без него граница решения обязана проходить через начало координат.
Разбор с интерактивом и тестом: От нейрона к многослойному перцептрону
Функции активации
- «Чем плоха sigmoid в скрытых слоях?» — насыщение (максимум производной 0.25 → затухающие градиенты) и нецентрированный выход (зигзаг спуска).
- «Что такое dead ReLU и как лечить?» — нейрон навсегда в нуле; Leaky ReLU/GELU, аккуратный learning rate, разумная инициализация.
- «Почему softmax — не обычная активация?» — она связывает все компоненты вектора: выход i зависит от всех логитов, сумма равна 1.
- «Что стоит в трансформерах?» — GELU/SiLU в FFN-блоках; softmax — в механизме внимания.
Разбор с интерактивом и тестом: Функции активации
Обратное распространение ошибки
- «Объясни backprop одним предложением» — рекурсивное применение chain rule от лосса к весам с переиспользованием промежуточных значений; один backward стоит примерно как два forward.
- «Чем backprop отличается от SGD?» — backprop считает градиенты, оптимизатор делает шаг. Это два разных этапа цикла обучения.
- «Почему глубокие сети было трудно учить и что помогло?» — vanishing gradients; помогли ReLU, нормализация, инициализация и residual connections.
- «Зачем zero_grad() в PyTorch?» — градиенты по умолчанию накапливаются между вызовами backward, их нужно обнулять перед новым шагом.
Разбор с интерактивом и тестом: Обратное распространение ошибки
Оптимизаторы: SGD, Momentum, Adam
- «Чем Adam отличается от SGD с momentum?» — Adam добавляет второй момент (среднее квадратов градиентов) и делит шаг на его корень: адаптивный масштаб на каждый параметр + bias correction.
- «Зачем в Adam bias correction?» — m и v инициализируются нулями и в первые шаги занижены; поправка 1/(1−βt) устраняет смещение.
- «В чём разница Adam и AdamW?» — weight decay применяется отдельно от градиента, а не через L2-штраф, который искажается адаптивной нормировкой.
- «Зачем warmup?» — защищает от разноса в первые шаги, пока статистики моментов не накопились.
Разбор с интерактивом и тестом: Оптимизаторы: SGD, Momentum, Adam
Практика обучения: батчи, dropout, batchnorm
- «Почему нельзя инициализировать веса нулями?» — симметрия: одинаковые нейроны получают одинаковые градиенты и никогда не различатся.
- «Что делает dropout на инференсе?» — ничего: он выключен, а масштаб компенсирован делением на 1 − p при обучении.
- «Чем layer norm лучше batch norm для трансформеров?» — не зависит от размера батча и длины последовательности, нет бегущих статистик и различий train/eval.
- «Loss стал NaN на 50-м шаге — действия?» — уменьшить lr, включить warmup и gradient clipping, проверить данные на выбросы/нули в логарифмах.
Разбор с интерактивом и тестом: Практика обучения: батчи, dropout, batchnorm
Распознавание цифр из пикселей
- «Сколько параметров у линейного классификатора MNIST?» — 784×10 весов + 10 bias = 7850. Умение быстро посчитать параметры проверяют постоянно.
- «Что увидим, если визуализировать веса как картинки?» — размытые шаблоны цифр: положительные веса там, где обычно проходит штрих класса.
- «Почему softmax + кросс-энтропия, а не MSE?» — кросс-энтропия даёт сильный градиент при уверенной ошибке и правильно работает с вероятностями классов.
- «Зачем нормировать пиксели?» — единый масштаб входов ускоряет и стабилизирует градиентный спуск; сами предсказания идеальной модели от масштаба бы не изменились.
Разбор с интерактивом и тестом: Распознавание цифр из пикселей
Свёрточные сети (CNN)
- «Посчитайте параметры свёрточного слоя» — (K·K·Cin + 1)·Cout: например, ядро 3×3, 3 входных и 16 выходных каналов → (9·3+1)·16 = 448. Сравните со 150M у полносвязного — эффектный аргумент.
- «Каким станет выход 16×16 после свёртки 3×3 без padding?» — 14×14: формула (N − K)/stride + 1.
- «Зачем pooling?» — уменьшить карты (дешевле), расширить receptive field, добавить устойчивость к мелким сдвигам.
- «Чем CNN лучше/хуже ViT?» — CNN: сильный inductive bias, хороши при малых данных и на слабом железе; ViT: гибче и лучше масштабируются на больших датасетах.
Разбор с интерактивом и тестом: Свёрточные сети (CNN)
Рекуррентные сети (RNN, LSTM)
- «Напишите формулу шага RNN» — ht = tanh(W·xt + U·ht−1 + b); подчеркните, что W и U общие для всех шагов.
- «Почему градиенты затухают?» — при BPTT градиент умножается на якобиан перехода T раз; произведение множителей < 1 экспоненциально гаснет.
- «Зачем LSTM три вентиля?» — управляемые запись/стирание/чтение памяти; аддитивное обновление ячейки даёт градиенту «шоссе» сквозь время.
- «Почему трансформер победил?» — параллельное обучение по всей длине и прямой доступ к далёкому контексту вместо T последовательных переходов.
Разбор с интерактивом и тестом: Рекуррентные сети (RNN, LSTM)