Система машинного обучения
Vowpal Wabbit ( VW ) — это быстрая онлайн- библиотека и программа для машинного обучения с открытым исходным кодом, изначально разработанная в Yahoo! Research , а в настоящее время — в Microsoft Research . Она была основана и возглавляется Джоном Лэнгфордом . Интерактивная поддержка обучения Vowpal Wabbit особенно примечательна, включая Contextual Bandits , Active Learning и формы управляемого обучения с подкреплением . Vowpal Wabbit обеспечивает эффективную масштабируемую реализацию вне ядра с поддержкой ряда сокращений машинного обучения , взвешивания важности и выбора различных функций потерь и алгоритмов оптимизации.
Примечательные особенности
Программа VW поддерживает:
- Множественные проблемы контролируемого (и полуконтролируемого) обучения:
- Классификация (как бинарная, так и многоклассовая)
- Регрессия
- Активное обучение (частично размеченные данные) как для регрессии, так и для классификации
- Множественные алгоритмы обучения (типы моделей/представления)
- Функции множественных потерь :
- квадрат ошибки
- квантиль
- петля
- логистический
- пуассон
- Множественные алгоритмы оптимизации
- Регуляризация ( норма L1 , норма L2 и регуляризация эластичной сети )
- Гибкий ввод — функции ввода могут быть:
- Двоичный
- Числовой
- Категориальный (с помощью гибкого именования функций и хэш-трюка )
- Может работать с отсутствующими значениями/редкими признаками
- Другие особенности
- Генерация взаимодействий признаков «на лету» (квадратичных и кубических)
- Генерация N-грамм «на лету» с дополнительными пропусками (полезно для наборов данных по словам/языкам)
- Автоматическая задержка тестового набора и раннее завершение при нескольких проходах
- самонастройка
- Настраиваемый пользователем онлайн-отчет о ходе обучения + аудит модели
- Оптимизация гиперпараметров
Масштабируемость
Vowpal wabbit использовался для изучения набора данных тера-признаков (10 12 ) на 1000 узлах за один час. [1] Его масштабируемость обусловлена несколькими факторами:
- Внеклассное онлайн-обучение: нет необходимости загружать все данные в память
- Хитрость хеширования : идентификаторы признаков преобразуются в весовой индекс с помощью хэша (использует 32-битный MurmurHash 3)
- Использование многоядерных процессоров: анализ входных данных и обучение выполняются в отдельных потоках.
- Скомпилированный код C++
Ссылки
- ^ Агарвал, Алех; Шапель, Оливье; Дудик, Мирослав; Лэнгфорд, Джон (2011). «Надежная эффективная система линейного обучения Terascale». arXiv : 1110.4198 [cs.LG].
Внешние ссылки
- Официальный сайт
- Репозиторий Vowpal Wabbit на GitHub
- Документация и примеры (github wiki)
- Учебное пособие по Vowpal Wabbit на выставке NIPS 2011
- Вопросы (и ответы) с тегом 'vowpalwabbit' на StackOverflow