Sistema de aprendizaje automático
Vowpal Wabbit ( VW ) es una biblioteca y un programa de aprendizaje automático interactivo en línea de código abierto desarrollado originalmente en Yahoo! Research y actualmente en Microsoft Research . Fue iniciado y está dirigido por John Langford . El soporte de aprendizaje interactivo de Vowpal Wabbit es particularmente notable, incluyendo Contextual Bandits , Active Learning y formas de aprendizaje de refuerzo guiado . Vowpal Wabbit proporciona una implementación fuera del núcleo eficiente y escalable con soporte para una serie de reducciones de aprendizaje automático , ponderación de importancia y una selección de diferentes funciones de pérdida y algoritmos de optimización.
Características destacables
El programa VW apoya:
- Múltiples problemas de aprendizaje supervisado (y semisupervisado):
- Clasificación (tanto binaria como multiclase)
- Regresión
- Aprendizaje activo (datos parcialmente etiquetados) tanto para regresión como para clasificación
- Algoritmos de aprendizaje múltiples (tipos de modelos/representaciones)
- Regresión MCO
- Factorización de matrices (SVD de matriz dispersa)
- Red neuronal de una sola capa (con un número de nodos de capa oculta especificado por el usuario)
- Searn (Buscar y aprender)
- Asignación de Dirichlet latente (LDA)
- Aproximación polinómica por etapas
- Recomendar los mejores K de N
- Reducción de OAA sensible a los costos y de uno contra todos (OAA) para clases múltiples
- Ponderados todos los pares
- Bandido contextual (con múltiples estrategias de exploración/explotación)
- Funciones de pérdida múltiples :
- error al cuadrado
- cuantil
- bisagra
- logístico
- pescado
- Múltiples algoritmos de optimización
- Regularización ( norma L1 , norma L2 y regularización de red elástica )
- Entrada flexible: las características de entrada pueden ser:
- Binario
- Numérico
- Categórico (a través de la denominación flexible de funciones y el truco hash )
- Puede lidiar con valores faltantes/características dispersas
- Otras características
- Generación sobre la marcha de interacciones de características (cuadráticas y cúbicas)
- Generación sobre la marcha de N-gramas con saltos opcionales (útil para conjuntos de datos de palabras/idiomas)
- Retención automática del conjunto de pruebas y terminación anticipada en múltiples pasadas
- arranque
- Informe de progreso del aprendizaje en línea configurable por el usuario + auditoría del modelo
- Optimización de hiperparámetros
Escalabilidad
Se ha utilizado Vowpal wabbit para aprender un conjunto de datos con características tera (10 12 ) en 1000 nodos en una hora. [1] Su escalabilidad se ve favorecida por varios factores:
- Aprendizaje en línea fuera del núcleo: no es necesario cargar todos los datos en la memoria
- El truco del hash : las identidades de características se convierten en un índice de peso a través de un hash (usa MurmurHash 3 de 32 bits)
- Explotación de CPU multinúcleo: el análisis de la entrada y el aprendizaje se realizan en subprocesos separados.
- Código C++ compilado
Referencias
- ^ Agarwal, Alekh; Chapelle, Olivier; Dudik, Miroslav; Langford, John (2011). "Un sistema de aprendizaje lineal confiable y eficaz a escala de teras". arXiv : 1110.4198 [cs.LG].
Enlaces externos
- Sitio web oficial
- Repositorio github de Vowpal Wabbit
- Documentación y ejemplos (wiki de Github)
- Tutorial de Vowpal Wabbit en NIPS 2011
- Preguntas (y respuestas) etiquetadas con 'vowpalwabbit' en StackOverflow