Найти в Дзене

SGD в Машинном обучении простыми словами

Стохастический градиентный спуск (Stochastic Gradient Descent) – это простой, но очень эффективный подход к подгонке линейных классификаторов и регрессоров под выпуклые Функции потерь (Loss Function), такие как Метод опорных векторов (SVM) и Логистическая регрессия (Logistic Regression). Несмотря на то, что SGD существует в сообществе Машинного обучения (ML) уже давно, совсем недавно он привлек значительное внимание в контексте крупномасштабного обучения. SGD успешно применяется для решения крупномасштабных и разреженных задач машинного обучения, часто встречающихся при Классификации (Classification) текста и Обработке естественного языка (NLP). Учитывая, что данные немногочисленны, классификаторы в этом модуле легко масштабируются для решения задач с более чем 10 ^ 5 обучающими примерами и более чем 10 ^ 5 Признаками (Feature). Преимущества и недостатки К достоинствам спуска можно причислить: К недостаткам: SGD и Scikit-learn Давайте посмотрим, как SGD реализован в SkLearn. Для начала
Оглавление

Стохастический градиентный спуск (Stochastic Gradient Descent) – это простой, но очень эффективный подход к подгонке линейных классификаторов и регрессоров под выпуклые Функции потерь (Loss Function), такие как Метод опорных векторов (SVM) и Логистическая регрессия (Logistic Regression). Несмотря на то, что SGD существует в сообществе Машинного обучения (ML) уже давно, совсем недавно он привлек значительное внимание в контексте крупномасштабного обучения.

SGD успешно применяется для решения крупномасштабных и разреженных задач машинного обучения, часто встречающихся при Классификации (Classification) текста и Обработке естественного языка (NLP). Учитывая, что данные немногочисленны, классификаторы в этом модуле легко масштабируются для решения задач с более чем 10 ^ 5 обучающими примерами и более чем 10 ^ 5 Признаками (Feature).

Преимущества и недостатки

К достоинствам спуска можно причислить:

  • Эффективность
  • Простоту реализации (множество возможностей для настройки кода)

К недостаткам:

  • Требовательность (SGD необходим ряд гиперпараметров, таких как параметр регуляризации и количество итераций)
  • Чувствительность к масштабированию признаков.

SGD и Scikit-learn

Давайте посмотрим, как SGD реализован в SkLearn. Для начала импортируем необходимые библиотеки:

-2

Как и другие классификаторы, SGD должен быть "снабжен" двумя массивами: массив формы X (n_samples, n_features), содержащий обучающие образцы, и массив формы y (n_samples,), содержащий целевые значения (метки классов) для обучающих образцов:

-3

Система отражает полный спектр настроек модели, к примеру, перемешивание обучающих сэмплов (shuffle = True) или подробность отчета об обучении (verbose = 0):

-4

После установки Модель (Model) может быть использована для прогнозирования новых значений:

-5

Легко сопоставить, что паре "2, 2" будет соответствовать ряд "1":

-6

SGD подгоняет линейную модель к обучающим данным. Атрибут coef_ содержит параметры модели:

-7

Атрибут intercept_ содержит перехват, также известный как Смещение (Bias):

-8

Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.

Фото: @kirk7501

Автор оригинальной статьи: scikit-learn.org

Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте курс «Введение в Машинное обучение» на Udemy.

Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте курс «Введение в Машинное обучение» на Udemy.