Почему в рамках стохастического градиентного спуска нет автоматического завершения?

Я проверил некоторые известные фреймворки с открытым исходным кодом с реализациями SGD — scikit-learn, vowpal-wabbit и тензор -поток.

Все они оставляют пользователю задачу решить, сколько итераций! scikit требует, чтобы пользователь указал это явно, vowpal по умолчанию предполагает 1 эпоху (проходит через все примеры), но позволяет изменить любое количество эпох, а тензор реализует только один шаг для одного примера, оставляя весь цикл итерации пользователю. .

Почему это? Задача принятия решения о расторжении договора вовсе не тривиальна — следует ли ее решать, когда убыток не становится лучше? средние потери за последние N итераций? Должен ли пользователь использовать примеры проверки/удержания для измерения потерь? А может дело вовсе не в потерях и стоит проверить, не сильно ли меняются оптимизированные веса? Должны ли мы проверять завершение после каждого примера или время от времени?

Был бы рад, если бы кто-то пролил свет на это дизайнерское решение, я что-то упустил, и это нельзя сделать внутри? Теория в этой области сложна, и я надеялся на некоторую поддержку со стороны фреймворков.


person ihadanny    schedule 01.03.2016    source источник
comment
В Vowpal Wabbit по умолчанию обучение автоматически завершается после трех последовательных проходов, в которых показатель удержания не улучшился. Этому числу можно присвоить различные значения с помощью --early_terminate.   -  person Martin Popel    schedule 02.03.2016
comment
Для больших наборов данных с надлежащей регуляризацией лучше никогда не завершать работу. Так что это действительно суждение — вы смотрите на график улучшения и видите, хватит ли у вас терпения, чтобы ждать дольше.   -  person Yaroslav Bulatov    schedule 02.03.2016
comment
@YaroslavBulatov, иногда обучение является частью более крупного процесса обучения, и его нельзя нянчить... вот почему я искал руководство о том, насколько терпеливым я должен быть, если я хочу добиться конвергенции к решению, которое ожидается, что x% далеко от оптимального решения...   -  person ihadanny    schedule 03.03.2016
comment
Ага, нет такого (гарантии нахождения в пределах х% от оптимального решения). Кроме того, проблема с полностью автоматическим конвейером заключается в том, что различные гиперпараметры (например, скорость обучения) зависят от входных данных, поэтому, если ваши входные данные изменяются, вы можете в конечном итоге отклониться и получить случайную точность независимо от того, как долго вы тренируетесь. . Обычный практический подход состоит в том, чтобы относиться к количеству итераций как к гиперпараметру, который вы настраиваете вручную вместе со скоростью обучения, и просто жестко запрограммировать его.   -  person Yaroslav Bulatov    schedule 03.03.2016