Машинное обучение считается отраслью искусственного интеллекта, основная идея которой заключается в том, что компьютер не просто использует заранее написанный алгоритм, но и учится решать проблемы.
Каждой рабочей технологии машинного обучения может быть назначен один из трех уровней доступности. Первый уровень – это когда он доступен только для разных технологических гигантов уровня 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].