2010-10-19 2 views
14

Я использую многомерный классификатор SVM (SVM.NET, оболочка для libSVM), чтобы классифицировать набор функций.Может ли SVM учиться постепенно?

Учитывая модель SVM, можно ли включить новые данные обучения без пересчета на все предыдущие данные? Я предполагаю, что другой способ: это SVM mutable?

+0

Я начал ходить через книгу епископа, чтобы помочь ответить на этот вопрос, но я полагаю, вы могли бы получить более глубокий ответ более по адресу: //mathoverflow.net/ – wheaties

ответ

13

Собственно, это обычно называется постепенным обучением. Вопрос встал раньше и здесь довольно хорошо ответил: A few implementation details for a Support-Vector Machine (SVM).

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

Я нашел два возможных решения: SVMHeavy и LaSVM, что поддерживает постепенное обучение. Но я не использовал их и ничего не знаю о них.

+0

Спасибо, я изменил название вопроса, чтобы быть более точным. Вопрос, на который вы ссылаетесь, является хорошим ответом на мой вопрос. –

+6

Я обычно видел, что это называется «онлайн-обучением». –

+0

@larsmans Хорошая точка. Это также иногда путают/объединяются с активным обучением. – Stompchicken

1

Интернет и инкрементный, хотя похожий, но немного отличающийся. В онлайн-режиме может быть сконфигурирован его общий проход (эпоха = 1) или количество эпох. Где as, incremental означало бы, что у вас уже есть модель; независимо от того, как он построен, но тогда модель может быть изменена новыми примерами. Кроме того, часто требуется сочетание онлайн и инкрементальности.

Вот список инструментов, с некоторыми замечаниями по онлайн и/или дополнительным SVM: https://stats.stackexchange.com/questions/30834/is-it-possible-to-append-training-data-to-existing-svm-models/51989#51989