Vowpal Wabbit
Utvecklare | Yahoo! Research & senare Microsoft Research |
---|---|
Stabil frisättning | 9.6.0 / 8 november 2022
|
Förvar | |
Skrivet i | C++ |
Operativ system | Linux , macOS , Microsoft Windows |
Plattform | Cross-plattform |
Typ | Maskininlärning |
Licens | BSD-licens |
Hemsida |
Vowpal Wabbit ( VW ) är ett snabbt online interaktivt maskininlärningssystembibliotek med öppen källkod utvecklat ursprungligen på Yahoo! Research , och för närvarande på Microsoft Research . Det startades och leds av John Langford . Vowpal Wabbits interaktiva inlärningsstöd är särskilt anmärkningsvärt inklusive Contextual Bandits , Active Learning och former av guidad förstärkningsinlärning . Vowpal Wabbit tillhandahåller en effektiv skalbar out-of-core- implementering med stöd för ett antal minskningar av maskininlärning, viktning av vikt och ett urval av olika förlustfunktioner och optimeringsalgoritmer.
Anmärkningsvärda funktioner
VW-programmet stöder:
- Flera övervakade (och semi-övervakade) inlärningsproblem:
- Klassificering (både binär och multi-klass)
- Regression
- Aktivt lärande (delvis märkt data) för både regression och klassificering
- Flera inlärningsalgoritmer (modelltyper/representationer)
- OLS -regression
- Matrisfaktorisering (gles matris SVD)
- Enkellagers neuralt nät (med användarspecificerat antal dolda lagernoder)
- Searn (Sök och lär)
- Latent Dirichlet Allocation (LDA)
- Stegvis polynomapproximation
- Rekommendera topp-K av N
- En-mot-alla (OAA) och kostnadskänslig OAA-reduktion för flera klasser
- Viktade alla par
- Contextual-bandit (med flera utforsknings-/exploateringsstrategier)
- Flera förlustfunktioner :
- kvadratfel
- kvantil
- gångjärn
- logistisk
- gift
- Flera optimeringsalgoritmer
- Regularisering ( L1 - norm , L2 - norm och elastisk nettoreglering )
- Flexibel inmatning - inmatningsfunktioner kan vara:
- Binär
- Numerisk
- Kategorisk (via flexibel funktionsnamn och hash-tricket )
- Kan hantera saknade värden/glesa-funktioner
- Andra funktioner
- Generering av funktionsinteraktioner i farten (kvadratisk och kubisk)
- N-gram i farten med valfria överhopp (användbart för ord-/språkdatauppsättningar)
- Automatisk testuppsättning och tidig avslutning vid flera pass
- bootstrapping
- Användarinställbar onlinelärande lägesrapport + revision av modellen
- Hyperparameteroptimering
Skalbarhet
Vowpal wabbit har använts för att lära sig en tera-funktion (10 12 ) datauppsättning på 1000 noder på en timme. Dess skalbarhet stöds av flera faktorer:
- Out-of-core onlineinlärning: du behöver inte ladda all data i minnet
- Hashingtricket : funktionsidentiteter konverteras till ett viktindex via en hash (använder 32-bitars MurmurHash 3 )
- Utnyttja flerkärniga CPU: er: analys av input och inlärning görs i separata trådar.
- Kompilerad C++-kod