Scikit Learn: Стохастический градиентный спуск (полное руководство)

Python предоставляет ряд полезных пакетов. Одной из самых популярных библиотек машинного обучения Python является Scikit-Learn. Благодаря высокоуровневому API, который легко и просто использовать, он оптимизирован и эффективен. Scikit-Learn поставляется с широким спектром полезных инструментов и методов, которые делают предварительную обработку, оценку и другие трудоемкие задачи такими же простыми, как вызов одной функции, и разделение данных на обучающие и тестовые наборы не является исключением.

Станьте экспертом в области науки о данных и получите работу своей мечтыПрограмма аспирантуры Калифорнийского технологического института по науке о данныхИзучить программуСтаньте экспертом в области науки о данных и получите работу своей мечты

Что такое градиентный спуск?

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

Подходы машинного обучения и глубокого обучения построены на основе метода градиентного спуска.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

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

Этот метод часто изучают в начале практически всех курсов по машинному обучению из-за его значимости и простоты реализации.

Типы алгоритма градиентного спуска

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

1. Пакетный градиентный спуск

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

Другими словами, для выполнения одного шага в Batch Gradient Descent учитываются все данные обучения. Мы берем среднее значение градиентов всех обучающих выборок и используем этот средний градиент для обновления наших параметров. Так что это всего лишь одна эпоха снижения градиента.

Что такое эпоха, можете спросить вы. Эпоха — это когда весь обучающий набор проходит через модель, выполняется прямое распространение и обратное распространение, а параметры обновляются.

2. Стохастический градиентный спуск

Другой вариант градиентного спуска, называемый стохастическим градиентным спуском (SGD), запускает один обучающий пример для каждой итерации.

Модели глубокого обучения жадны до данных. Чем больше данных, тем больше вероятность, что модель будет точной. Если наш набор данных содержит 5 миллионов случаев, модели потребуется вычислить градиенты всех 5 миллионов примеров всего за один шаг. Это не кажется эффективным методом. Стохастический градиентный спуск — решение этой проблемы.

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

3. Мини-пакетный градиентный спуск

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

Разделение обучающих наборов данных на меньшие партии обеспечивает компромисс между вычислительной эффективностью пакетного градиентного спуска и скоростью стохастического градиентного спуска. В результате мы можем достичь уникальной формы градиентного спуска, которая является более вычислительно эффективной и менее шумной.

Есть еще одна категория, называемая вторичным градиентным спуском, которая имеет отношение к более высокой коразмерности. Добавление шума к процессу дискретного градиентного спуска может изменить траекторию градиентного спуска. Такие эффекты были выявлены в предыдущих исследованиях. В этом типе мы проводим некоторые компьютерные эксперименты для изучения поведения шумного градиентного спуска в более сложном контексте минимумов более высокой коразмерности.

Важность стохастического градиентного спуска

Для больших наборов данных можно использовать SGD. Когда набор данных большой, он сходится быстрее, поскольку параметры обновляются чаще.

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

Станьте экспертом в области науки о данных и получите работу своей мечтыПрограмма аспирантуры Калифорнийского технологического института по науке о данныхИзучить программуСтаньте экспертом в области науки о данных и получите работу своей мечты

Подробнее о классификаторе SGD в SKlearn

Стохастический градиентный спуск (SGD) может помочь в построении оценки для задач классификации и регрессии при использовании с регуляризованными линейными методами.

Класс SGDClassifier в API Scikit-learn используется для реализации подхода SGD для задач классификации. SGDClassifier создает оценщик с использованием регуляризованной линейной модели и обучения SGD. Классификатор SGD хорошо работает с огромными наборами данных и является быстрым и простым подходом в использовании.

Атрибуты, используемые SGDClassifier

Атрибуты, используемые модулем SGDClassifier, перечислены ниже:

  • coef_ − array, shape (1, n_features) if n_classes==2, else (n_classes, n_features). Этот атрибут указывает, какой вес придается каждой характеристике.
  • intercept_ − array, shape (1,) if n_classes==2, else (n_classes,) В функции принятия решения он представляет независимый член.
  • n_iter_ − Количество итераций, необходимых для выполнения условия остановки, задается как intIt.

Плюсы и минусы стохастического градиентного спуска

Ниже мы рассмотрим плюсы и минусы стохастического градиентного спуска.

Плюсы

Обучение происходит при каждом возникновении стохастического градиентного спуска (SGD), и оно имеет несколько преимуществ по сравнению с другими методами градиентного спуска.

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

Минусы

  1. Шаги, предпринимаемые в направлении минимумов функции потерь, включают колебания, которые могут помочь выйти из локальных минимумов функции потерь за счет частых обновлений.
  2. Кроме того, из-за шумных шагов сходимость к минимумам функции потерь может занять больше времени.
  3. Поскольку он взаимодействует только с одним образцом за раз, ему не хватает преимуществ векторизованных операций.
  4. Все ресурсы используются для анализа одной обучающей выборки за раз, частые обновления требуют больших вычислительных затрат.
  1. Линейная регрессия Склиарна
  2. Модели регрессии Sklearn
  3. Кластеризация Sklearn
  4. Склеарн SVM
  5. Деревья решений SkLearn

Вы рассматриваете профессию в области Data Science? Тогда получите сертификат PG in Data Science уже сегодня!

Программа науки о данных Simplilearn поможет вам вывести свою игру в области данных на новый уровень

Хотите ли вы укрепить свои знания в области науки о данных и ее обширного спектра приложений в реальном мире? Что ж, самым мудрым выбором, который вы можете сделать, чтобы это произошло, будет зачисление в магистерскую программу по науке о данных Simplilearn. Simplilearn и IBM объединились, чтобы предоставить студентам интегрированную стратегию смешанного обучения, которая поможет им стать специалистами по науке о данных. Этот курс по науке о данных, разработанный совместно с IBM, подготовит студентов к ведущим должностям в области науки о данных в отрасли.

Этот курс Data Scientist, спонсируемый IBM, включает уникальные хакатоны IBM, мастер-классы и сессии Ask-Me-Anything. Наша сертификация Data Science дает вам практический опыт работы с такими технологиями, как R, Python, Machine Learning, Tableau, Hadoop и Spark. Воспользуйтесь преимуществами живого общения с практиками, практическими лабораториями и проектами, пройдя наш курс Data Science онлайн.

Программа включает семинары специалистов IBM, уникальные хакатоны, признанный в отрасли сертификат Data Scientist Master от Simplilearn и сессии IBM Ask Me Anything с руководством IBM. Вы получите сертификаты IBM для курсов IBM и сертификацию Simplilearn для всех курсов в учебном маршруте после завершения этого курса Data Science Certificate. Эти сертификаты подтвердят ваши способности и продемонстрируют ваши знания в области Data Science.

Так чего же вы ждете? У вас есть все данные. Все, что вам нужно сделать, это зарегистрироваться сегодня и стать экспертом в Data Science без особых усилий.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *