Спринт 16/24 → Тема 4/8: Обучение градиентным спуском → Урок 1/8

Кратко:
  • Обучение моделей линейной регрессии и нейронных сетей с помощью градиентного спуска.
  • Написание алгоритма стохастического градиентного спуска.
  • Освоение регуляризации моделей.
  • Изучение работы нейронных сетей.
  • Обучение займет 8 уроков по 10-15 минут каждый.

Спринт 16/24 → Тема 4/8: Обучение градиентным спуском → Урок 2/8

Кратко:
  • Градиентный спуск используется для обучения линейной регрессии.
  • Функция потерь представлена в векторном виде и вычисляется как скалярное произведение разности векторов.
  • Градиенты векторных функций вычисляются аналогично производным.
  • Решение градиентного спуска для линейной регрессии быстрее прямого метода за счет сокращения времени на итерации.
  • Сложность решения прямым методом равна np², в то время как градиентный спуск в p раз быстрее.

Спринт 16/24 → Тема 4/8: Обучение градиентным спуском → Урок 3/8

Кратко:
  • Стохастический градиентный спуск ускоряет обучение алгоритмов.
  • Обучение происходит на мини-батчах или батчах, которые меняются случайным образом.
  • Размер батча обычно составляет 100-200 объектов.
  • Количество батчей равно числу итераций для завершения одной эпохи.
  • Алгоритм SGD работает с гиперпараметрами: размер батча, количество эпох и величина шага.
  • Вычислительная сложность SGD: T(n, b, p) ~ np.
  • Алгоритмом SGD линейная регрессия обучается быстрее, чем прямым методом.

Спринт 16/24 → Тема 4/8: Обучение градиентным спуском → Урок 4/8

Кратко:
  • Эта статья посвящена написанию алгоритма SGD для модели линейной регрессии на Python.
  • В ней предлагается создать класс SGDLinearRegression, который будет содержать гиперпараметры, такие как размер шага.
  • Метод init класса используется для инициализации объекта с гиперпараметрами.
  • Размер шага можно передать модели при создании класса, а затем сохранить его в атрибуте.

ЧМ.16/24.4/8.4/8.Задача 1

ЧМ.16/24.4/8.4/8.Задача 2

Спринт 16/24 → Тема 4/8: Обучение градиентным спуском → Урок 5/8

Кратко:
  • Регуляризация линейной регрессии используется для предотвращения переобучения модели.
  • Она ограничивает значения весов, чтобы избежать их чрезмерного влияния на алгоритм.
  • Формула функции потерь включает скалярное произведение весов на себя, что ограничивает их значения.
  • Вес регуляризации (λ) контролирует силу регуляризации и добавляется в формулу вычисления градиента.
  • Линейная регрессия с евклидовым расстоянием между весами называется гребневой регрессией.

ЧМ.16/24.4/8.5/8.Задача 1

Спринт 16/24 → Тема 4/8: Обучение градиентным спуском → Урок 6/8

Кратко:
  • Нейронная сеть - это модель, которая состоит из множества простых моделей, например, линейных регрессий.
  • Нейронная сеть работает по принципу сетей нервных клеток, то есть из нейронов строит сложные зависимости между входными и выходными данными.
  • Значения h₁ и h₂ передаются в логистическую функцию σ(x): где e - число Эйлера; приблизительно равно 2.718281828.
  • Логистическая функция в нейронной сети - это функция активации (англ. activation function).
  • Она добавляется в нейрон после умножения значений входов на веса, когда выходы нейрона становятся входами для других нейронов.
  • Промежуточная переменная (h₁, h₂) - это произведение значения входа на вес: Для удобства промежуточные переменные h₁ и h₂ обозначим вектором h.
  • Предсказание нейронной сети вычисляется по формуле: Запишем эту формулу через векторную функцию.
  • Веса w₁ и w₂ обозначим столбцами матрицы W.

Спринт 16/24 → Тема 4/8: Обучение градиентным спуском → Урок 7/8

Кратко:
  • Обучение нейронных сетей требует формулировки задачи обучения.
  • Нейронная сеть представляет собой функцию от входного вектора и параметров.
  • Параметры сети включают веса нейронов.
  • Функция потерь (например, MSE) используется для оценки качества обучения.
  • Задача обучения заключается в минимизации функции потерь с помощью алгоритма SGD.
  • Алгоритм обучения аналогичен SGD для линейной регрессии, но с использованием градиента для нейронной сети.

Спринт 16/24 → Тема 4/8: Обучение градиентным спуском → Урок 8/8

Заключение

Теперь вы умеете:

  • Программировать алгоритм SGD;
  • Уменьшать переобучение методом регуляризации;
  • Строить и обучать нейронные сети.

Заберите с собой

Чтобы ничего не забыть, скачайте шпаргалку и конспект темы.

В следующей теме вы познакомитесь с градиентным бустингом.