Что такое машинное обучение? Методы, типы, задачи и примеры машинного обучения

Машинное обучение (Machine Learning) это тренировка математической модели на исторических данных для того, чтобы прогнозировать какое-то событие или явление на новых данных. То есть попытка заставить алгоритмы программ совершать действия на основе предыдущего опыта, а не только на основе имеющихся данных. Для обучения нужны исторические данные (обучающая выборка) и значение целевой переменной (то, что прогнозируем), которое соответствует заданным историческим данным. Модель наблюдает и находит зависимости между данными и целевой переменной. Эти зависимости используются моделью для нового набора данных, чтобы прогнозировать целевую переменную, которая неизвестна. Машинное обучение включает в себя целый набор методов и алгоритмов, которые могут предсказать какой-то результат по входным данным. Например, у вас есть какая-то информация по тому, сколько стоили ценные бумаги в каждый момент из какого-то длинного промежутка времени, алгоритмы машинного обучения могут предсказать, сколько эти бумаги будут стоить в будущем. Алгоритмов машинного обучение большое множество: одни эффективны для решения одного типа задач задач, вторые — для другого. Важно не путать машинное обучение, нейросети и искусственный интеллект, это принципиально разные вещи. Обучить искусственный интеллект можно не только методами машинного обучения, а кроме нейросетевых алгоритмов есть ещё и классическое обучение, и обучение с подкреплением. Говоря в общем, машинное обучение — это обучение компьютерной программы или алгоритма постепенному улучшению исполнения поставленной задачи. Машинное обучение обозначает множество математических, статистических и вычислительных методов для разработки алгоритмов, способных решить задачу не прямым способом, а на основе поиска закономерностей в разнообразных входных данных. Решение вычисляется не по четкой формуле, а по установленной зависимости результатов от конкретного набора признаков и их значений. Например, если каждый день в течении недели земля покрыта снегом и температура воздуха существенно ниже нуля, то вероятнее всего, наступила зима. Поэтому машинное обучение применяется для диагностики, прогнозирования, распознавания и принятия решений в различных прикладных сферах: от медицины до банковской деятельности. Машинное обучение — не только математическая, но и практическая, инженерная дисциплина. Чистая теория, как правило, не приводит сразу к методам и алгоритмам, применимым на практике. Чтобы заставить их хорошо работать, приходится изобретать дополнительные эвристики, компенсирующие несоответствие сделанных в теории предположений условиям реальных задач. Практически ни одно исследование в машинном обучении не обходится без эксперимента на модельных или реальных данных, подтверждающего практическую работоспособность метода. Машинное обучение базируется на идее о том, что аналитические системы могут учиться выявлять закономерности и принимать решения с минимальным участием человека. В машинном обучении выделяют четыре ключевые задачи:Каким бывает машинное обучение? Оно разделяется на три основных вида:Рассмотрим подобрее каждый из способов и их принципиальные отличия. Для удобства мы рассмотрим этот метод на условном примере анализа склонности к определенным предметам – в программу будут вноситься данные об учениках и о том, каких результатов они добиваются. Учителем выступает человек, который вбивает в компьютер данные. Допустим, он внес в базу следующую таблицу:Исходя из этих данных, программа может построить причинно-следственные связи и помочь учащимся с профориентацией. Например, она может предположить, что Мария может поступить на филологический факультет потому, что получила высший балл по литературе и имеет гуманитарный склад ума. Олег со склонностью к техническим наукам и хорошими результатами по геометрии может смотреть в сторону профессии инженера-проектировщика. То есть учитель дает компьютеру dataset: вводную информацию (пол, возраст, IQ, склад ума, класс), а затем сразу же дает ему данные о результатах учебы, задавая вопрос «вот данные, они влияют на будущую профессию, как думаешь, почему?». И чем больше будет вводных, тем точнее будет анализ. Так, например, программы учат распознавать объекты на фотографиях – программа просматривает миллионы изображений с описанием того, что на них изображено (дерево или облако). Она находит общие черты и уже сама учится давать описания изображениям. Учитель показывает изображение без описания, а программа спрашивает «это дерево?». Если человек отвечает утвердительно, программа понимает, что сделала правильные выводы. Хороший пример такой системы – облачный сервис для встраивания в приложения машинного зрения Vision на платформе Mail. Ru Cloud Solutions. Систему распознавания объектов можно использовать для обеспечения работы беспилотных автомобилей. Для этого собираются данные с датчиков беспилотника и передаются пользователям, которые, к примеру, отмечают на снимках автомобили. В начале статьи был ролик о том, как ИИ научился ходить. Эта программа получила задание от разработчика – добраться до точки Б. Но она не знала, как это сделать – ей даже не показали, как выглядит ходьба, но это не помешало ИИ выполнить задачу. Поэтому обучение на играх – это один из самых эффективных способов машинного обучения. Вот более простой пример – программа получает данные о том, как далеко от нее находятся какие-то объекты, и может выбрать, как лучше перемещаться в игре «Змейка», чтобы получить больше очков:Возвращаясь к примеру с профориентацией, можно сказать, что программа получает данные об учениках и их успеваемости, но не знает, что между ними есть связь. Обработав большой объем информации, она замечает, что данные влияют друг на друга, и делает какие-то выводы. Например, что склад ума важнее IQ, а возраст важнее пола и так далее. Такой подход изучается для выполнения тех задач, где присутствует неочевидное решение. Например, в том же маркетинге. ИИ не понимает, что предлагать похожий товар человеку, который в нем не нуждается, нелогично, если это приносит деньги. Также нейросети могут обучаться не самостоятельно, а в паре. Так работает генеративно-состязательная сеть (GAN). Она состоит из сетей G и D – первая на основе реальных изображений генерирует образцы, а вторая пытается отличить подлинные образцы от неправильных. Технология используется для того, чтобы создавать фотографии, неотличимые от реальных, а также восстанавливать поврежденные или нечеткие изображения. Одна из компаний, которая использует GAN, –Facebook. Глубокое обучение может быть как с учителем, так и без, но оно подразумевает под собой анализ Big Data – настолько большого массива информации, что одного компьютера будет недостаточно. Поэтому Deep Learning использует для работы нейронные сети. Нейронные сети позволяют разделить одну большую задачу на несколько маленьких и делегировать их другим устройствам. Например, один процессор собирает информацию и передает ее двум другим. Те, в свою очередь, анализируют ее и передают еще четырем, которые выполняют еще какие-то задачи и передают следующим процессорам. Это можно рассмотреть на примере систем распознавания объектов:То есть получая изображение человека, нейросеть сначала видит точки, потом линии, а затем круги и треугольники, из которых складывается лицо:Deep learning может использоваться для самых неожиданных целей. Например, существует искусственный интеллект по имени Норман, его отправили изучать разделы с «жестью» на Reddit – кадры с расчлененными людьми, фотографии с мест преступлений, жуткие истории и так далее. Затем Норману предложили пройти тест Роршаха, чтобы сравнить его ответы с ответами других ИИ – где одни видели цветы, животных и зонты, Норман видел мертвых мужчин и женщин, убитых самыми разными способами. Работа с ним показывает, насколько важна информация, которую получает программа на первых этапах работы. Сейчас разработчики проводят исследования, которые помогут «вылечить» Нормана. Похожая ситуация произошла с чат-ботом Тау от Microsoft, который общался с людьми в Twitter. Всего за сутки он стал публиковать нацистские, женоненавистнические и другие оскорбительные высказывания. Позже компания заблокировала его. Сегодня чаще всего для создания программ машинного обучения используются языки R, Python, Scala и Julia. Они поддерживаются многими интегрированными средами разработки, в частности, R-Studio, R-Brain, Visual Studio, Eclipse, PyCharm, Spyder, IntelliJ IDEA, Jupyter Notebooks, Juno и др. Нейронные сетиНейронные сети имитируют структуру головного мозга: каждый искусственный нейрон соединяется с несколькими другими нейронами. Нейросети имеют многослойную структуру: нейроны на одном слое передают данные нескольким нейронам на следующем и т. д. В конечном счете данные достигают выходного слоя, где сеть выдает предположение о том, как решить задачу, классифицировать объект и т. п. Нейросети применяются в целом ряде отраслей. В здравоохранении их используют при анализе медицинских снимков с целью ускорения диагностических процедур и поиска лекарств. В телекоммуникационной отрасли и медиаиндустрии нейросети можно применять для машинного перевода, распознавания мошенничеств и предоставления услуг виртуальных ассистентов. В финансовой отрасли их используют для распознавания мошенничеств, управления портфелями и анализа риска. В розничной торговле — для избавления от очередей в кассу и для персонализации обслуживания покупателей. Дерево решенийАлгоритм дерева решений классифицирует объекты, отвечая на «вопросы» об их атрибутах, расположенные в узловых точках. В зависимости от ответа выбирается одна из ветвей, и так до тех пор, пока не будет достигнут «лист» — окончательный ответ. Среди применений дерева решений — платформы управления знаниями для клиентского обслуживания, прогнозного назначения цен и планирования выпуска продукции. В страховой компании дерево решений поможет выяснить, какие виды страховых продуктов и премий лучше задействовать с учетом возможного риска. Используя данные о местонахождении и сведения о страховых случаях с учетом погодных условий, система может определять категории риска на основании поданных требований и затраченных сумм. Затем, используя модели, система будет оценивать новые заявления о страховой защите, классифицируя их по категории риска и возможному финансовому ущербу. «Случайный лес»Чтобы одиночное дерево решений давало точные результаты, его нужно обучать, алгоритм же случайного леса (random forest) использует «комитет» случайным образом созданных решающих деревьев с разными наборами атрибутов и дает возможность им проголосовать, чтобы выбрать самый популярный класс. Случайный лес — универсальный, быстро обучаемый механизм для обнаружения связей внутри набора данных. В пример можно привести нежелательные массовые рассылки, создающие проблемы не только пользователям, но и провайдерам Интернета, которым из-за спама приходится иметь дело с повышенной нагрузкой на серверы. Для борьбы с проблемой были разработаны автоматизированные методы фильтрации спама, которые с помощью ансамбля решающих деревьев быстро и эффективно определяют нежелательные письма. Среди других применений — диагностика заболеваний путем анализа медицинской карты пациента, распознавание банковских мошенничеств, прогнозирование числа звонков в колл-центрах и прогнозирование вероятности прибыли и убытка при покупке определенных акций. КластеризацияКластеризация — это группирование элементов данных, имеющих сходные характеристики, с помощью статистических алгоритмов. Это метод обучения без учителя, который можно использовать для решения задач классификации. Примеры: сегментирование покупательской аудитории в зависимости от характеристик для уточнения адресации маркетинговых кампаний; рекомендации новостей конкретным читателям; помощь в работе правоохранительным органам. Кластеризация также действенна, когда в сложных наборах данных нужно обнаружить группы, которые трудно заметить без специальных средств. Примеры — от группирования похожих документов в базе данных до обнаружения по криминальным новостям территорий с повышенным уровнем преступности. Поиск ассоциативных правилПоиск ассоциативных правил — это метод обучения без учителя, позволяющий находить отношения между переменными. Используется в движках выдачи рекомендаций — именно этот метод применяется во многих интернет-магазинах для составления фразы «Вместе с этим товаром обычно покупают…». Конкретный пример — повышение продаж в магазине деликатесов. Изучив покупательское поведение путем поиска ассоциативных правил, можно предлагать специальную упаковку и наборы для праздников и других особых случаев. Ассоциативные правила позволяют выяснить, когда и при каких обстоятельствах покупатели приобретают те или иные сочетания товаров. Используя сведения о прошлых покупках и времени их совершения, можно составить программу скидок и сформировать индивидуальные предложения с расчетом на повышение продаж. Алгоритмы машинного обучения можно описать как обучение целевой функции f, которая наилучшим образом соотносит входные переменные X и выходную переменную Y: Y = f(X). Мы не знаем, что из себя представляет функция f. Ведь если бы знали, то использовали бы её напрямую, а не пытались обучить с помощью различных алгоритмов. Наиболее распространённой задачей в машинном обучении является предсказание значений Y для новых значений X. Это называется прогностическим моделированием, и наша цель — сделать как можно более точное предсказание. Представляем вашему вниманию краткий обзор топ-10 популярных алгоритмов, используемых в машинном обучении. Линейная регрессия — пожалуй, один из наиболее известных и понятных алгоритмов в статистике и машинном обучении. Прогностическое моделирование в первую очередь касается минимизации ошибки модели или, другими словами, как можно более точного прогнозирования. Мы будем заимствовать алгоритмы из разных областей, включая статистику, и использовать их в этих целях. Линейную регрессию можно представить в виде уравнения, которое описывает прямую, наиболее точно показывающую взаимосвязь между входными переменными X и выходными переменными Y. Для составления этого уравнения нужно найти определённые коэффициенты B для входных переменных. Например: Y = B0 + B1 * XЗная X, мы должны найти Y, и цель линейной регрессии заключается в поиске значений коэффициентов B0 и B1. Для оценки регрессионной модели используются различные методы вроде линейной алгебры или метода наименьших квадратов. Линейная регрессия существует уже более 200 лет, и за это время её успели тщательно изучить. Так что вот пара практических правил: уберите похожие (коррелирующие) переменные и избавьтесь от шума в данных, если это возможно. Линейная регрессия — быстрый и простой алгоритм, который хорошо подходит в качестве первого алгоритма для изучения. Логистическая регрессия — ещё один алгоритм, пришедший в машинное обучение прямиком из статистики. Её хорошо использовать для задач бинарной классификации (это задачи, в которых на выходе мы получаем один из двух классов). Логистическая регрессия похожа на линейную тем, что в ней тоже требуется найти значения коэффициентов для входных переменных. Разница заключается в том, что выходное значение преобразуется с помощью нелинейной или логистической функции. Логистическая функция выглядит как большая буква S и преобразовывает любое значение в число в пределах от 0 до 1. Это весьма полезно, так как мы можем применить правило к выходу логистической функции для привязки к 0 и 1 (например, если результат функции меньше 0. 5, то на выходе получаем 1) и предсказания класса. Благодаря тому, как обучается модель, предсказания логистической регрессии можно использовать для отображения вероятности принадлежности образца к классу 0 или 1. Это полезно в тех случаях, когда нужно иметь больше обоснований для прогнозирования. Как и в случае с линейной регрессией, логистическая регрессия выполняет свою задачу лучше, если убрать лишние и похожие переменные. Модель логистической регрессии быстро обучается и хорошо подходит для задач бинарной классификации. Логистическая регрессия используется, когда нужно отнести образец к одному из двух классов. Если классов больше, чем два, то лучше использовать алгоритм LDA (Linear discriminant analysis). Представление LDA довольно простое. Оно состоит из статистических свойств данных, рассчитанных для каждого класса. Для каждой входной переменной это включает:Предсказания производятся путём вычисления дискриминантного значения для каждого класса и выбора класса с наибольшим значением. Предполагается, что данные имеют нормальное распределение, поэтому перед началом работы рекомендуется удалить из данных аномальные значения. Это простой и эффективный алгоритм для задач классификации. Дерево решений можно представить в виде двоичного дерева, знакомого многим по алгоритмам и структурам данных. Каждый узел представляет собой входную переменную и точку разделения для этой переменной (при условии, что переменная — число). Листовые узлы — это выходная переменная, которая используется для предсказания. Предсказания производятся путём прохода по дереву к листовому узлу и вывода значения класса на этом узле. Деревья быстро обучаются и делают предсказания. Кроме того, они точны для широкого круга задач и не требуют особой подготовки данных. Наивный Байес — простой, но удивительно эффективный алгоритм. Модель состоит из двух типов вероятностей, которые рассчитываются с помощью тренировочных данных:После расчёта вероятностной модели её можно использовать для предсказания с новыми данными при помощи теоремы Байеса. Если у вас вещественные данные, то, предполагая нормальное распределение, рассчитать эти вероятности не составляет особой сложности. Наивный Байес называется наивным, потому что алгоритм предполагает, что каждая входная переменная независимая. Это сильное предположение, которое не соответствует реальным данным. Тем не менее данный алгоритм весьма эффективен для целого ряда сложных задач вроде классификации спама или распознавания рукописных цифр. К-ближайших соседей — очень простой и очень эффективный алгоритм. Модель KNN (K-nearest neighbors) представлена всем набором тренировочных данных. Довольно просто, не так ли?Предсказание для новой точки делается путём поиска K ближайших соседей в наборе данных и суммирования выходной переменной для этих K экземпляров. Вопрос лишь в том, как определить сходство между экземплярами данных. Если все признаки имеют один и тот же масштаб (например, сантиметры), то самый простой способ заключается в использовании евклидова расстояния — числа, которое можно рассчитать на основе различий с каждой входной переменной. KNN может потребовать много памяти для хранения всех данных, но зато быстро сделает предсказание. Также обучающие данные можно обновлять, чтобы предсказания оставались точными с течением времени. Идея ближайших соседей может плохо работать с многомерными данными (множество входных переменных), что негативно скажется на эффективности алгоритма при решении задачи. Это называется проклятием размерности. Иными словами, стоит использовать лишь наиболее важные для предсказания переменные. Недостаток KNN заключается в том, что нужно хранить весь тренировочный набор данных. Если KNN хорошо себя показал, то есть смысл попробовать алгоритм LVQ (Learning vector quantization), который лишён этого недостатка. LVQ представляет собой набор кодовых векторов. Они выбираются в начале случайным образом и в течение определённого количества итераций адаптируются так, чтобы наилучшим образом обобщить весь набор данных. После обучения эти вектора могут использоваться для предсказания так же, как это делается в KNN. Алгоритм ищет ближайшего соседа (наиболее подходящий кодовый вектор) путём вычисления расстояния между каждым кодовым вектором и новым экземпляром данных. Затем для наиболее подходящего вектора в качестве предсказания возвращается класс (или число в случае регрессии). Лучшего результата можно достичь, если все данные будут находиться в одном диапазоне, например от 0 до 1. Метод опорных векторов, вероятно, один из наиболее популярных и обсуждаемых алгоритмов машинного обучения. Гиперплоскость — это линия, разделяющая пространство входных переменных. В методе опорных векторов гиперплоскость выбирается так, чтобы наилучшим образом разделять точки в плоскости входных переменных по их классу: 0 или 1. В двумерной плоскости это можно представить как линию, которая полностью разделяет точки всех классов. Во время обучения алгоритм ищет коэффициенты, которые помогают лучше разделять классы гиперплоскостью. Расстояние между гиперплоскостью и ближайшими точками данных называется разницей. Лучшая или оптимальная гиперплоскость, разделяющая два класса, — это линия с наибольшей разницей. Только эти точки имеют значение при определении гиперплоскости и при построении классификатора. Эти точки называются опорными векторами. Для определения значений коэффициентов, максимизирующих разницу, используются специальные алгоритмы оптимизации. Метод опорных векторов, наверное, один из самых эффективных классических классификаторов, на который определённо стоит обратить внимание. Случайный лес — очень популярный и эффективный алгоритм машинного обучения. Это разновидность ансамблевого алгоритма, называемого бэггингом. Бутстрэп является эффективным статистическим методом для оценки какой-либо величины вроде среднего значения. Вы берёте множество подвыборок из ваших данных, считаете среднее значение для каждой, а затем усредняете результаты для получения лучшей оценки действительного среднего значения. В бэггинге используется тот же подход, но для оценки всех статистических моделей чаще всего используются деревья решений. Тренировочные данные разбиваются на множество выборок, для каждой из которой создаётся модель. Когда нужно сделать предсказание, то его делает каждая модель, а затем предсказания усредняются, чтобы дать лучшую оценку выходному значению. В алгоритме случайного леса для всех выборок из тренировочных данных строятся деревья решений. При построении деревьев для создания каждого узла выбираются случайные признаки. В отдельности полученные модели не очень точны, но при их объединении качество предсказания значительно улучшается. Если алгоритм с высокой дисперсией, например, деревья решений, показывает хороший результат на ваших данных, то этот результат зачастую можно улучшить, применив бэггинг. Бустинг — это семейство ансамблевых алгоритмов, суть которых заключается в создании сильного классификатора на основе нескольких слабых. Для этого сначала создаётся одна модель, затем другая модель, которая пытается исправить ошибки в первой. Модели добавляются до тех пор, пока тренировочные данные не будут идеально предсказываться или пока не будет превышено максимальное количество моделей. AdaBoost был первым действительно успешным алгоритмом бустинга, разработанным для бинарной классификации. Именно с него лучше всего начинать знакомство с бустингом. Современные методы вроде стохастического градиентного бустинга основываются на AdaBoost. AdaBoost используют вместе с короткими деревьями решений. После создания первого дерева проверяется его эффективность на каждом тренировочном объекте, чтобы понять, сколько внимания должно уделить следующее дерево всем объектам. Тем данным, которые сложно предсказать, даётся больший вес, а тем, которые легко предсказать, — меньший. Модели создаются последовательно одна за другой, и каждая из них обновляет веса для следующего дерева. После построения всех деревьев делаются предсказания для новых данных, и эффективность каждого дерева определяется тем, насколько точным оно было на тренировочных данных. Так как в этом алгоритме большое внимание уделяется исправлению ошибок моделей, важно, чтобы в данных отсутствовали аномалии. Хотите увидеть, как применяется машинное обучение в реальной жизни? Ниже мы приведем примеры эффективного использования этой технологии в реальных компаниях. Google — нейронные сетиУ Google впечатляющие технологические амбиции. Сложно представить себе сферу научных исследований, в которую бы не внесла вклад эта корпорация (или ее головная компания Alphabet). Например, за последние годы Google занимались разработкой технологий, замедляющих старение, медицинских устройств и нейронных сетей. Самое значимое достижение компании – создание в DeepMind машин, которые могут мечтать и создавать необычные изображения. Google стремится изучить все аспекты машинного обучения, что помогает компании совершенствовать классические алгоритмы, а также эффективнее обрабатывать и переводить естественную речь, улучшать ранжирование и предсказательные системы. Одно из самых значимых изменений в Twitter за последнее время – переход к новостной ленте на базе алгоритмов. Теперь пользователи соцсети могут сортировать отображаемый контент по популярности или по времени публикации. В основе этих изменений лежит применение машинного обучения. Искусственный интеллект анализирует каждый твит в реальном времени и оценивает его по нескольким показателям. Алгоритм Twitte в первую очередь показывает те записи, которые с большей вероятностью понравятся пользователю. При этом выбор основывается на его личных предпочтениях. facebook-armiya-chatbotovFacebook Messenger – один из самых интересных продуктов крупнейшей социальной платформы в мире. Все потому, что мессенджер стал своеобразной лабораторией чатботов. При общении с некоторыми из них сложно понять, что ты разговариваешь не с человеком. Любой разработчик может и запустить его на базе Facebook Messenger. Благодаря этому даже небольшие компании имеют возможность предлагать клиентам отличный сервис. Конечно, это не единственная сфера применения машинного обучения в Facebook. AI приложения используются для фильтрации спама и контента низкого качества, также компания разрабатывает алгоритмы компьютерного зрения, которые позволяют компьютерам “читать” изображения. Google не единственный поисковой гигант, который осваивает машинное обучение. Китайский поисковик Baidu тоже активно инвестирует в развитие AI. Одна из самых интересных разработок компании – Deep Voice, нейронная сеть, способная генерировать синтетические человеческие голоса, которые практически невозможно отличить от настоящих. Система может имитировать особенности интонации, произношения, ударения и высоты тона. Последнее изобретение Baidu Deep Voice 2 значительно повлияет на эффективность обработки естественного языка, голосового поиска и систем распознавания речи. Применять новую технологию можно будет в других сферах, например, устных переводах и системах биометрической безопасности. Крупнейшая технологическая корпорация IBM отказывается от устаревшей бизнес-модели и активно осваивает новые направления. Самый известный сегодня продукт бренда – искусственный интеллект Watson. За последние несколько лет Watson использовался в госпиталях и медицинских центрах, где диагностировал определенные виды рака намного эффективнее, чем онкологи. У Watson также есть огромный потенциал в сфере ритейла, где он может выполнять роль консультанта. IBM предлагает свой продукт на основе лицензии, что делает его уникальным в своем роде и более доступным.

Это также будет Вам интересно:

Источник

iMag.one - Самые важные новости достойные вашего внимания из более чем 300 изданий!