Указание продолжительности обучения для модели ML. NET - PullRequest
1 голос
/ 24 марта 2020

Это может быть очевидным вопросом, но мне кажется, что я ничего не могу найти в ML. NET Документация Microsoft.

Я пытался попасть в ML. NET немного позже, и документация всегда следует одной и той же базовой процедуре c, а именно: создание цепочки оценки и подгонка цепочки к данным, что, в сущности, обучает модель.

В документации также указано, что вы Я должен экспериментировать с разными сроками обучения, поэтому мой вопрос звучит так: как вы определяете продолжительность обучения? Каждый раз, когда я вижу в документах «тренировочный» метод, он всегда просто

ITransformer model = pipeline.Fit(data);

без какой-либо возможности указать продолжительность обучения. Я пропускаю очевидное здесь? Вы указываете продолжительность в цепочке оценки? Любая помощь в этом очень ценится.

1 Ответ

1 голос
/ 27 марта 2020

Алгоритмы машинного обучения имеют различное поведение, в некоторых моделях предусмотрены такие параметры, как шаги, которые необходимо обучить, в качестве входных данных, или длительности, или эпохи, или частоты ошибок и т. Д. c ... и результат отличается от одного прогона к другому. Но некоторые другие имеют фиксированный алгоритм и всегда имеют один и тот же результат, и независимо от того, сколько раз вы запускаете тренера, результат один и тот же. Я думаю, что ваша модель является последним случаем.

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

В вашем случае изменение следующих настроек может изменить продолжительность вашей тренировки:

// Define trainer options.
var options = new LbfgsMaximumEntropyMulticlassTrainer.Options
{
    HistorySize = 50,
    L1Regularization = 0.1f,
    NumberOfThreads = 1
};
...