Чи може SVM робити потокове навчання одним прикладом?


33

У мене є набір потокових даних, приклади доступні по одному. Мені потрібно було б зробити їх класичну класифікацію. Як тільки я подав навчальний приклад навчальному процесу, я мушу відкинути приклад. Одночасно я також використовую найновішу модель для прогнозування даних без маркування.

Наскільки я знаю, нейронна мережа здатна здійснювати потокове навчання, подаючи приклади один за одним, виконуючи розповсюдження вперед та зворотнє пропонування на прикладі.

Чи може SVM виконувати потокове навчання один приклад і одразу ж відкинути приклад?


2
Прийняту відповідь слід оновити. Здається, на даний момент є кілька бібліотек, які підтримують алгоритми онлайн-навчання SVM. Vobpal wabbit має зменшення для svm , іншими альтернативами є: scikit-learn, sofia-ml та пакет Rernlab R має кілька варіантів онлайн-навчання.
марбель

Відповіді:


22

Настройка потокової передачі в машинному навчанні називається "онлайн-навчання". В онлайн-налаштуваннях немає точної векторної машини підтримки (оскільки визначення цільової функції притаманне для пакетної настройки). Напевно, найпростішим узагальненням SVM до налаштувань в Інтернеті є пасивно-агресивні алгоритми. Код тут http://webee.technion.ac.il/people/koby/code-index.html, і пов'язаний документ тут http://eprints.pascal-network.org/archive/00002147/01/CrammerDeKeShSi06. pdf

Основна ідея полягає в тому, що можна отримати дані у вигляді пар з точками запитів xR, де k - кількість міток. Алгоритм підтримує вагову матрицю W TR K × d при ітерації т алгоритми recieves точки даних х т , а потім дає передбачені оцінки у т = Ш х т(x,y)Rd×[k]xRkWtRk×dtxty^t=Wxtдля кожної мітки, і вона передбачає найвищу оцінку як справжню мітку. Якщо прогноз помилковий, алгоритм вносить найменші зміни на такі, що дозволить уникнути цієї помилки в майбутньому. Найменша зміна тут визначається з точки зору норми Фробеніуса.Wt


1
(+1) Ласкаво просимо на сайт, Марк.
кардинал

11

Я завжди вважав, що неявна рамка оновлень (що включає пасивно-агресивні алгоритми, згадані в іншій відповіді тут) є надмірно складнішою, ніж явна рамка оновлень (не кажучи вже про те, що неявні оновлення можуть бути набагато повільнішими, ніж явні, якщо не доступне рішення закритої форми для неявного оновлення).

Важливе оновлення в Інтернеті Вага оновлень - це приклад сучасного явного алгоритму оновлення, який простіший, швидший і гнучкіший (підтримує кілька функцій втрат, багаторазові штрафи, чутливе до навчання навчання тощо), ніж їхні неявні аналоги. У статті розглядаються лише лінійні моделі (лінійний svm відповідає випадку функції втрати шарніру з квадратичним покаранням)

Оскільки вам потрібна багатокласна класифікація, одним із підходів є використання функцій "скорочення" vowpal wabbit (побудований на вершині підходу з паперу), що, на жаль, не зафіксовано добре.


8

LASVM - один з найпопулярніших варіантів онлайн-навчання SVM.

Лінійні SVM також можуть бути навчені, використовуючи стохастичний градієнтний спуск, як і будь-яка лінійна модель.


Щоб зрозуміти, не будь-яка лінійна модель може бути навчена за допомогою SGD, потрібно припустити принаймні певну форму цілі (функція адитивної втрати)
lejlot

6

Будь ласка, зверніться до статті « Поступове навчання, адаптація та оптимізація SVM», яка запропонувала Інтернет-SVM для двійкової класифікації.

Код наведеної вище статті можна знайти тут . У коді вводяться два способи онлайн-навчання:

  1. тренуйте SVM поступово на одному прикладі одночасно, телефонуючи svmtrain()та
  2. виконувати пакетне навчання, збільшуючи одночасно всі приклади тренувань до рішення, зателефонувавши svmtrain2().

Повернувшись до свого запитання, відповідь, очевидно, ТАК, щоби вивчити один приклад. А також код може обробляти не вивчений (відкинути) приклад, тобто точну та приблизну оцінку помилок "відключення" (LOO) - точну оцінку помилки LOO можна ефективно обчислити, точно розкриваючи один приклад за один раз та перевіряючи класифікатор на приклад.


(+1) Ласкаво просимо на наш сайт!
whuber

0

Інтернет-навчання з ядрами обговорює онлайн-навчання в загальних налаштуваннях ядра.

Уривок з реферату -

" Алгоритми на основі ядра, такі як машини векторів підтримки, досягли значного успіху в різних проблемах в пакетній установці, де всі навчальні дані доступні заздалегідь. Вектори підтримки машин поєднують так званий трюк ядра з ідеєю великого запасу." Мале використання цих методів в онлайновій обстановці, що підходить для додатків у реальному часі. У цій роботі ми розглядаємо онлайн-навчання у відтворювальному просторі ядра Гільберта. , ми розробляємо прості та обчислювально ефективні алгоритми для широкого кола проблем, таких як класифікація, регресія та виявлення новинок ".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.