Изменения

Перейти к: навигация, поиск

Обучение на больших данных

3705 байт добавлено, 19:30, 4 сентября 2022
м
rollbackEdits.php mass rollback
{{В разработке}}
 
'''Обучение на больших данных''' {{---}} раздел машинного обучения, специализирующийся на построении моделей, обрабатывающих большие объёмы данных. Также встречаются термины "big data" или "большие данные".
=== Порядок работы с большими данными ===
Чтобы эффективно обрабатывать и анализировать большие данные, существуют такие инструменты как "аналитические модели"<ref name="analiticsmodels">[https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C Математические модели в форме аналитических моделей]</ref>. Их решения ищутся в замкнутом виде, в виде функциональных зависимостей. Такие модели способны строить гипотезы на основе больших данных, искать в них зависимости и закономерности {{---}} всю самую полезную для большинства бизнес-задач информацию. Кроме того, важна хорошая [[Интерпретируемые модели|интерпретируемость]] построенной модели, так как это позволяет упростить её анализ без повторного её построения, что в условиях больших данных при работе с большими данными крайне важно. Для этого большие данные проходят через несколько этапов:
1. [[Автоматическое машинное обучение|Чистка данных]] (англ. data cleaning) {{---}} поиск и исправление ошибок в первичном наборе информации, например, ошибки ручного ввода (опечатки) или некорректные значения с измерительных приборов из-за кратковременных сбоев;
Также стоит отметить, что в связи с большой популярностью "больших данных", эта сфера очень быстро развивается, постоянно появляются всё новые технологии и инструменты для работы. Для развивающегося бизнеса внедрение систем по работе с большими данными приводит к дополнительным материальным затратам. А от специалистов в этой сфере требуется быстро овладевать новыми навыками, что также может вызвать затруднения.
=== Применение машинного обучения к большим данным . Поиск в больших данных ===В условиях больших данных При работе с большими данными иногда возникает ситуация, когда пользователю нужно найти какие-то конкретные данные. Встаёт Возникает задача информационного эффективного поиска информации в больших данных. В силу большого объёма всех данных большинство известных методов поискабудут работать неэффективно. Например, '''''поиск перебором'''''<ref name="infosearchbruteforcesearch">[https://en.wikipedia.org/wiki/Brute-force_search#:~:text=In%20computer%20science%2C%20brute%2Dforce,candidate%20satisfies%20the%20problem's%20statement. Поиск перебором]</ref> (англ. ''exhaustive search'') {{---}} широко распространенный алгоритм не подходит для больших данных вследствие плохой оптимизации по времени исполнения и используемому месту. Также '''не подходят''' алгоритмы '''''поиска с ориентиром (индексирование)''''' (англ. ''beacon guided searching, BGS'') и [[Метрический классификатор и метод ближайших соседей|'''''метод "ближайших соседей"''''']] (англ. ''nearest neighbour search''). В случае первого на больших данных хранение индексов этих данных становится проблемой, так как данных слишком много, а в случае со вторым алгоритмом будут сильно мешать различные шумы и отклонения, коих в больших данных зачастую очень много. Здесь на помощь приходят [https://ru.wikipedia.org/wiki/%D0%9893%D0%BDB5%D1D0%84BD%D0%BEB5%D1%8082%D0%BCB8%D1%87%D0%B0B5%D1%8681%D0%B8BA%D0%BEB8%D0%BDB9_%D0%BDB0%D1D0%8BBB%D0%B9_B3%D0%BFBE%D0D1%BE80%D0%B8%D1%8182%D0%BA Информационный поискBC генетические алгоритмы]</ref>. В силу большого объёма всех Процедура поиска в больших данных будет неэффективно перебирать их все в поисках тогопроизводится довольно часто, что нужно. В данном случае можно применить следовательно такие алгоритмы машинного обучения, которые занимаются классификацией довольно быстро приспособятся к поиску наиболее часто используемых данных и их [[Ранжирование|ранжированием]].Поиск в размеченных Также к плюсам генетических алгоритмов можно отнести возможность кастомизации и отсортированных данных происходит значительно быстрееустойчивость к шумам, а также хорошую масштабируемость для задач с более высокой размерностью. А Всё это как раз то, что нужно в условиях случае больших данных это очень важно. Например Кроме того, любая поисковая система при любом запросе должна давать результат за одно и то же время, однако объём тех данных, которые ей приходится проанализировать огромен, поэтому эффективный поиск поиске в больших данных {{---}} очень важная задачаможет помочь [[Кластеризация|кластеризация]] этих данных. Таким образом они будут разбиты на группы "похожести", а машинное обучение сильно помогает когда данные в её решениикаждой группе обладают сходными признаками, по которым можно существенно снизить круг дальнейшего поиска, что существенно ускоряет процесс поиска.
Существует множество алгоритмов поискаС той же целью может применятся и оценка '''''важности признака при перестановке'''''<ref name="pfi">[https://docs.microsoft.com/ru-ru/dotnet/machine-learning/how-to-guides/explain-machine-learning-model-permutation-feature-importance-ml-net#train-the-model Permutation Feature Importance]</ref> (англ. ''permutation feature importance, начиная от простого перебораPFI''). Этот приём позволяет выделить наиболее значимые признаки объектов. Заключается он в том, заканчивая генетическим алгоритмомчто после первоначального обучения некоторой модели происходит случайная перестановка значений признаков у объектов. Но далеко не все алгоритмы подходят для больших данных. К примеруЗа итерацию берётся некоторый признак, который есть у всех объектов, exhaustive search или поиск перебором - широко распространенный алгоритм не подходит для больших данных вследствии плохой оптимизации по времени исполнения и используемому меступроисходит случайная перестановка значений этого признака между объектами. Также При этом оставшиеся признаки не подходят алгоритмы beacon guided searching (BGS) изменяются. Далее происходит повторный запуск модели и nearest neighbour searchпроизводится расчёт отклонений её результатов от первичных. Здесь на помощь приходит Genetic AlgorithmТакая процедура выполняется для всех признаков, чтобы можно было выделить наиболее значимые. К плюсам данного алгоритма Это может существенно помочь в задаче поиска, когда можно отнести возможность кастомизации и устойчивость к шумамснизить количество рассматриваемых признаков, принимая во внимание только наиболее значимые.Например, существует некоторый набор данных, а также хорошую масштабируемость для задач с более высокой размерностьюсодержащий информацию о продаваемой недвижимости. ПравдаКаждый объект недвижимости имеет множество признаков: местоположение относительно объектов инфраструктуры, уровень благополучия данного района города, у этого метода есть и недостаткимногие другие. ТакВ этом случае при помощи приёма PFI можно рассчитать, мы можем не дойти до глобального максимума или затратить слишком много времени сближениекакие из этих признаков имеют большее влияние на цену объекта недвижимости.
== Обработка разнородных данных в рамках одной системы ==
Данная модель позволяет хранить как сырые разнородные данные, так и структурированные данные в соответствии с предопределенной схемой. Такой результат достигается наличием шаблонов объектов и шаблонов параметров объектов. Также это позволяет снизить временные затраты на доступ к данным.
 
=== Схема модели хранения разнородных данных ===
[[Файл:Schema.PNG|700px|thumb|right|Рисунок 1: Модель хранения разнородных данных<ref name="datalake_pic">[http://www.vstu.ru/upload/iblock/ed2/ed26c52e2ff99fb5b39fbaf37717a96c.pdf Модель хранения разнородных данных - схема озера данных]</ref>]]
 
=== Схема модели хранения разнородных данных ===
Рассмотрим схему модели, изображённую на рисунке 1:
* '''Parameter Object template''' {{---}} шаблон параметранекоторого объекта <tex>O</tex>. Каждый объект может иметь множество источников данных <tex>M_{ds}</tex>. Структуру объекта можно представить следующим образом: <tex>O=\langle ds_1, ds_2, хранимого в источнике данных;\dots, ds_m \rangle</tex>.
* '''Data source template''' {{---}} шаблон источника данных. Каждый источник данных может иметь множество параметров с различными типами данных <tex>M_p</tex>. Структуру источника данных можно представить следующим образом: <tex>ds=\langle p_1, p_2, \dots, p_k \rangle</tex>;
* '''Object Parameter template''' {{---}} шаблон некоторого объекта <tex>O</tex>. Каждый объект может иметь множество источников параметра, хранимого в источнике данных <tex>M_{ds}</tex>. Структуру объекта можно представить следующим образом: <tex>O=\langle ds_1, ds_2, \dots, ds_m \rangle</tex>.;
Чтобы реализовать такую модель хранения, необходимо выполнить следующие действия:
=== Применение методов машинного обучения для построения "озера" данных ===
Представленная выше модель хорошо описывает схему хранения разнородных данных путём создания некоторого шаблона, который мог бы описывать все эти данные. Построение такого шаблона может быть очень трудоёмкой задачей, так как данных много и их форматов тоже может быть много. Встаёт Возникает задача '''''метапрофилирования''''' данных. Этот процесс направлен на структуризацию разносортных данных и различных метаданных. Без этого большинство действий с данными будут попросту невозможны – будь то построение запросов для СУБД, очистка данных, их классификация и кластеризация. Кроме того, в условиях больших когда объёмы данныхслишком велики, в БД может быть огромное количество таблиц, чьи метаданные могут сильно различаться. В таких условиях получение полной информации даже по одному объекту будет практически невыполнимой задачей.
'''Мета-профайл''' (англ. ''metadata-profile'') {{- --}} особая структура данных, призванная собрать воедино различную информацию о конкретном объекте <tex>O</tex>. Сюда так же входят и различные представления этого объекта. Например, музыкальную композицию можно идентифицировать по-разному, от названия и автора до жанра и года создания:
::<tex>MP=(Name, Prop)</tex>
* <tex>Name</tex> {{---}} уникальное имя мета-профайла, <tex>Name \in Namespace</tex>, где <tex>Namespace</tex> {{---}} все возможные имена объектаобъектов;* <tex>Prop</tex> {{---}} множество атрибутов мета-профайла <tex>\{p_1, \dots, p_n\} | \forall p_i \in Prop: i=\{1, \dots, n\}</tex>. <tex>p_i=(PName_i, PType_i, P_i, PF_i)</tex>:** <tex>PName_i</tex> {{---}} уникальное имя атрибута, <tex>PName_i \in PNamespace</tex>, где <tex>PNamespace</tex> {{---}} все возможные имена атрибутов;.** <tex>PType_i</tex> {{---}} простой тип данных, <tex>PType_i \in Plaintypes</tex>, где <tex>Plaintypes</tex> {{---}} все возможные типы данных. Важно, что типы являются простыми, то есть числами, символами или строками;.
** <tex>P_i : 0 < P_i < 1</tex> {{---}} вероятность принадлежности атрибута <tex>p_i</tex> некоторому случайно отобранному представлению <tex>O</tex>.
Построение этой структуры можно произвести различными методами машинного обучения. Сюда входят [[Логистическая регрессия|логистическая регрессия]], [[Байесовская классификация|наивная байесовская классификация]], [[Глубокое обучение|глубокое обучение]]. Фактически, здесь стоит задача классификации, в которой мы должны понять, какие атрибуты относятся к описываемому объекту, а какие нет.
Предположим, что у нас имеется некоторая выборка данных из одного источника. В данной выборке для каждого объекта имеется лишь одно представление, достаточно полное для однозначной его идентификации. Также имеется выборка данных, относящихся к объектам совсем другого типа, но имеющих похожие атрибуты, её размер должен быть примерно таким же, как и у предыдущей, чтобы убедиться в том, что данные для обучения сбалансированы. Это необходимо, чтобы отметать неверные варианты при обучении. Опираясь на эти выборки, происходит обучение на остальных данных (различные источники данных), представленных в виде векторов , содержащих в себе имена различных атрибутов объекта и значения этих атрибутов. На основе вероятностей, имен, типов атрибутов принимается решение, отнести их к объекту или нет. Таким образом, шаблон объекта обрастает новыми атрибутами, по которым его можно идентифицировать.
== Работа с комплексом Apache Spark для обучения на больших данных ==
== Практическое применение Big Data ==
На сегодняшний день работа с большими данными популярна во многих рабочих сферах. Как правило, алгоритмы бизнес-приложения обрабатывают огромные потоки данных из различных источников, после чего создается предсказание следующего предполагаемого события. Программисты бизнес-приложений получают в два раза больше программистов других приложений. А программист бизнес-приложений, умеющий работать с большими данными по методологии SCRUM, получает ещё больше.
Можно выделить несколько областей, где использование больших данных набирает популярность:
* Бизнес и Маркетинг. С помощью анализа последних произведенных транзакций алгоритмы с достаточно высокой точностью могут предсказать повышение спроса на определенный товар;
* [https://databricks.com/spark/about О системе Apache Spark]
* [https://docs.microsoft.com/ru-ru/azure/hdinsight/spark/apache-spark-creating-ml-pipelines Документация от Microsoft {{---}} Создание конвейера машинного обучения Apache Spark]
* [https://www.researchgate.net/publication/322994594_A_survey_of_different_search_techniques_for_big_data A survey of different search techniques for big data] {{---}} 4th International Conference on Innovations in Information, Embedded and Communication Systems, 2017;
* [http://www.vstu.ru/upload/iblock/ed2/ed26c52e2ff99fb5b39fbaf37717a96c.pdf Методы обработки разнородных данных в проактивных системах управления транспортной инфраструктурой] {{---}} Чан Ван Фу, Волгоградский государственный технический университет, 2019г;
* [https://www.researchgate.net/profile/Michael_Gubanov/publication/346275767_WebLens_Towards_Interactive_Large-scale_Structured_Data_Profiling/links/5fc0055c299bf104cf7fd4a1/WebLens-Towards-Interactive-Large-scale-Structured-Data-Profiling.pdf Towards Interactive Large-scale Structured Data Profiling] {{---}} Rituparna Khan, Michael Gubanov {{---}} Department of Computer Science, Florida State University, 2020г.
[[Категория: Машинное обучение]]
[[Категория: Большие данные]]
1632
правки

Навигация