Инкрементное обучение многослойного персептрона Weka

Я использую многослойный персептрон weka для построения классификатора. Дело в том, что у меня так много наборов данных, поэтому я хочу делать инкрементное обучение снова и снова. После вызова buildClassifier с dataset1. После того, как я закончил обучение, Что делать, если я вызову buildClassifier с dataset2. Что будет? Теряется ли сеть, которую я уже обучал с database1? Или отправной точкой при следующем вызове builderClassifier (dataset2) является обученная сеть с dataset1? Если это первый случай, есть ли способ сделать так, как я сказал, используя Weka MLP?

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

Спасибо!

1 ответ

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

    Если вы хотите, чтобы процесс обучения использовал больше образцов, просто добавьте их в обучающий набор (dataset1) и начните новый процесс обучения, вызывая buildClassifier на новом наборе данных, чтобы алгоритм обратного распространения мог использовать все доступные данные для обучения модели!

    С другой стороны, если вы обучили модель, скажем, с 10 эпохами, и вы хотите обучить другую модель на том же наборе данных, но с 20 эпохами, не теряя первую, Вы можете просто скопировать ее с помощью метода makeCopy().

    Дополнительные сведения см. В документе doc: http://weka.sourceforge.net/doc.stable-3-8/weka/classifiers/functions/MultilayerPerceptron.html