Машинное обучение: виды, алгоритмы, примеры

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Машинное обучение стало настоящим прорывом и сейчас оказывает значительное влияние на жизнь человека и функционирование различных сфер промышленности и бизнеса.

ТОП-6 самых важных статей для руководителя:

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

Технология машинного обучения на основе анализа данных берёт начало в 1950-х гг., когда начали разрабатывать первые программы для игры в шашки. За прошедшие десятилетия общий принцип не изменился. Зато благодаря взрывному росту вычислительных мощностей компьютеров многократно усложнились закономерности и прогнозы, создаваемые ими, и расширился круг проблем и задач, решаемых с использованием машинного обучения.

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

Обучение продолжается и дальше, ведь все загруженные и проанализированные – и верно, и ошибочно – изображения попадают в ту же базу данных. Поэтому, чем больше данных обработано, тем «умнее» программа и всё более точно она решает поставленную задачу.

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

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

Машинное обучение: виды, алгоритмы, примеры

Кроме того, теперь компьютер может общаться с человеком на естественном языке посредством голоса – слушать ваши реплики и давать ответы. Это виртуальные ассистенты – «Cortana», «Siri», «Google Now».

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

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

Большинство людей имеют довольно смутное представление о том, что это такое и какими свойствами оно обладает. Искусственная нейронная сеть представляет собой совокупность нейронов (каждый из которых – математическая модель настоящего нейрона). Сам нейрон, являющийся частью такой искусственной сети, – это математическая функция (сигмоидная и др.), которая получает какое-либо значение из входящих данных.

Эта технология получила широкое развитие на рубеже 1980-х и 1990-х годов, но к концу 1990-х годов растеряла свою популярность. Тем не менее нейронные сети остаются одним из наиболее передовых и перспективных методов машинного обучения. По мере роста вычислительных мощностей компьютеров и появления мобильных устройств нейронные сети становятся всё более востребованными. Они позволяют решать задачи классификации и регрессии, создавать чрезвычайно сложные модели. Ещё в середине XX века математик А. Н. Колмогоров провозгласил, что любая поверхность может быть аппроксимирована посредством нейронных сетей, причём с любой требуемой степенью точности.

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

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

Очень востребованы системы машинного обучения, связанные с обработкой речи и текстов. В частности, это создание ботов для замены сотрудников в службах поддержки, которые оперативно отвечают на входящие запросы клиентов по заданным схемам (причём они становятся всё более изощрёнными, и не всегда можно догадаться, что вам отвечает не живой человек, а программа). Сюда же относится расшифровка документации, которая постоянно необходима в юридической практике.

Весьма перспективным и вдохновляющим направлением машинного обучения является создание умных автомобилей. Согласно недавнему опросу топ-менеджеров автомобильных компаний, проведённому «IBM», 74% управляющих предсказывают выход в широкую эксплуатацию таких машин уже в 2025 году. Благодаря системе машинного обучения эти автомобили, собирая информацию о владельце и окружающей обстановке посредством Интернета вещей, анализируют ситуацию на дороге и решают все возникающие проблемы самостоятельно, в том числе выбирают маршрут и осуществляют управление без участия водителя.

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

Основная масса задач, решаемых при помощи методов машинного обучения, относится к двум разным видам: обучение с учителем (supervised learning) либо без него (unsupervised learning). Однако этим учителем вовсе не обязательно является сам программист, который стоит над компьютером и контролирует каждое действие в программе. «Учитель» в терминах машинного обучения – это само вмешательство человека в процесс обработки информации. В обоих видах обучения машине предоставляются исходные данные, которые ей предстоит проанализировать и найти закономерности. Различие лишь в том, что при обучении с учителем есть ряд гипотез, которые необходимо опровергнуть или подтвердить. Эту разницу легко понять на примерах.

Машинное обучение с учителем

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

Ещё пример из практики: подтвердить или опровергнуть наличие рака у пациента, зная все его медицинские показатели. Выяснить, является ли входящее письмо спамом, проанализировав его текст. Это всё задачи на классификацию.

Машинное обучение без учителя

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

Если взять другую ситуацию, когда каждый из объектов в выборке обладает сотней различных признаков, то основной трудностью будет графическое отображение такой выборки. Поэтому количество признаков уменьшают до двух или трёх, и становится возможным визуализировать их на плоскости или в 3D. Это – задача уменьшения размерности.

1. Дерево принятия решений

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

Для бизнес-процессов это дерево складывается из минимального числа вопросов, предполагающих однозначный ответ — «да» или «нет». Последовательно дав ответы на все эти вопросы, мы приходим к правильному выбору. Методологические преимущества дерева принятия решений – в том, что оно структурирует и систематизирует проблему, а итоговое решение принимается на основе логических выводов.

2. Наивная байесовская классификация

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

3. Метод наименьших квадратов

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

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

4. Логистическая регрессия

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

5. Метод опорных векторов (SVM)

Это целый набор алгоритмов, необходимых для решения задач на классификацию и регрессионный анализ. Исходя из того что объект, находящийся в N-мерном пространстве, относится к одному из двух классов, метод опорных векторов строит гиперплоскость с мерностью (N – 1), чтобы все объекты оказались в одной из двух групп. На бумаге это можно изобразить так: есть точки двух разных видов, и их можно линейно разделить. Кроме сепарации точек, данный метод генерирует гиперплоскость таким образом, чтобы она была максимально удалена от самой близкой точки каждой группы.

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

6. Метод ансамблей

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

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

7. Алгоритмы кластеризации

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

Кластеризировать объекты можно по разным алгоритмам. Чаще всего используют следующие:

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

8. Метод главных компонент (PCA)

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

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

9. Сингулярное разложение

В линейной алгебре сингулярное разложение, или SVD, определяется как разложение прямоугольной матрицы, состоящей из комплексных или вещественных чисел. Так, матрицу M размерностью [m*n] можно разложить таким образом, что M = U?V, где U и V будут унитарными матрицами, а ? – диагональной.

Одним из частных случаев сингулярного разложения является метод главных компонент. Самые первые технологии компьютерного зрения разрабатывались на основе SVD и PCA и работали следующим образом: вначале лица (или другие паттерны, которые предстояло найти) представляли в виде суммы базисных компонент, затем уменьшали их размерность, после чего производили их сопоставление с изображениями из выборки. Современные алгоритмы сингулярного разложения в машинном обучении, конечно, значительно сложнее и изощрённее, чем их предшественники, но суть их в целом нем изменилась.

10. Анализ независимых компонент (ICA)

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

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

Пример 1. Диагностика заболеваний

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

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

Пример 2. Поиск мест залегания полезных ископаемых

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

Для обучающей выборки берутся 2 вида прецедентов: районы, где точно присутствуют месторождения полезных ископаемых, и районы с похожими характеристиками, где эти ископаемые не были обнаружены. Но добыча редких полезных ископаемых имеет свою специфику: во многих случаях количество признаков значительно превышает число объектов, и методы традиционной статистики плохо подходят для таких ситуаций. Поэтому при машинном обучении акцент делается на обнаружение закономерностей в уже собранном массиве данных. Для этого определяются небольшие и наиболее информативные совокупности признаков, которые максимально показательны для ответа на вопрос исследования – есть в указанной местности то или иное ископаемое или нет. Можно провести аналогию с медициной: у месторождений тоже можно выявить свои синдромы. Ценность применения машинного обучения в этой области заключается в том, что полученные результаты не только носят практический характер, но и представляют серьёзный научный интерес для геологов и геофизиков.

Пример 3. Оценка надёжности и платёжеспособности кандидатов на получение кредитов

С этой задачей ежедневно сталкиваются все банки, занимающиеся выдачей кредитов. Необходимость в автоматизации этого процесса назрела давно, ещё в 1960–1970-е годы, когда в США и других странах начался бум кредитных карт.

Лица, запрашивающие у банка заём, – это объекты, а вот признаки будут отличаться в зависимости от того, физическое это лицо или юридическое. Признаковое описание частного лица, претендующего на кредит, формируется на основе данных анкеты, которую оно заполняет. Затем анкета дополняется некоторыми другими сведениями о потенциальном клиенте, которые банк получает по своим каналам. Часть из них относятся к бинарным признакам (пол, наличие телефонного номера), другие — к порядковым (образование, должность), большинство же являются количественными (величина займа, общая сумма задолженностей по другим банкам, возраст, количество членов семьи, доход, трудовой стаж) или номинальными (имя, название фирмы-работодателя, профессия, адрес).

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

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

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

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

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

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

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

Тем, кто хочет изучить технологии машинного обучения, необходимы будут знания в области матанализа и особенно – линейной алгебры и методов оптимизации. Желательно также разбираться хотя бы в одном языке программирования, хотя бы на базовом уровне. В машинном обучении чаще всего применяются Matlab, R или Python.

Начинать погружение в тему машинного обучения лучше всего с классического курса Эндрю Энга. Его можно найти на портале «Coursera». Упор в нём делается на практическое применение и решение задач, и для него не требуется глубоких математических знаний, поэтому данный курс считается универсальным.

Вначале просмотрите учебный план. Прослушивание всех лекций, содержащихся в курсе, и выполнение всех заданий гарантированно даст вам практические знания в области машинного обучения. В частности, это алгоритмы линейной и логистической регрессий, метод опорных векторов, нейронные сети (для решения задач по классификации), РСА (уменьшение размерности), кластеризация (K-means), выявление аномалий и т. д. В качестве примера работы машинного обучения рассматривается создание системы рекомендаций по оценкам других пользователей (сервисы для выбора книг, фильмов, музыки). Итоговая неделя курса посвящена разработке системы, распознающей лица людей и тексты на картинках.

Тем, кто нацелен на более глубокую и академическую, на уровне лучших технических вузов, подготовку в области машинного обучения, мы рекомендуем соответствующую специализацию от МФТИ или курс машинного обучения от ВШЭ. Специализация имеет бесплатный пробный период длиной в неделю, а всё остальное время учёбы оплачивается по подписке (её стоимость составляет примерно 3000 руб. в месяц).

The Elements of Statistical Learning: Data Mining, Inference, and Prediction

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

Introduction To Machine Learning

Эта книга знакомит читателя с индуктивным логическим программированием (научным направлением на стыке логического программирования и машинного обучения) и хорошо подходит в качестве введения. Пригодится всем, кто изучает или как-то связан в своей работе с искусственным интеллектом, базами данных, машинным обучением, дата-инжинирингом и логическим программированием.

Reinforcement Learning: An Introduction

Данная книга всесторонне рассматривает такую разновидность машинного обучения, как обучение с подкреплением – метод, при котором обучаемая система находится в постоянном контакте со средой и нацелена на получение максимальной выгоды от неё. Читатель получит представление о ключевых аспектах данного метода машинного обучения, его истории развития и применимости. Для того чтобы понять весь изложенный материал, необходимо знать принципы вероятностной модели.

Information Theory, Inference, and Learning Algorithms

Эта книга посвящена рассмотрению основных аспектов теории информации и статистического вывода – темам, на которых базируются многие направления современной науки и информационных технологий, такие как data mining, криптография, теория коммуникации, теория обработки сигналов, биоинформатика и машинное обучение тоже. Помимо теоретических основ, в книге приведено множество практических примеров и упражнений.

Inductive Logical Programming

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

Gaussian Processes for Machine Learning

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

A Course in Machine Learning

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

Bayesian Reasoning and Machine Learning

Автор книги Дэвид Барбер знакомит читателей с наиболее перспективными информационными технологиями с помощью графических моделей. В книге довольно много математики, в частности исчисления и линейной алгебры.

Machine Learning, Neural and Statistical Classification

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

Introduction To Machine Learning

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


Источник: www.gd.ru

Комментарии: