Кривая обучения SkikitLearn сильно зависит от размера пакета MLPClassifier ??? Или: как диагностировать смещение / дисперсию для NN? - PullRequest
0 голосов
/ 26 марта 2019

В настоящее время я работаю над проблемой классификации с двумя классами в ScikitLearn с решателем adam и активацией relu. Чтобы выяснить, страдает ли мой классификатор высоким смещением или высокой дисперсией, я построил кривую обучения с помощью встроенной функции Scikitlearns:

https://scikit -learn.org / стабильный / auto_examples / model_selection / plot_learning_curve.html

Я использую кросс-валидацию Group-K_Fold с 8 разделениями. Однако я обнаружил, что моя кривая обучения сильно зависит от размера пакета моего классификатора:

https://imgur.com/a/FOaWKN1

Это должно быть так? Я думал, что кривые обучения влияют на оценки точности, зависящие от части данных обучения, независимо от каких-либо партий / эпох? Могу ли я на самом деле использовать эту встроенную функцию для пакетных методов? Если да, какой размер партии я должен выбрать (полная партия или размер партии = количество обучающих примеров или что-то среднее), и какой диагноз я получу из этого? Или как вы обычно диагностируете проблемы смещения / дисперсии классификатора нейронной сети?

Помощь будет очень признателен!

1 Ответ

1 голос
/ 26 марта 2019

Да, кривая обучения зависит от размера партии.

Оптимальный размер пакета зависит от типа данных и общего объема данных.
В идеальном случае размер пакета 1 будет лучшим, но на практике, при больших объемах данных, этот подходЭто невозможно.
Я думаю, что вы должны сделать это с помощью экспериментов, потому что вы не можете легко рассчитать оптимальное значение.

Более того, когда вы изменяете размер пакета, вы можете также захотеть изменить скорость обучения, чтобы сохранить контроль над процессом.
Но, действительно, имеется инструмент для поиска оптимального (память иразмер партии довольно интересен.


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

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

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

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

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

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

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

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

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

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


Источник: https://machinelearningmastery.com/gentle-introduction-mini-batch-gradient-descent-configure-batch-size/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...