Павел Мезенцевp.mezentsev@rambler-co.ru
Apache Mahout   Как работаетмашинное обучение  на MapReduce
Что такое       машинное обучение?Алгоритмы искуственного интеллекта,способные обучаться [Wikipedia]
Классификация
Кластеризация
Регрессия
Рекомендации
Существующие пакеты          машинного обучения●    Matlab●    Octave●    R●    Weka●    ….......
Проблема               больших данныхЧто делать если объем обрабатываемыхданных исчисляется терабайтами?
Map Reduce   `
Apache Mahout●    появился в 2008 году●    300 тыс. строк кода●    означает “погонщик слона”●    правильно произносить “ма...
Реализованные                                   алгоритмы    Классификация                                Кластеризация●  ...
Машинное обучение                 на MapReduce●    статья “MapReduce for Machine Learning on    Multicore” (2008)●    Алго...
Наивный Байес                 ()                   (1)                xПризнаки    x            ⃗ = ...         Класс y = ...
Наивный Байес              на MapReduce 1●    Выражение         ν( y) ∑ j 1( y j = y)               P( y)=        =       ...
Наивный Байес                на MapReduce 2                                              (i)    Выражение              (i)...
Кластеризация K средних
Реализация на MapReduceОтнесение объектов к кластерам  Map: выдаем ( x , y nearest )Поиск новых центров кластеров         ...
Логистическая регрессия             T            w ⋅x=0
Вероятностьпринадлежности к классу               1P w ( x)=          1+exp(−w⋅x)
Максимум                            правдоподобия                       yi             1− y iLw ( x)= ∏i P w ( x i ) (1−P ...
Метод                    Ньютона-РафсонаВ скалярном виде:     В векторном виде      l  (w)                    −1w=w−      ...
MapReduce                        для Градиента    Выражение              ∂ l(w )   m                                   =∑i...
MapReduce для                         Гамильтониана                     2                  ∂ l(w)      m                  ...
АсимптотикаАлгоритм        Классическая   Сложность MapReduce                сложность                                   m...
Особенности               алгоритмов в Mahout●    в Наивном Байесе добавлен “отбор фич”●    В Логистической регрессии испо...
Запуск Наивного Байеса                         в Mahout   Обучение> mahout trainclassifier -i data -o model   Тестирование...
Запуск k среднихmahout kmeans -i data                -c clusters               -o output                -k clusters_num
Запуск Логистической                регрессииmahout trainlogistic -hmahout runlogistic -h
Наш опыт               использования Mahout●    Для классификации посетителей по полу и    возрасту●    Использовались лог...
ВопросыПавел Мезенцев   p.mezentsev@rambler-co.ru
Upcoming SlideShare
Loading in …5
×

Мезенцев Павел - Машинное обучение на MapReduce

3,574 views

Published on

Слайды с выступления Мезенцева Павла на Hadoop User Group Meetup,
прошедшем в Москве 8 ноября 2012.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,574
On SlideShare
0
From Embeds
0
Number of Embeds
2,234
Actions
Shares
0
Downloads
23
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Мезенцев Павел - Машинное обучение на MapReduce

  1. 1. Павел Мезенцевp.mezentsev@rambler-co.ru
  2. 2. Apache Mahout Как работаетмашинное обучение на MapReduce
  3. 3. Что такое машинное обучение?Алгоритмы искуственного интеллекта,способные обучаться [Wikipedia]
  4. 4. Классификация
  5. 5. Кластеризация
  6. 6. Регрессия
  7. 7. Рекомендации
  8. 8. Существующие пакеты машинного обучения● Matlab● Octave● R● Weka● ….......
  9. 9. Проблема больших данныхЧто делать если объем обрабатываемыхданных исчисляется терабайтами?
  10. 10. Map Reduce `
  11. 11. Apache Mahout● появился в 2008 году● 300 тыс. строк кода● означает “погонщик слона”● правильно произносить “махут”● вышла книга “Mahout in Action”
  12. 12. Реализованные алгоритмы Классификация Кластеризация● Логистическая регрессия ● К-средних● Байесовские классификаторы ● Нечеткий алгоритм K-средних Минимизация ожидания Случайный лес ●● ● Minhash кластеризация● Скрытые марковские цепи …............. А также ● Коллаборативная фильтрация ● Генетические алгоритмы ● Алгоритмы уменьшения размерностей
  13. 13. Машинное обучение на MapReduce● статья “MapReduce for Machine Learning on Multicore” (2008)● Алгоритм должен быть представим в аддитивной форме по входным данным
  14. 14. Наивный Байес () (1) xПризнаки x ⃗ = ... Класс y = {0, 1} (n) x Формула Байеса: (1) (n) (1) (n) P( x ,.... , x ∣ y) P( y∣x ,.... , x )=P ( y) (1) (n) P(x ,.... , x )Наивное предположение: ∣x (1) ,.... , x (n))=P ( y) ∏i P(x (i)∣ y ) P( y С
  15. 15. Наивный Байес на MapReduce 1● Выражение ν( y) ∑ j 1( y j = y) P( y)= = ν(all) ∑j 1● Map: выдаем ( y j , Σ s ub ) (total , Σ s ub ) ( y j , Σ) (total , Σ)● Reduce: выдаем
  16. 16. Наивный Байес на MapReduce 2 (i) Выражение (i) ν( x , y)● P( x ∣ y)= ν( y )● Map: выдаем i ((x , y j ); Σ s ub )● Reduce: выдаем ((x i , y j ); Σ)
  17. 17. Кластеризация K средних
  18. 18. Реализация на MapReduceОтнесение объектов к кластерам Map: выдаем ( x , y nearest )Поиск новых центров кластеров ( y j ,(Σs ub x , N )) Map: выдаем ( y j , x) Reduce: выдаем
  19. 19. Логистическая регрессия T w ⋅x=0
  20. 20. Вероятностьпринадлежности к классу 1P w ( x)= 1+exp(−w⋅x)
  21. 21. Максимум правдоподобия yi 1− y iLw ( x)= ∏i P w ( x i ) (1−P w ( x i )) nl(w)=∑i=1 y i log p ( x i )+(1− y i )log(1− p ( x i ))w=argmax w l(w )
  22. 22. Метод Ньютона-РафсонаВ скалярном виде: В векторном виде l (w) −1w=w− w=w−H ∇ w l(w) l (w) 2 2 ( ) ( ) ∂ l(w) ∂ l(w) ∂ l(w) ... ∂ w1 ∂ w1 ∂ w1 ∂ w1 ∂ wn ∇ w l(w )= ... H= ... ... ... ∂ l(w) 2 ∂ l(w) 2 ∂ l(w) ... ∂ wn ∂ w n ∂ w1 ∂ wn ∂ wn
  23. 23. MapReduce для Градиента Выражение ∂ l(w ) m =∑i=1 ( y i − p w (x i )) x i● (k) ∂ wk grad s ub [k ]=∑i ( y− pw ( x i )) x (k i )● Map: вычисляем выдаем (k , grad s ub [k ])● Reduce: вычисляем grad [k ]=∑ grad s ub [k ] выдаем (k , grad [k ])
  24. 24. MapReduce для Гамильтониана 2 ∂ l(w) m =∑i=1 p w (x i )( p w ( x i )−1) x i x i ( j) (k)● Выражение ∂ wk ∂ w j● Map: вычисляем H s ub [k , j]=∑s ub .... выдаем ((k , j); H s ub [k , j])● Reduce: вычисляем H [k , j]=H s ub [k , j] выдаем ((k , j); H [k , j])
  25. 25. АсимптотикаАлгоритм Классическая Сложность MapReduce сложность mnНаивный Байес O(mn+nc) O( +nc log P) P mnc O(mnc) O( +mn log P)K-средних P 2 O(mn +n ) 3 m 2 n n3 2 O( + +n log P)Логистическая P Pрегрессияn – размерность пространства признаковm – число обучающих примеровP – число ядер, на которых делается обучение
  26. 26. Особенности алгоритмов в Mahout● в Наивном Байесе добавлен “отбор фич”● В Логистической регрессии используется алгоритм “стохастического градиентного спуска”
  27. 27. Запуск Наивного Байеса в Mahout Обучение> mahout trainclassifier -i data -o model Тестирование> mahout testclassifier -m model -d data
  28. 28. Запуск k среднихmahout kmeans -i data -c clusters -o output -k clusters_num
  29. 29. Запуск Логистической регрессииmahout trainlogistic -hmahout runlogistic -h
  30. 30. Наш опыт использования Mahout● Для классификации посетителей по полу и возрасту● Использовались логи наших проектов за последние 30 дней● Обучающая выборка – 1 млн. Человек. Классифицируем 300 млн.● Время обучения и классификации порядка 3х часов
  31. 31. ВопросыПавел Мезенцев p.mezentsev@rambler-co.ru

×