Машинное обучение. Большие данные. Нейронные сети

В статье машинное обучение рассматривается с точки зрения того, что машинное обучение каждый день занимает все большее место в нашей жизни благодаря широкому спектру его применений. Начиная с анализа пробок и заканчивая самостоятельным вождением автомобилей, все больше и больше видов деятельности переходят на самообучающиеся машины.

Аннотация статьи
нейронные сети
Big Data
регрессия
кластеризация
машинное обучение
искусственный интеллект
большие данные
Ключевые слова

Машинное обучение считается отраслью искусственного интеллекта, основная идея которой заключается в том, что компьютер не просто использует заранее написанный алгоритм, но и учится решать проблемы.

Каждой рабочей технологии машинного обучения может быть назначен один из трех уровней доступности. Первый уровень – это когда он доступен только для разных технологических гигантов уровня Google или IBM. Второй этап, когда студент с определенными знаниями может использовать свои возможности. Третий этап, когда даже пожилые люди могут использовать его и научиться управлять им.

Машинное обучение сейчас находится на стыке второго и третьего уровней, поэтому скорость изменения мира с помощью этой технологии увеличивается с каждым днем.

Большинство видов деятельности по машинному обучению можно разделить на контролируемое обучение и обучение без учителей. Под «учителем» здесь подразумевается сама идея вмешательства человека в обработку данных. Когда мы учим с учителем, у нас есть данные, на основании которых мы должны что-то предсказать и некоторые гипотезы. Когда мы учимся без учителя, у нас есть только данные, свойства которых мы хотим найти.

Пример машинного обучения с «учителем». Имеются данные о 10 000 квартир в городе Москве, площадь каждой квартиры, количество комнат, этаж, на котором она расположена, район, наличие известна парковка, расстояние до ближайшей станции метро и т.д. Кроме того, также известна стоимость каждой квартиры. Задача машинного обучения заключается в следующем: построить модель, которая на основе этих признаков будет предсказывать стоимость квартиры. Эта задача называется регрессионной. Красные точки – доступные данные (по оси x – значение атрибута, по оси y – значение ответа), синяя линия – построенная модель.

Рис. Построенная модель

Классы задач машинного обучения:

– Задача регрессии: прогнозировать материальный отклик по различным критериям. Другими словами, ответом может быть 1, 5, 23, 575 или любое другое действительное число, которое, например, может представлять стоимость квартиры. Примеры: прогнозирование стоимости акций в течение шести месяцев, прогнозирование прибыли магазина в следующем месяце, прогнозирование качества вина в слепом тесте.

– Задача классификации: предсказать категоричный ответ на основе различных характеристик. Другими словами, существует ограниченное количество ответов на эту проблему, например, если вы определяете, есть ли у пациента заболевание или письмо является спамом. Примеры: распознавание почерка, определение присутствия человека или кошки на картинке.

– Задача кластеризации: разделение данных на похожие категории. Примеры: деление клиентов оператора сотовой связи по платежеспособности, деление космических объектов на похожие объекты (галактики, планеты, звезды и т.д.).

– Задача уменьшения размерности: научиться описывать наши данные не N знаками, а меньшим числом (обычно 2-3 для последующей визуализации). В качестве примера, помимо необходимости визуализации, можно привести сжатие данных.

– Задача выявления аномалий: на основе признаков научиться различать аномалии от «неаномалий». Кажется, что эта задача ничем не отличается от проблемы классификации. Но особенность обнаружения аномалий заключается в том, что у нас либо очень мало, либо нет примеров аномалий для обучения модели, поэтому мы не можем решить такую проблему, как проблема классификации. Пример: выявление мошеннических операций с банковской картой.

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

Нейронная сеть (или искусственная нейронная сеть) – это сеть нейронов, в которой каждый нейрон представляет собой математическую модель реального нейрона. Нейронные сети стали очень популярными в 1980-х и начале 1990-х, но в конце 1990-х их популярность резко упала. Однако в последнее время это одна из передовых технологий, используемых в машинном обучении, применяемая в огромном количестве приложений. Причина возврата к популярности проста: вычислительная мощность компьютеров возросла.

Используя нейронные сети, можно решить хотя бы проблемы регрессии и классификации и построить чрезвычайно сложные модели. Не вдаваясь в математические детали, можно сказать, что Андрей Николаевич Колмогоров в середине прошлого века доказал, что любая поверхность может быть аппроксимирована с любой точностью с помощью нейронной сети.

Фактически, нейрон в искусственной нейронной сети является математической функцией (например, сигмоидальной функцией), которая получает входное значение и на выходе получается значение, полученное с использованием той же самой математической функции.

Однако в нейронных сетях нет ничего волшебного и таинственного, и в большинстве случаев нет причин беспокоиться о сценарии фильма «Терминатор». Предположим, ученые обучили нейронную сеть распознавать рукописные числа. Как работает это приложение и почему не о чем беспокоиться?

Предположим, мы работаем с изображениями размером 20x20 пикселей, где каждый пиксель представлен в градациях серого (всего 256 возможных значений). В ответ мы имеем одно из чисел: от 0 до 9. Структура нейронной сети, будет следующей: в первом слое будет 400 нейронов, где значение каждого нейрона будет равно интенсивности соответствующего пикселя.

Ребра нейронной сети будут соответствовать определенным числам. Кроме того, значение в нейроне будет рассматриваться как следующая сумма: значение нейрона предыдущего слоя умноженная на значение ребра, соединяющего нейроны. Затем из этой суммы берется определенная функция (например, сигмоидальная функция).

В конечном итоге задача тренировки нейронной сети заключается в том, чтобы подобрать такие значения в ребрах, чтобы, отдавая первому слою нейронной сети интенсивности пикселей, на последнем слое мы получали вероятности того, что на изображении нарисована какая-то цифра.

Говоря другими словами, в этом случае нейронная сеть представляет собой вычисление математической функции, аргументами которой являются другие математические функции, которые зависят от других математических функций и так далее. Конечно, при таком расчете математических функций, в котором корректируются некоторые аргументы, нельзя говорить о экзистенциальном риске [1].

Также в машинном обучении немалую роль играют так называемые большие данные (или Big Data).

Большие данные – это структурированные и неструктурированные данные огромных объемов и разнообразия, а также методы их обработки, которые позволяют распределено анализировать информацию.

Термин Big Data появился в 2008 году. Впервые он был использован редактором журнала Nature Клиффордом Линчем. Он говорил о взрывном росте мировой информации и отметил, что новые, более совершенные инструменты и технологии помогут доминировать над ней [2].

Большие данные – это комбинация технологий, которые могут выполнять три операции. Во-первых, обработать большие объемы данных по сравнению со «стандартными сценариями». Во-вторых, чтобы иметь возможность работать с быстро поступающими данными в очень больших количествах. Это означает, что данных не просто много, их становится все больше и больше. В-третьих, они должны иметь возможность работать параллельно со структурированными и плохо структурированными данными в различных аспектах.

Типичным примером больших наборов данных является информация из различных физических экспериментальных объектов, таких как Большой адронный коллайдер, который генерирует огромное количество данных и делает это все время. Установка постоянно выдает большие объемы данных и с их помощью параллельно решает многие проблемы.

Появление больших данных в публичном пространстве было связано с тем, что эти данные затронули практически всех людей, а не только научное сообщество, где такие задачи решались в течение длительного времени. Технологии Big Data стали достоянием общественности, когда дело дошло до очень определенного числа – количества жителей планеты.

7 миллиардов, которые собираются в социальных сетях и других проектах, объединяющих людей. YouTube, Facebook, ВКонтакте, где количество людей измеряется миллиардами, а количество операций, которые они выполняют одновременно, огромно. Поток данных в этом случае – это действия конкретного пользователя.

Например, данные с того же хостинга YouTube, которые отправляются по сети в обоих направлениях. Обработка означает не только интерпретацию, но также и способность правильно обрабатывать каждое из этих действий, то есть размещать его в нужном месте и быстро обмениваться этими данными с каждым пользователем, поскольку социальные сети не терпят ожидания.

Многое из того, что касается больших данных, подходов, которые используются для их анализа, на самом деле существует довольно давно. Например, обработка изображений с камер наблюдения, когда мы говорим не об одной картинке, а о потоке данных. Или навигация роботов. Все это существует десятки лет, просто сейчас задачи по обработке данных затронули гораздо большее количество людей и идей.

Многие разработчики привыкли работать со статическими объектами и мыслить категориями состояний. Парадигма больших данных другая. Вы должны уметь работать с непрерывным потоком данных, и это интересная задача. Это затрагивает все больше и больше областей.

В нашей жизни все больше и больше оборудования и программ начинают генерировать большое количество данных, например, «интернет вещей».

Вещи уже генерируют огромные потоки информации. Полицейская система «Поток» отправляет информацию со всех камер и позволяет находить автомобили по этим данным. Фитнес-браслеты, GPS-трекеры и другие вещи, которые обслуживают задачи человека и бизнеса, становятся все более модными [3].

Фактически, Big Data – это решение проблем и альтернатива традиционным системам управления данными.

По данным IBS, в мире было накоплено 5 эксабайт данных в 2003 году (1 ЭБ = 1 миллиард гигабайт). К 2008 году этот объем вырос до 0,18 зетабайта (1 ST = 1024 эксабайта), к 2011 году – до 1,76 зетабайта, а в 2013 году – до 4,4 зетабайта. В мае 2018 года общий объем данных превысил 6,9 зетабайта.

Ожидается, что к 2020 году человечество сформирует 40-44 зетабайт информации. Согласно отчету, The Data Age 2025, созданному аналитиками IDC, к 2025 году он вырастет в десять раз. В отчете отмечается, что большая часть данных создается самими компаниями, а не обычными потребителями.

Аналитики исследования считают, что данные и информация станут жизненно-важным активом в современной жизни людей, а безопасность – критически важным фундаментом. Также авторы работы утверждают, что технологии и наука изменят экономический ландшафт, а обычный среднестатистический пользователь будет взаимодействовать с подключёнными устройствами около 4800 раз в день [4].

Текст статьи
  1. Паньшин И. Машинное обучение для чайников. 2017. № 1. URL: https://newtonew.com/tech/machine-learning-novice (дата обращения: 18.12.2019)
  2. Семенов А.  Технологии Big Data: как использовать большие данные в маркетинге. 2019. № 2. URL: https://www.uplab.ru/blog/big-data-technologies (дата обращения: 16.12.2019)
  3. Протасов С. Большие данные в IT. 2015. № 3. URL: https://postnauka.ru/specials/big-data  (дата обращения: 18.12.2019)
  4. Беркана А. Что такое Big data: собрали всё самое важное о больших данных. 2017. № 4. URL: https://rb.ru/howto/chto-takoe-big-data (дата обращения: 17.12.2019)
Список литературы