SlideShare une entreprise Scribd logo
1  sur  31
Павел Мезенцев
p.mezentsev@rambler-co.ru
Apache Mahout



   Как работает
машинное обучение
  на MapReduce
Что такое
       машинное обучение?




Алгоритмы искуственного интеллекта,
способные обучаться [Wikipedia]
Классификация
Кластеризация
Регрессия
Рекомендации
Существующие пакеты
          машинного обучения

●
    Matlab
●
    Octave
●
    R
●
    Weka
●
    ….......
Проблема
               больших данных




Что делать если объем обрабатываемых
данных исчисляется терабайтами?
Map Reduce




   `
Apache Mahout

●
    появился в 2008 году
●
    300 тыс. строк кода
●
    означает “погонщик слона”
●
    правильно произносить “махут”
●
    вышла книга “Mahout in Action”
Реализованные
                                   алгоритмы
    Классификация                                Кластеризация
●
    Логистическая регрессия                  ●
                                                 К-средних

●
    Байесовские классификаторы
                                             ●
                                                 Нечеткий алгоритм K-средних

                                                 Минимизация ожидания
    Случайный лес
                                             ●
●


                                             ●
                                                 Minhash кластеризация
●
    Скрытые марковские цепи
                                                 ….............




                               А также
               ●
                    Коллаборативная фильтрация
               ●
                    Генетические алгоритмы
               ●
                    Алгоритмы уменьшения размерностей
Машинное обучение
                 на MapReduce

●
    статья “MapReduce for Machine Learning on
    Multicore” (2008)


●
    Алгоритм должен быть представим в
    аддитивной форме по входным данным
Наивный Байес

                 ()
                   (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
                                           С
Наивный Байес
              на 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: выдаем
Наивный Байес
                на MapReduce 2
                                              (i)
    Выражение              (i)       ν( x , y)
●
                      P( x ∣ y)=
                                       ν( y )


●   Map: выдаем           i
                      ((x , y j ); Σ s ub )


●   Reduce: выдаем     ((x i , y j ); Σ)
Кластеризация K средних
Реализация на MapReduce
Отнесение объектов к кластерам
  Map: выдаем ( x , y nearest )


Поиск новых центров кластеров
                        ( y j ,(Σs ub x , N ))
  Map: выдаем
                        ( y j , x)
  Reduce: выдаем
Логистическая регрессия




             T
            w ⋅x=0
Вероятность
принадлежности к классу
               1
P w ( x)=
          1+exp(−w⋅x)
Максимум
                            правдоподобия
                       yi             1− y i
Lw ( x)= ∏i P w ( x i ) (1−P w ( x i ))

           n
l(w)=∑i=1 y i log p ( x i )+(1− y i )log(1− p ( x i ))

w=argmax w l(w )
Метод
                    Ньютона-Рафсона
В скалярном виде:     В векторном виде

      l ' (w)                    −1
w=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
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 ])
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])
Асимптотика
Алгоритм        Классическая   Сложность 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 – число ядер, на которых делается обучение
Особенности
               алгоритмов в Mahout

●
    в Наивном Байесе добавлен “отбор фич”


●
    В Логистической регрессии используется
    алгоритм “стохастического градиентного
    спуска”
Запуск Наивного Байеса
                         в Mahout

   Обучение
> mahout trainclassifier -i data -o model


   Тестирование
> mahout testclassifier -m model -d data
Запуск k средних


mahout kmeans -i data 
               -c clusters
               -o output
                -k clusters_num
Запуск Логистической
                регрессии

mahout trainlogistic -h


mahout runlogistic -h
Наш опыт
               использования Mahout
●
    Для классификации посетителей по полу и
    возрасту
●
    Использовались логи наших проектов за
    последние 30 дней
●
    Обучающая выборка – 1 млн. Человек.
    Классифицируем 300 млн.
●
    Время обучения и классификации порядка 3х
    часов
Вопросы




Павел Мезенцев   p.mezentsev@rambler-co.ru

Contenu connexe

Tendances

Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"Nikolay Grebenshikov
 
20110306 systems of_typed_lambda_calculi_moskvin_lecture03
20110306 systems of_typed_lambda_calculi_moskvin_lecture0320110306 systems of_typed_lambda_calculi_moskvin_lecture03
20110306 systems of_typed_lambda_calculi_moskvin_lecture03Computer Science Club
 
ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6Andrey Danilchenko
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторовTechnosphere1
 
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Nikolay Grebenshikov
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVMromovpa
 
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыTechnosphere1
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Technosphere1
 
Синус и косинус
Синус и косинусСинус и косинус
Синус и косинусartec457
 
Kvadratichnaya funkciya ejo_svojstva_i_grafik
Kvadratichnaya funkciya ejo_svojstva_i_grafikKvadratichnaya funkciya ejo_svojstva_i_grafik
Kvadratichnaya funkciya ejo_svojstva_i_grafikIvanchik5
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияTechnosphere1
 
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"Yandex
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Technosphere1
 
Структурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовойСтруктурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовойromovpa
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераTheoretical mechanics department
 

Tendances (20)

Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
 
20110306 systems of_typed_lambda_calculi_moskvin_lecture03
20110306 systems of_typed_lambda_calculi_moskvin_lecture0320110306 systems of_typed_lambda_calculi_moskvin_lecture03
20110306 systems of_typed_lambda_calculi_moskvin_lecture03
 
ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6
 
Сплайн интерполяция
Сплайн интерполяцияСплайн интерполяция
Сплайн интерполяция
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторов
 
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVM
 
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмы
 
Funkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafikFunkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafik
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии"
 
Синус и косинус
Синус и косинусСинус и косинус
Синус и косинус
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Kvadratichnaya funkciya ejo_svojstva_i_grafik
Kvadratichnaya funkciya ejo_svojstva_i_grafikKvadratichnaya funkciya ejo_svojstva_i_grafik
Kvadratichnaya funkciya ejo_svojstva_i_grafik
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессия
 
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
 
Grafiki trigonometricheskih funkcij
Grafiki trigonometricheskih funkcijGrafiki trigonometricheskih funkcij
Grafiki trigonometricheskih funkcij
 
Структурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовойСтруктурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовой
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод Эйлера
 

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

Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
 
20091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture0820091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture08Computer Science Club
 
20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02Computer Science Club
 
Статистическое сравнение классификаторов
Статистическое сравнение классификаторовСтатистическое сравнение классификаторов
Статистическое сравнение классификаторовAnton Konushin
 
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"Yandex
 
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Nikolay Grebenshikov
 
Doppler reflectometry in large devices
Doppler reflectometry in large devicesDoppler reflectometry in large devices
Doppler reflectometry in large devicesalexandersurkov
 
Fractal Geometry
Fractal GeometryFractal Geometry
Fractal GeometrySSA KPI
 
Решение задач на собственные значения
Решение задач на собственные значенияРешение задач на собственные значения
Решение задач на собственные значенияTheoretical mechanics department
 
20081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-0620081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-06Computer Science Club
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Nikolay Grebenshikov
 
20081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-1020081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-10Computer Science Club
 
Определенные интегралы
Определенные интегралыОпределенные интегралы
Определенные интегралыdaryaartuh
 
Определенные интеграллы
Определенные интеграллыОпределенные интеграллы
Определенные интеграллыdaryaartuh
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Technosphere1
 
Метод проекции градиента для решения стационарной системы Стокса как задачи ...
Метод проекции градиента для решения стационарной системы Стокса  как задачи ...Метод проекции градиента для решения стационарной системы Стокса  как задачи ...
Метод проекции градиента для решения стационарной системы Стокса как задачи ...iST1
 
20111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03Computer Science Club
 
Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1simple_people
 

Similaire à Мезенцев Павел - Машинное обучение на MapReduce (20)

Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
20091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture0820091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture08
 
20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02
 
Статистическое сравнение классификаторов
Статистическое сравнение классификаторовСтатистическое сравнение классификаторов
Статистическое сравнение классификаторов
 
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
 
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
 
Doppler reflectometry in large devices
Doppler reflectometry in large devicesDoppler reflectometry in large devices
Doppler reflectometry in large devices
 
Fractal Geometry
Fractal GeometryFractal Geometry
Fractal Geometry
 
Решение задач на собственные значения
Решение задач на собственные значенияРешение задач на собственные значения
Решение задач на собственные значения
 
20081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-0620081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-06
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
 
20081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-1020081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-10
 
Определенные интегралы
Определенные интегралыОпределенные интегралы
Определенные интегралы
 
Определенные интеграллы
Определенные интеграллыОпределенные интеграллы
Определенные интеграллы
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"
 
Метод проекции градиента для решения стационарной системы Стокса как задачи ...
Метод проекции градиента для решения стационарной системы Стокса  как задачи ...Метод проекции градиента для решения стационарной системы Стокса  как задачи ...
Метод проекции градиента для решения стационарной системы Стокса как задачи ...
 
Get Ft
Get FtGet Ft
Get Ft
 
20111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03
 
презентация к уроку2
презентация к уроку2презентация к уроку2
презентация к уроку2
 
Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1
 

Plus de Pavel Mezentsev

Data science on big data. Pragmatic approach
Data science on big data. Pragmatic approachData science on big data. Pragmatic approach
Data science on big data. Pragmatic approachPavel Mezentsev
 
Курс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARNКурс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARNPavel Mezentsev
 
MapReduce взгляд вглубь
MapReduce взгляд вглубьMapReduce взгляд вглубь
MapReduce взгляд вглубьPavel Mezentsev
 
Слоны в облаках
Слоны в облакахСлоны в облаках
Слоны в облакахPavel Mezentsev
 
Илья Трофимов - машинное обучение с помощью vw
Илья Трофимов - машинное обучение с помощью vwИлья Трофимов - машинное обучение с помощью vw
Илья Трофимов - машинное обучение с помощью vwPavel Mezentsev
 

Plus de Pavel Mezentsev (6)

Data science on big data. Pragmatic approach
Data science on big data. Pragmatic approachData science on big data. Pragmatic approach
Data science on big data. Pragmatic approach
 
Yarn
YarnYarn
Yarn
 
Курс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARNКурс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARN
 
MapReduce взгляд вглубь
MapReduce взгляд вглубьMapReduce взгляд вглубь
MapReduce взгляд вглубь
 
Слоны в облаках
Слоны в облакахСлоны в облаках
Слоны в облаках
 
Илья Трофимов - машинное обучение с помощью vw
Илья Трофимов - машинное обучение с помощью vwИлья Трофимов - машинное обучение с помощью vw
Илья Трофимов - машинное обучение с помощью vw
 

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

  • 2. Apache Mahout Как работает машинное обучение на MapReduce
  • 3. Что такое машинное обучение? Алгоритмы искуственного интеллекта, способные обучаться [Wikipedia]
  • 8. Существующие пакеты машинного обучения ● Matlab ● Octave ● R ● Weka ● ….......
  • 9. Проблема больших данных Что делать если объем обрабатываемых данных исчисляется терабайтами?
  • 11. Apache Mahout ● появился в 2008 году ● 300 тыс. строк кода ● означает “погонщик слона” ● правильно произносить “махут” ● вышла книга “Mahout in Action”
  • 12. Реализованные алгоритмы Классификация Кластеризация ● Логистическая регрессия ● К-средних ● Байесовские классификаторы ● Нечеткий алгоритм K-средних Минимизация ожидания Случайный лес ● ● ● Minhash кластеризация ● Скрытые марковские цепи …............. А также ● Коллаборативная фильтрация ● Генетические алгоритмы ● Алгоритмы уменьшения размерностей
  • 13. Машинное обучение на MapReduce ● статья “MapReduce for Machine Learning on Multicore” (2008) ● Алгоритм должен быть представим в аддитивной форме по входным данным
  • 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. Наивный Байес на 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. Наивный Байес на MapReduce 2 (i) Выражение (i) ν( x , y) ● P( x ∣ y)= ν( y ) ● Map: выдаем i ((x , y j ); Σ s ub ) ● Reduce: выдаем ((x i , y j ); Σ)
  • 18. Реализация на MapReduce Отнесение объектов к кластерам Map: выдаем ( x , y nearest ) Поиск новых центров кластеров ( y j ,(Σs ub x , N )) Map: выдаем ( y j , x) Reduce: выдаем
  • 21. Максимум правдоподобия yi 1− y i Lw ( x)= ∏i P w ( x i ) (1−P w ( x i )) n l(w)=∑i=1 y i log p ( x i )+(1− y i )log(1− p ( x i )) w=argmax w l(w )
  • 22. Метод Ньютона-Рафсона В скалярном виде: В векторном виде l ' (w) −1 w=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. 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. 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. Асимптотика Алгоритм Классическая Сложность 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. Особенности алгоритмов в Mahout ● в Наивном Байесе добавлен “отбор фич” ● В Логистической регрессии используется алгоритм “стохастического градиентного спуска”
  • 27. Запуск Наивного Байеса в Mahout Обучение > mahout trainclassifier -i data -o model Тестирование > mahout testclassifier -m model -d data
  • 28. Запуск k средних mahout kmeans -i data -c clusters -o output -k clusters_num
  • 29. Запуск Логистической регрессии mahout trainlogistic -h mahout runlogistic -h
  • 30. Наш опыт использования Mahout ● Для классификации посетителей по полу и возрасту ● Использовались логи наших проектов за последние 30 дней ● Обучающая выборка – 1 млн. Человек. Классифицируем 300 млн. ● Время обучения и классификации порядка 3х часов
  • 31. Вопросы Павел Мезенцев p.mezentsev@rambler-co.ru