🧠 Архитектура и обучение нейронных сетей: от теории к практике 0:21
Обучение нейронной сети — это «сердце» современной работы с данными, где ключевой задачей разработчика является правильное проектирование скрытых слоев и выбор функций активации. По мнению лектора MIT OpenCourseWare, главный принцип здесь — начинать с простейшей архитектуры и усложнять её только при необходимости. Лекция посвящена практическому разбору обучения на примере структурированных данных: прогнозировании сердечных заболеваний на основе показателей пациентов Cleveland Clinic.
🛠 Проектирование нейронной сети в Keras 5:33
Создание нейросети сводится к выбору количества скрытых слоев и нейронов в каждом из них. Для простых задач часто достаточно одного скрытого слоя.
- Выбор параметров: Лектор отмечает, что использование 16 нейронов в скрытом слое оказалось эффективным для данной задачи, при этом количество нейронов часто выбирают кратным степеням двойки.
- Функции активации: Для скрытых слоев стандартным выбором является ReLU (Rectified Linear Unit), так как она эмпирически доказала свою эффективность.
- Выходной слой: Для бинарной классификации (да/нет) используется один выходной нейрон с функцией активации sigmoid, которая возвращает вероятность.
- Преобразование данных: Перед подачей в сеть категориальные переменные необходимо преобразовать методом one-hot encoding, что может увеличить количество входных параметров.
Код на Keras позволяет описать эту структуру всего в несколько строк, абстрагируясь от сложной математики. Лектор подчеркивает, что модель — это объект, объединяющий входной слой, последовательность скрытых слоев и выход.
📉 Оптимизация: функции потерь и градиентный спуск 19:58
Обучение — это поиск таких коэффициентов (весов и смещений), при которых предсказания модели максимально близки к реальности.
- Функция потерь (Loss function): Это количественная мера расхождения между предсказанием и фактом. В бинарной классификации используется бинарная кросс-энтропия (binary cross entropy), которая наказывает модель тем сильнее, чем дальше её прогноз от истинного значения.
- Градиентный спуск (Gradient descent): Алгоритм оптимизации, предложенный Коши в 1847 году. Он использует производную (градиент) функции потерь для корректировки весов:
- Если градиент положителен, веса нужно уменьшить.
- Если отрицателен — увеличить.
- Формула обновления: `новые_веса = старые_веса - (learning_rate
- градиент)`.
- Скорость обучения (Learning rate): Параметр
alpha, который определяет размер шага при корректировке весов.
🚀 Эффективность обучения: Backprop и SGD 57:04
Для работы с миллиардами параметров (как в GPT-4) требуются крайне эффективные методы вычислений.
- Backprop (Обратное распространение ошибки): Это эффективный способ вычисления градиента функции потерь с использованием правила цепочки (chain rule), который избегает повторных вычислений. Использование GPU (графических процессоров) для матричных умножений, лежащих в основе backprop, стало фундаментом современной «глубокой революции».
- Стохастический градиентный спуск (SGD): Вместо использования всех данных для одного шага обучения, лектор рекомендует брать небольшие случайные выборки — мини-батчи (обычно 32 или 64 элемента). Это значительно экономит память и время, а также помогает модели «выпрыгивать» из локальных минимумов.