Разница в шаблонах обновления веса

Это мой первый пост о челлендже #100DaysofMLCode; каждый день я планирую читать (что приведет к блогу, чтобы проверить мое понимание) и/или программировать.

В этом посте я расскажу о стохастическом градиентном спуске и его отличии от пакетного градиентного спуска. Я также объясню о мини-партии и эпохе. Я предполагаю, что вы знакомы с градиентным спуском; если нет, то прочитайте этот блог, чтобы получить интуитивное представление о градиентном спуске.

Машинное обучение — это поиск значимых закономерностей и отношений в данных. В результате обучения получается параметр — вес (+смещение), который используется для предсказания.

Градиентный спуск — популярный алгоритм оптимизации, который минимизирует функцию потерь и обновляет параметры (веса + смещения); если обновление происходит для каждой выборки, то это называется стохастическим градиентным спуском.

Для 100 образцов SGD обновляет веса 100 раз.

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

Для 100 образцов BGD обновляет вес только один раз.

Обучение с использованием всей выборки проводится редко; мини-пакеты образцов обычно используются для обучения моделей машинного обучения.

Для 100 образцов, если размер пакета равен 20, то мини-пакетный градиентный спуск обновляет вес пять раз.

В литературе по машинному обучению вы часто будете слышать слово — эпоха; это означает один полный проход обучения по всей обучающей выборке. В случае мини-БГД 1 эпоха обучения выполняется, когда завершено обновление пятой мини-партии из 20 образцов; в SGD это происходит, когда обновление последней выборки (в данном случае сотой) завершено.

PS: я написал этот пост, основываясь на своем понимании стохастика и пакетного градиентного спуска. Мы будем признательны за любые предложения/улучшения содержания и/или стиля написания.