Продолжим.
В предыдущей
статье я начал рассказ о 10-ой неделе
обучения, тема «Large-scale Machine Learning». Были
рассмотрены темы: Stochastic Gradient Descent,
Mini-batch Gradient Descen, Online Learning.
Как рассказывал
профессор, есть два основных подхода к
перевариванию больших датасетов:
Stochastic Gradient
Descent и
Map Reduce (data
parallelizm)
Посмотрим на
Map Reduce and Data Parallelism.
В отличие от
Stochastic Gradient Descent, который способен
обрабатывать большие датасеты на одном
вычислительном узле, техника Map-Reduce дает
возможность задействовать много
вычислителей. Данные делятся на порции,
эти порции обрабатываются параллельно
на разных процессорах/узлах и результаты
обработки консолидируются.
Предположим,
у нас есть четыре машины и мы хотим,
используя Batch Gradient Descent, найти оптимальные
значения параметров модели. Допустим,
датасет у нас состоит из 400 записей.
Тогда первая машина будет считать сумму
для записей 1-100, вторая 101-200, третья
201-300 и четвертая 301-400. Все эти суммы
высчитываются параллельно. Схема
понятна, так можно раскидать любое
количество записей на любое количество
узлов. Этот шаг называется «Map».
Финальный
результат получается складыванием
четырех значений, полученных с четырех
вычислительных узлов. И этот шаг
называется «Reduce». Просто, не правда ли.
Очень многие
алгоритмы Machine Learning сводятся к вычислению
сумм по набору данных — датасету. Если
датасет огромен, вычисление сумм можно
параллелить в технике Map-Reduce.
Кстати, используя
многоядерные процессоры, можно получать
выгоду от Map-reduce даже на одной машине.
Вот, собственно,
и все, что нам рассказал профессор о Big
Data применительно к Machine Learning.
original post http://vasnake.blogspot.com/2014/08/large-scale-machine-learning-example.html
Комментариев нет:
Отправить комментарий