Методы обработки больших данных

Приведены причины появления больших данных, методы их обработки, а также практический пример применения методов обработки больших данных с использованием распределенной вычислительной системы....

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2018
Автор: Тупало, Я.О.
Формат: Стаття
Мова:Russian
Опубліковано: Інститут кібернетики ім. В.М. Глушкова НАН України 2018
Назва видання:Компьютерная математика
Теми:
Онлайн доступ:http://dspace.nbuv.gov.ua/handle/123456789/161888
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Методы обработки больших данных / Я.О. Тупало // Компьютерная математика. — 2018. — № 2. — С. 80-88. — Бібліогр.: 6 назв. — рос.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id irk-123456789-161888
record_format dspace
spelling irk-123456789-1618882019-12-26T01:26:15Z Методы обработки больших данных Тупало, Я.О. Системный анализ Приведены причины появления больших данных, методы их обработки, а также практический пример применения методов обработки больших данных с использованием распределенной вычислительной системы. Наведено причини виникнення великих даних та методи їх обробки, а також практичний приклад застосування методів обробки великих даних з використанням розподіленої обчислювальної системи. The origin of the big data problem, the methods for data processing, and practical example of applying the methods of big data processing with the use of a distributed computing system are given. 2018 Article Методы обработки больших данных / Я.О. Тупало // Компьютерная математика. — 2018. — № 2. — С. 80-88. — Бібліогр.: 6 назв. — рос. 2616-938Х http://dspace.nbuv.gov.ua/handle/123456789/161888 004.3 ru Компьютерная математика Інститут кібернетики ім. В.М. Глушкова НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Russian
topic Системный анализ
Системный анализ
spellingShingle Системный анализ
Системный анализ
Тупало, Я.О.
Методы обработки больших данных
Компьютерная математика
description Приведены причины появления больших данных, методы их обработки, а также практический пример применения методов обработки больших данных с использованием распределенной вычислительной системы.
format Article
author Тупало, Я.О.
author_facet Тупало, Я.О.
author_sort Тупало, Я.О.
title Методы обработки больших данных
title_short Методы обработки больших данных
title_full Методы обработки больших данных
title_fullStr Методы обработки больших данных
title_full_unstemmed Методы обработки больших данных
title_sort методы обработки больших данных
publisher Інститут кібернетики ім. В.М. Глушкова НАН України
publishDate 2018
topic_facet Системный анализ
url http://dspace.nbuv.gov.ua/handle/123456789/161888
citation_txt Методы обработки больших данных / Я.О. Тупало // Компьютерная математика. — 2018. — № 2. — С. 80-88. — Бібліогр.: 6 назв. — рос.
series Компьютерная математика
work_keys_str_mv AT tupaloâo metodyobrabotkibolʹšihdannyh
first_indexed 2025-07-14T14:27:49Z
last_indexed 2025-07-14T14:27:49Z
_version_ 1837632885164605440
fulltext 80 ISSN 2616-938Х. Компьютерная математика. 2018, № 2 Приведены причины появления больших данных, методы их об- работки, а также практический пример применения методов об- работки больших данных с ис- пользованием распределенной вы- числительной системы.  Я.О. Тупало, 2018 УДК 004.3 Я.О. ТУПАЛО МЕТОДЫ ОБРАБОТКИ БОЛЬШИХ ДАННЫХ Введение. Согласно данным компании Cisco, к концу 2016 года по всему миру было пере- дано 1,1 зеттабайта данных. А в 2019 году объем трафика удвоится, достигнув 2 зетта- байт в год [1]. Здесь рассматриваются основ- ные концепции анализа больших данных, а также приведен пример их обработка с по- мощью методов machine learning. Большими данными обычно называют получение, обра- ботку и анализ данных, отличающихся от обычных структурированных данных в реля- ционных базах; к ним относят неструктури- рованные файлы, цифровое видео, изображе- ния, данные датчиков, log-файлы и вообще любые данные, не содержащие в записях специальных поисковых полей. Неструкту- рированные данные интересны, но из них трудно синтезировать бизнес-аналитику или сделать выводы, если они не коррелируют со структурированными данными. Появляются и новые источники больших данных, такие как машинное генерирование (например, log- файлы или данные сенсорных сетей), мобильные устройства (видео, фотографии и текстовые сообщения) и системы машина- машина, когда IoT («Интернет вещей») со- общает о состоянии для планирования обслу- живания парка автомобилей или самолетов либо для телеметрического мониторинга. Большие данные – это прежде всего объем. По оценкам IBM, в настоящее время создает- ся 2.5 квинтиллиона (2 500 000 000 000 000 000) байт данных ежедневно [2]. Во-вторых, это скорость передачи данных, растущая с ростом пропускной способности сети; в настоящее время это, как правило, гигабит- ные, (а уже не мегабитные) скорости МЕТОДЫ ОБРАБОТКИ БОЛЬШИХ ДАННЫХ ISSN 2616-938Х. Компьютерная математика. 2018, № 2 81 (GigE, 10G, 40G, 100G). В-третьих, это разнообразие типов неструктурирован- ных данных, таких как цифровые видеопотоки, данные сенсорных сетей и log- файлы. В итоге, это достоверность данных – насколько при принятии решений можно доверять данным, собранным в таких больших объемах на таких высоких скоростях. Трудно быть уверенным, что данные не подделаны, не повреждены и поступают из ожидаемого источника, – если это, например, данные от тысяч ви- деокамер, ежечасно снимающих многие тысячи видеокадров. Кратко охаракте- ризуем некоторые ключевые аспекты больших данных, приложений и систем. Возможно, лучший способ понять большие данные проанализировав их исто- рию, как в журнале Forbes [3]. Прошло много времени с момента выхода статьи, за этот период рост больших данных ускорился и на сегодня составляет более 2.5 эксабайтов в день. Интересно, что большинство этих данных технически не- возможно проанализировать силами человека (для этого каждый из 7 миллиар- дов жителей планеты должен был бы просматривать более 300 МБ информации ежедневно). С учетом этой проблемы единственный логичный способ использо- вать такой объем данных – это системы машина-машина или интеллектуальные запросы к большим данным. Кроме того, если данные хранятся длительное вре- мя, как узнать, не были ли они повреждены? Можно, конечно, хранить дайдже- сты данных (например, MD5 – одну из форм контрольной суммы) и использо- вать избыточный массив независимых дисков (RAID-зеркалирование, XOR- четность или стирающие коды для обнаружения и восстановления поврежден- ных данных), но существует возможность не отслеживаемого повреждения дан- ных [4]. Организация Internet Archive (Архив Интернета), выполняющая долго- срочное хранение данных, исследовала эту проблему. В целом достоверность больших данных – это проблема, но стирающие коды и методы создания расши- ренных дайджестов данных обещают ее решение. Традиционные методы, такие как XOR-четность или простое зеркалирование (которые обеспечивают только защиту от потери данных при сбоях устройств хранения и не работают в сцена- риях повреждений, вызванных ошибками в программном обеспечении, ошибка- ми оператора датацентра или выходом носителя из строя с течением времени), в настоящее время заменяются массивами RAID-6 и усовершенствованными ко- дами стирания. Концепция долговечности больших данных – важная проблема. При таком количестве данных идея проверки их достоверности человеком про- сто нереализуема, а отсутствующие данные могут остаться необнаруженными, пока к ним не будет выполнен запрос в далеком будущем. Одним из популярных методов обработки больших данных на сегодняшний день являются методы машинного обучения (Machine Learning). Машинное обучение имеет давнюю историю, уходя корнями в фундаментальную матема- тику и статистику. В наши дни машинное обучение использует аналитические модели и алгоритмы, которые непрерывно совершенствуются, обучаясь на осно- ве данных, благодаря чему компьютеры могут улавливать скрытый смысл, не будучи запрограммированными на то, где его следует искать. Это значит, что ученые и специалисты по анализу данных могут научить компьютеры решать Я.О. ТУПАЛО ISSN 2616-938Х. Компьютерная математика. 2018, № 282 проблемы, не задавая правила для каждого нового набора данных. Используя алгоритмы, которые обучаются путем изучения сотен и тысяч образцов данных, компьютеры могут решать аналогичную проблему в новой ситуации, составляя прогноз исходя из накопленного опыта. И они делают это с точностью, которая уже сравнима с интеллектом человека. Использование машинного обучения ста- ло массовой тенденцией, способствуя получению конкурентных преимуществ в самых различных отраслях: от розничной торговли до охраны правопорядка, от курортных комплексов до кабельного телевидения, от спортивных команд до исследователей космоса. Machine Learning и Традиционная Статистика: суть и подходы. «Machine Learning (МL)» и Традиционная Статистика (ТС) различаются как по своей сути, так и в подходах к данным. Из Википедии: Машинное обучение (англ. Machine Learning) – обширный подраздел искусственного интеллекта, ма- тематическая дисциплина, использующая разделы математической статистики, численных методов оптимизации, теории вероятностей, дискретного анализа, и извлекающая знания из данных. Когда говориться об «аналитике», то в это по- нятие включается как data mining/machine learning, так и традиционные стати- стические методы. Но не стоит забывать о том, что они различаются как в сфе- рах применения, так и в общей философии. МL – подвид Искусственного Ин- теллекта (ИИ). Основная задача ИИ – понимание и воспроизведение мыслитель- ного процесса человека и его воспроизведение в нечеловеческой (машинной) среде. МL нацелено на автоматическое обнаружение закономерностей в данных с помощью вычислительных алгоритмов и их дальнейшая структуризация в новые, но схожие данные. То есть основная задача – изучение и создание сис- тем, способных делать выводы из данных с помощью обучения на примерах. МL – это другие, чем «data mining» или «предсказательная аналитика», но при этом является неотъемлемой частью их обоих. Основные понятия ML начали форму- лироваться в 1950-х годах, а в конце 80-х – начале 90-х появлялись различные успешные стартапы по этой теме с самыми различными способами применений, как, например, реально-временное отслеживание случаев мошенничества, рас- познавание символов и рекомендательные сервисы (первое поколение систем МL). МL также тесно связано с «Теорией Распознавания Образов» (ТРО). Но несмотря на это, они являются двумя сторонами одной и той же отрасли, чья задача – интеллектуальный анализ данных. Исторически, методы и подходы практикующих МL сильно зависели от вычислительной мощности компьютеров, на сегодняшний день эта проблема не так актуальна, сейчас впол- не естественно обрабатывать терабайтные массивы данных в реальном времени. С другой стороны, методы ТС разрабатывались в условиях, в которых не было возможности полагаться на компьютеры. Как результат, ТС в основном опери- рует малыми выборками и большими допущениями в вопросе данных и их рас- пространения. МL, как правило, старается уменьшить число изначальных допу- щений и более свободно в использовании различных методов и средств для решения поставленной задачи, часто прибегая к эвристике. Предпочитаемый МЕТОДЫ ОБРАБОТКИ БОЛЬШИХ ДАННЫХ ISSN 2616-938Х. Компьютерная математика. 2018, № 2 83 метод обучения в МL – индуктивный. Другой спектр инструментов МL – анали- тическое (или дедуктивное) обучение, где данных либо мало, либо предпочти- тельна работа с их малыми наборами. В реальном мире, МL обычно чередует использование обоих методов [5]. Традиционная статистика крайне консерва- тивна в своих подходах к задаче и часто делает слишком большие допущения, особенно в вопросе распределения данных. В табл. 1 приводится разница в под- ходах и идеологии этих двух направлений. ТАБЛИЦА 1 Машинное обучение (ML) Традиционная статистика (ТС) Задача: «изучение» всех типов данных Задача: анализ и классификация данных Никаких обязательных допущений касательно задачи и распределения данных Большие допущения относительно вопроса и распределения данных Более свободно в методах и подходах Консервативна в методах и подходах Обобщение достигается эмпириче- ски, с помощью подтверждения предположений на практике в до- полнении к подготовленным тестам Обобщение преследуется на основе заранее подготовленных тестов Использует эвристические подходы для поиска лучшего решения Большие допущения о данных и решаемом вопросе, поиск опти- мального решения ведется в задан- ных рамках Предпочтительно использование алгоритмов, способных к обработке большого количества функций Часто требует независимых функций, предпочтительно использование меньшого количества входных функций Уменьшение анализируемых данных не нужно («чем больше данных, тем лучше») Активно продвигает анализ меньших объемов данных (выборки, уменьше- ние входов) Решает более сложные проблемы обучения, восприятия, воспроизведения значений В основном сосредоточены на традиционных методах анализа Обучение может быть достигнуто путем написания программы, учитываю- щей все возможные комбинации данных. Этот процесс будет крайне ресурсоем- ким и невозможным в выполнении применительно к реальным рабочим ситуа- циям. Такая программа никогда не будет хорошей, как тщательно написанный и выверенный алгоритм обучения. Подобные алгоритмы автоматически учатся Я.О. ТУПАЛО ISSN 2616-938Х. Компьютерная математика. 2018, № 284 на примерах (как и люди), а затем обобщают данные на основе того, что они уз- нали (индуктивное обучение). Способность к обобщению и категоризации – ключевой показатель оценки производительности обучающейся платформы. Самые популярные алгоритмы обучения можно разделить на контролируемые и неконтролируемые, а затем каждую категорию разделить по возможностям и функциям [5]. Контролируемое обучение включает: – классификация: определение к какой категории принадлежит то или иное понятие (чаще всего используется двоичная классификация), например, плате- жеспособный ли покупатель; – регрессия: прогнозирование конкретного показателя на протяжении вы- бранного промежутка времени, например, сколько средств со своей кредитной карты покупатель потратит в следующем месяце при учете всей прочей доступ- ной информации; – прогнозирование: оценка макропеременных (суммарных) как, например, месячные продажи конкретного продукта; – определение важности показателя: распознает наиболее значимые в расче- те прочей классификации или регрессии показатели. Неконтролируемое обучение включает: – кластеризация: поиск уже существующих групп данных. Ассоциативные модели: «анализ потребительской корзины» (например, комбинации продуктов, которые часто приобретают вместе). Использование методов Машинное обучение на практике. В данном раз- деле автор приводит пример как можно обрабатывать большие данные с помо- щью Машиного обучения. Данная система разрабатывалась с использованием математической библиотеки FAAN и тестировалась в распределенной вычисли- тельной системе Института кибернетики имени В.М. Глушкова НАН Украины [6]. Для достижения параллельной обработки данных был использован MPI. Описание сети: задачу, которую будет решать система – исключение ИЛИ из области булевой алгебры. В реальном мире система Машиного обучения опе- рирует огромными данными, данный пример логического исключения ИЛИ к выключателю приведен автором лишь для наглядности, но данный пример можно без труда масштабировать для решения задач связанных с большими данными. Как правило, выключатель имеет 2 режима: ВКЛ (1) и ВЫКЛ (– 1). Поэтому теоретически возможны четыре типа ситуаций: ВКЛ и ВЫКЛ. 1 и –1 = 1 – 1 и 1 = 1 1 и 1 = – 1 – 1 и – 1 = – 1 В первом случае выключатель включен, а результат операции равен 1. Во втором случае выключатель выключен, а результат операции так же равен 1. МЕТОДЫ ОБРАБОТКИ БОЛЬШИХ ДАННЫХ ISSN 2616-938Х. Компьютерная математика. 2018, № 2 85 А теперь, обратите внимание, что функции ВКЛ и ВЫКЛ включены одновре- менно, что в реальности невозможно, то есть результат операции имеет код рав- ный 1. И в четвертом случае функции ВКЛ и ВЫКЛ выключаются одновремен- но, такое состояние невозможно, поэтому 1. Как правило, для решения такой задачи нет необходимости создавать ней- ронную сеть. Автор делает это исключительно в демонстративных целях. Наша нейронная сетка как показано на рисунке, будет иметь 3 уровня. Входной уро- вень состоит из 2 нейронов. На каждом из них будем подавать номер (1 или – 1). Скрытый уровень состоит из трех нейронов. Последний уровень-выход. В дан- ном уровне всего 1 нейрон. Он будет сообщать о возможности той или иной комбинации (1 или – 1). Нейроны входного слоя, нейроны скрытого слоя, ней- роны выходящего слоя. РИСУНОК Приступая к работе: FANN обычно работает в двух различных режимах, режим обучения и режим выполнения. Хотя можно совместить оба режима в одной программе, рекомендуется использовать различные программы. Есть не- сколько причин, почему появилась идея написать отдельно две программы, ко- торые отвечают за подготовку и выполнение отдельно, но наиболее очевидным является тот факт, что типичная система FANN готовится только один раз, при этом выполняется многократно. Я.О. ТУПАЛО ISSN 2616-938Х. Компьютерная математика. 2018, № 286 Обучение: далее приводится простая программа, которая готовит FANN с набором данных, а затем сохраняет их в файл. #include "fann.h" int main() { const unsigned int num_input = 2; const unsigned int num_output = 1; const unsigned int num_layers = 3; const unsigned int num_neurons_hidden = 3; const float desired_error = (const float) 0.001; const unsigned int max_epochs = 500000; const unsigned int epochs_between_reports = 1000; struct fann *ann = fann_create_standard(num_layers, num_input, num_neurons_hidden, num_output); fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC); fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC); fann_train_on_file(ann, "xor.data", max_epochs, epochs_between_reports, desired_error); fann_save(ann, "xor_float.net"); fann_destroy(ann); return 0; } Файл xor.data, использующий для обучения xor функции: 4 2 1 – 1 – 1 – 1 – 1 1 1 1 – 1 1 1 1 – 1 Первая строка состоит из трех цифр: первое число – пары обучения в файле, второе – число входов, а третье – число выходов. Другая часть файла есть не что иное как данные обучения, состоящие из одной линии с входами и выходами. Результат выполнения обучения приведем в табл. 2. ТАБЛИЦА 2 Max epochs 500000 Desired error 0.0010000000 Epochs 1 Current error 0.2500359416 Bit fail 4 Epochs 27 Current error 0.0009003473 Bit fail 0 МЕТОДЫ ОБРАБОТКИ БОЛЬШИХ ДАННЫХ ISSN 2616-938Х. Компьютерная математика. 2018, № 2 87 Как видно в моем случае, сеть научилась отвечать с погрешностью 0.01 за 27 циклов. Current error – сообщает нам о состоянии обучения нашей сети, если погрешность не меняется, то нужно совершенствовать нейронную сеть. Bit fail – сообщает о том, что после 27 цикла сеть перестала делать ошибки в выборке. Выполнение: в следующем примере показана простая программа, выпол- няющая один проход. #include #include "floatfann.h" int main() { fann_type *calc_out; fann_type input[2]; struct fann *ann = fann_create_from_file("xor_float.net"); input[0] = –1; input[1] = 1; calc_out = fann_run(ann, input); printf("xor test (%f,%f) –> %f\n", input[0], input[1], calc_out[0]); fann_destroy(ann); return 0; } Результат программы выполнения приведем в табл. 3. ТАБЛИЦА 3 Xor test (1.000000, 1.000000)  0.920417 1 В итоге наша нейронная сеть выдала нам результат, который показывает, что при входных параметрах 1 и 1 с вероятностью 92 % будет 1. В этом малень- ком демонстрационном примере автор хотел сказать, что с развитием вычисли- тельной техники математики могут создавать более эффективные алгоритмы машинного обучения и внедрять их на практике. Выводы. В результате вычислительного эксперимента показано преимуще- ства распараллеливания обработки больших данных на кластере СКИТ-3. Я.О. Тупало МЕТОДИ ОБРОБКИ ВЕЛИКИХ ДАНИХ Наведено причини виникнення великих даних та методи їх обробки, а також практичний приклад застосування методів обробки великих даних з використанням розподіленої обчислювальної системи. Я.О. ТУПАЛО ISSN 2616-938Х. Компьютерная математика. 2018, № 288 Y.O. Tupalo THE METHODS FOR BIG DATA PROCESSING The origin of the big data problem, the methods for data processing, and practical example of applying the methods of big data processing with the use of a distributed computing system are given. Список литературы 1. The Zettabyte Era: Trends and Analysis (https://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index- vni/vni-hyperconnectivity-wp.html) 2. Книга IBM о больших данных (https://www.ibm.com/analytics/) 3. Статья краткая история больших данных (Джил Пресс (Gil Press), Forbes, май 2013 г.) (https://www.forbes.com/sites/gilpress/2013/05/09/a-very-short-history-of-big- data/#caa8ee465a18) 4. Революционные методы решения проблем долговечности больших данных (https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/big-data- amplidata-storage-paper.pdf) 5. Machine Learning Algorithms: A reference guide to popular algorithms for data science and machine learning by Giuseppe Bonaccorso. 6. Головинский А.Л., Маленко А.Л., Сергиенко И.В., Тульчинский В.Г. Энергоэффектив- ный суперкомпьютер СКИТ-4. Вестн. НАН Украины. 2013. № 2. С. 50 – 59. Получено 06.11.2018 Об авторе: Тупало Ярослав Олегович, научный сотрудник Института кибернетики имени В.М. Глушкова НАН Украины.