Pitanje:
Je li moguće dodati podatke o obuci postojećim SVM modelima?
mugetsu
2012-06-21 03:34:18 UTC
view on stackexchange narkive permalink

Koristim libsvm i primijetio sam da svaki put kad pozovem svmtrain (), kreiram novi model i čini se da ne postoji opcija za stavljanje podataka u postojeći model. Je li to moguće učiniti? Ne vidim li ovaj aspekt u libsvm?

Nisam siguran što mislite pod pojmom "stavljanje podataka u postojeći model"? Možete li dati primjer neke druge tehnike (ne SVM) koja vam to omogućuje? Uzmimo za primjer logističku regresiju; ako dodate nove podatke, dobit ćete novi set koeficijenata prekvalificiran na postojećem skupu bez reference na to koji su podaci "novi" ili "stari", sve su to samo podaci o treningu. Pretpostavljam da ako koristite rješavač tipa gradijentnog spuštanja, mogli biste uštedjeti vrijeme inicijalizacijom na prethodno optimiziranim vrijednostima, što će vjerojatno biti blizu novom rješenju. Jeste li to mislili?
četiri odgovori:
Matt Krause
2012-06-21 05:09:12 UTC
view on stackexchange narkive permalink

Zvuči kao da tražite "inkrementalni" ili "mrežni" algoritam učenja. Ovi vam algoritmi omogućuju ažuriranje klasifikatora novim primjerima, bez ponovne obuke cijele stvari od nule.

Definitivno je moguće s vektorskim strojevima za podršku, iako vjerujem da ga libSVM trenutno ne podržava. Možda bi vrijedilo pogledati nekoliko drugih paketa koji ga nude, uključujući

PS: @Bogdanovist: O tome postoji prilično opsežna literatura. kNN je očito i trivijalno priraštaj. Mogli bismo pretvoriti (neke) bayesovske klasifikatore u inkrementalne klasifikatore pohranjujući brojeve umjesto vjerojatnosti. STAGGER, AQ * i neki (ali ne svi) iz obitelji ID * algoritama stabla odluka također su inkrementalni, od vrha moje glave.

Zanimljivo, hvala na glavama. Već sam ranije vidio pojam "na mreži", ali nisam shvatio tehnički značaj (mislio sam da to doslovno znači "može haz internetz").
Drago mi je što sam vam pomogla! Trebao sam to spomenuti gore, ali neki mrežni / inkrementalni algoritmi zapravo daju veću težinu "najnovijim" primjerima, koji mogu, ali ne moraju biti korisni, ovisno o vašoj aplikaciji (npr. Izvrsno za predviđanje twitter tema, manje strašno za rak) istraživanje).
rahulkmishra
2013-03-12 17:19:37 UTC
view on stackexchange narkive permalink

Većina mrežnih / inkrementalnih SVM uslužnih programa su za linearne jezgre i pretpostavljam da nisu toliko teške kao za nelinearne jezgre.

Neki od značajnih internetskih / inkrementalnih SVM alata koji su trenutno dostupni:
+ LaSVM Leona Bottousa: Podržava i linearne i nelinearne jezgre. C ++ kôd
+ Bordesov LaRank: Podržava i linearne i nelinearne jezgre. C ++ kôd. Čini se da je veza sada prekinuta :-(
+ Inkrementalni i dekrementalni kod Gerta Cauwenberghsa: podržava linearne i nelinearne jezgre. Matlab kôd.
+ Inkrementalni SVM Chrisa Diehla Učenje: podržava linearne i nelinearne jezgre. Matlab kôd.
+ SVMHeavy Alistaira Shiltona: Samo binarna klasifikacija i regresija. C ++ kôd
+ Francesco Parrella OnlineSVR: Samo regresija. Matlab i C ++.
+ Pegasos: i linearni i nelinearni. C i Matlab kôd. Java sučelje.
+ Langfordov Vowpal Wabbit: Nisam siguran :-(
+ Koby Crammer's MCSVM: I linearni i nelinearni. C kôd

Ažuriraniji popis može se naći u mom odgovoru na Quoru.

(+1) Dobrodošli na stranicu. To je prilično iscrpan popis! :)
jpmuc
2013-03-12 17:34:37 UTC
view on stackexchange narkive permalink

Druga mogućnost je zasijavanje alfa. Ne znam podržava li liBSVM. Ideja je podijeliti ogromnu količinu podataka o treningu na dijelove. Tada trenirate SVM na prvom dijelu. Budući da rezultirajući vektori podrške nisu ništa drugo do neki od uzoraka vaših podataka, uzimate ih i koristite ih za vježbanje SVM-a sa sljedećim dijelom. Također, taj SVM koristite za izračunavanje početne procjene alfa vrijednosti za sljedeću iteraciju (zasijavanje). Stoga su prednosti dvostruke: svaki je problem manji i pametnom se inicijalizacijom konvergiraju još brže. Na taj način pojednostavljujete ogroman problem u sekvencijalno rješavanje niza jednostavnijih koraka.

postoji li knjižnica koja primjenjuje ovu metodu?
očito libsvm to već čini, ili barem neka varijanta algoritma http://www.work.caltech.edu/~htlin/program/libsvm/
Chantz Large
2015-06-03 22:14:53 UTC
view on stackexchange narkive permalink

Još jednu opciju ako tražite "inkrementalno" rješenje možete pronaći ovdje ...

Liblinear Incremental

Proširenje LIBLINEAR-a koje omogućuje za postepeno učenje.



Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 3.0 licenci pod kojom se distribuira.
Loading...