IT Academy
Справочник курса

Глубокое обучение

Все объяснения, задачи и лабораторная в одном месте.

Можно сохранить страницу в PDF через печать браузера. Для печати разборы ответов раскрываются автоматически.

1. Тензоры, autodiff и training loop

Объяснение

Тензор — многомерный массив с формой и типом. Слой преобразует тензор, функция потерь измеряет ошибку. Ошибка размерностей часто означает неверное понимание batch, признаков или каналов.

Задача для самостоятельного решения

Вход имеет форму [32,10], веса [10,4]. Какова форма результата умножения?

Показать разбор ответа

[32,4]: 32 примера, 4 выходных значения. Внутренние размерности 10 совпадают.

2. Оптимизация, initialization и normalization

Объяснение

Backpropagation вычисляет градиенты по цепному правилу. Optimizer обновляет веса; градиенты обычно нужно обнулять между шагами. Learning rate определяет размер шага и влияет на устойчивость.

Задача для самостоятельного решения

Почему loss может расти при большом learning rate?

Показать разбор ответа

Шаг перепрыгивает области низкой ошибки и вызывает расходимость. Уменьшите rate, проверьте масштаб данных и градиенты, сравните с маленькой задачей.

3. CNN и представление изображений

Объяснение

CNN использует локальные фильтры с общими весами. Padding и stride меняют пространственный размер. Свёртка предполагает полезность локальной структуры, но не заменяет качественные данные.

Задача для самостоятельного решения

Для входа 5×5, ядра 3×3, stride 1 без padding найдите выход.

Показать разбор ответа

3×3: по каждой оси (5−3)/1+1=3. Число выходных каналов задаётся количеством фильтров.

4. Sequence models, attention и transformers

Объяснение

Attention строит взвешенную сумму значений по сходству query и key. Позиционная информация нужна, чтобы различать порядок. Маска ограничивает доступ к будущим токенам при авторегрессивном обучении.

Задача для самостоятельного решения

Зачем causal mask в языковой модели?

Показать разбор ответа

Чтобы позиция не читала последующие правильные ответы. Иначе обучение решает задачу с информацией, недоступной при генерации.

5. Regularization, transfer learning и fine-tuning

Объяснение

Dropout и weight decay уменьшают переобучение разными способами. Режимы train/eval влияют на некоторые слои. Validation без переключения режима может давать нестабильные или смещённые результаты.

Задача для самостоятельного решения

Почему при оценке отключают dropout?

Показать разбор ответа

Нужен определённый режим вывода, согласованный с обучением. Случайное выключение нейронов при обычной оценке меняет предсказания.

6. Distributed training, evaluation и serving

Объяснение

Checkpoint должен содержать веса и состояние optimizer для продолжения. Mixed precision экономит ресурсы, но требует контроля численной устойчивости. Фиксированный seed не гарантирует идентичность на любом оборудовании.

Задача для самостоятельного решения

Почему восстановления одних весов мало для точного продолжения Adam?

Показать разбор ответа

Потеряются накопленные моменты optimizer и состояние расписания learning rate. Сохраните их вместе с номером шага и конфигурацией.

Практика

Лабораторная работа

Подготовка

Python 3. Скалярный градиентный спуск без библиотек показывает механику одного параметра.

Учебный пример

w = 0.0
for step in range(20):
    prediction = w * 2
    loss = (prediction - 6)**2
    gradient = 2 * (prediction - 6) * 2
    w -= 0.1 * gradient
print(round(w,3))

Как работает пример и что ожидать

Результат близок к 3. Цель — получить 6 при входе 2; градиент выводится цепным правилом. Здесь нет batch, bias и сложной модели. Увеличьте learning rate до 1 и наблюдайте расходимость, сохранив ту же функцию потерь.

Итоговая работа

Перенесите опыт в тензорный framework, проверьте формы и градиенты. Обучите небольшую сеть, разделите train/validation, сохраните checkpoint вместе с optimizer. Сравните обучение с регуляризацией и без неё на одинаковом split.

Проверка результата

1. Опишите исходные данные и условия запуска, чтобы другой человек мог повторить работу.
2. Приложите результат обычного сценария и сравните его с ожидаемым.
3. Проверьте неверный вход, граничный случай и отказ зависимости, если она есть.
4. Объясните выбранное решение и известное ограничение.
5. Сохраните исправления после самопроверки вместе с примером, который раньше не работал.

Как оценить работу

По каждому пункту поставьте 0 (не выполнено), 1 (выполнено с пробелами) или 2 (результат воспроизводим и объяснён). Если обязательный сценарий не работает, вернитесь к нему независимо от общей суммы. Это рубрика самопроверки: сайт не исполняет присланный код и не выдаёт автоматическую оценку проекта.