Машинное обучение что это такое


Что такое Machine Learning и каким оно бывает

Machine Learning (ML, с английского – машинное обучение) — это методики анализа данных, которые позволяют аналитической системе обучаться в ходе решения множества сходных задач. Машинное обучение базируется на идее о том, что аналитические системы могут учиться выявлять закономерности и принимать решения с минимальным участием человека.

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

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

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

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

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

Вот хороший пример от гугловского DeepMind:

DeepMind от Google самостоятельно научился ходить

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

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

Для чего используется машинное обучение

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

Но до этого пройдет еще несколько лет или даже десятилетий. А что же сейчас? Разве машинное обучение еще не начали использовать для решения практических задач? Начали, технология широко используется в области data science (науки о данных). И чаще всего эти задачи маркетинговые.

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

Похожую систему использует Google, чтобы подбирать релевантную рекламу, и у него такие же проблемы – стоит поискать информацию о том, какие виды велосипедов бывают, как Google тут же решит, что пользователь хочет погрузиться в эту тему с головой. Тем же самым занимается и «Яндекс» в своем сервисе «Дзен» – там МО используется для формирования ленты, точно так же, как и в Twitter, Instagram, Facebook, «ВКонтакте» и других социальных сетях.

Вы также могли работать с голосовыми помощниками вроде Siri – они используют системы распознавания речи, основанные на ML. В будущем они могут заменить секретарей и операторов кол-центров. Если вы загорелись этой идеей, можете попробовать сервис аудиоаналитики Sounds от Mail.Ru.

Есть и другие примеры использования систем с машинным обучением:

То есть применение МО может быть самым разным. И даже вы можете использовать его в своих приложениях – для этого понадобится приобрести, настроить и поддерживать инфраструктуру обучения машинных моделей. Альтернатива — воспользоваться готовыми средствами машинного обучения на платформе Mail.Ru Cloud Solutions.

Каким бывает машинное обучение?

Всего есть 3 вида машинного обучения:

    1. С учителем (Supervised machine learning).
    2. Без учителя (Unsupervised machine learning).
    3. Глубокое обучение (Deep learning).

С учителем (Supervised machine learning)

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

Учителем выступает человек, который вбивает в компьютер данные. Допустим, он внес в базу следующую таблицу:

Имя ученика Класс IQ Пол Склад ума Возраст Предмет с самой высокой успеваемостью
Олег 8 120 Мужской Техничес­кий 15 Геомет­рия
Виктория 8 100 Женский Творчес­кий 15 Литера­тура
Иван 8 110 Мужской Гуманитар­ный 14 История
Игорь 8 105 Мужской Техничес­кий 15 Физика
Мария 8 120 Женский Гуманитар­ный 14 Литера­тура

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

То есть учитель дает компьютеру dataset: вводную информацию (пол, возраст, IQ, склад ума, класс), а затем сразу же дает ему данные о результатах учебы, задавая вопрос «вот данные, они влияют на будущую профессию, как думаешь, почему?». И чем больше будет вводных, тем точнее будет анализ.

Так, например, программы учат распознавать объекты на фотографиях – программа просматривает миллионы изображений с описанием того, что на них изображено (дерево или облако). Она находит общие черты и уже сама учится давать описания изображениям. Учитель показывает изображение без описания, а программа спрашивает «это дерево?». Если человек отвечает утвердительно, программа понимает, что сделала правильные выводы. Хороший пример такой системы – облачный сервис для встраивания в приложения машинного зрения Vision на платформе Mail.Ru Cloud Solutions.

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

Без учителя (Unsupervised machine learning)

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

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

Искусственный интеллект учится играть в «Змейку»

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

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

Также нейросети могут обучаться не самостоятельно, а в паре. Так работает генеративно-состязательная сеть (GAN). Она состоит из сетей G и D – первая на основе реальных изображений генерирует образцы, а вторая пытается отличить подлинные образцы от неправильных.

Технология используется для того, чтобы создавать фотографии, неотличимые от реальных, а также восстанавливать поврежденные или нечеткие изображения. Одна из компаний, которая использует GAN, –Facebook.

Глубокое обучение (Deep learning)

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

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

Это можно рассмотреть на примере систем распознавания объектов:

    1. получение изображения;
    2. выявление всех точек;
    3. нахождение линий, построенных из точек;
    4. построение простых фигур с помощью линий;
    5. составление сложных фигур из простых и так далее.

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

Я нейросеть, я так вижу

Deep learning может использоваться для самых неожиданных целей. Например, существует искусственный интеллект по имени Норман, его отправили изучать разделы с «жестью» на Reddit – кадры с расчлененными людьми, фотографии с мест преступлений, жуткие истории и так далее.

Затем Норману предложили пройти тест Роршаха, чтобы сравнить его ответы с ответами других ИИ – где одни видели цветы, животных и зонты, Норман видел мертвых мужчин и женщин, убитых самыми разными способами.

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

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

Примечательно: Как уже говорилось выше, многие выдают за ИИ обычные программы. Яркий пример – Deep Blue, суперкомпьютер, который обыграл Гарри Каспарова 11 мая 1997 года. На самом деле шахматная система перебирала позиции из двух дебютных книг, сравнивала их с текущей партией и выбирала оптимальный вариант.

Однако шахматный искусственный интеллект все же существует – программа AlphaZero, запущенная в декабре 2017 года. Всего за 24 часа нейросеть научилась играть в шахматы на таком уровне, что смогла обыграть одну из лучших шахматных программ – Stockfish – с разгромным счетом (+28 – 0 = 72). А в декабре 2018 г. в новом матче из 1000 партий нейросеть выиграла 155 партий, проиграла 6 и свела вничью 839. Тесты показали, что Stockfish сумел лидировать в счете, только когда ему дали в 30 раз больше времени, чем нейросети.

Как начать разбираться в машинном обучении

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

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

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

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

Лучше всего обучаться этому системно, поэтому можно пройти курс «Машинное обучение» в Coursera или поступить на факультет искусственного интеллекта в GeekBrains, а также ознакомиться с 10 обязательными к прочтению книгами о машинном обучении (на английском).

mcs.mail.ru

Машинное обучение для чайников

Кадр из м/ф «Призрак в доспехах»

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

Мы порой даже примерно не представляем, как работают некоторые приложения, основанные на методах машинного обучения. Скажем, никто не сможет вам ответить на вопрос «Почему мне сегодня в рекламе показали сайт A, а не Б?». Наиболее печальным во всей этой ситуации является то, что большинство людей имеет неверное представление о машинном обучении.

Вводная

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

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

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

Обучение с учителем и без учителя

Большую часть задач машинного обучения можно разделить на обучение с учителем (supervised learning) и обучение без учителя (unsupervised learning). Если вы представили себе программиста с плёткой в одной руке и куском сахара в другой, вы немного ошиблись. Под «учителем» здесь понимается сама идея вмешательства человека в обработку данных. При обучении с учителем у нас есть данные, на основании которых нужно что-то предсказать, и некоторые гипотезы. При обучении без учителя у нас есть только данные, свойства которых мы и хотим найти. На примерах разницу вы увидите немного яснее.

Обучение с учителем

У нас есть данные о 10 000 квартирах в Москве, причём известна площадь каждой квартиры, количество комнат, этаж, на котором она расположена, район, наличие парковки, расстояние до ближайшей станции метро и так далее. Кроме того, известна стоимость каждой квартиры. Нашей задачей является построение модели, которая на основе данных признаков будет предсказывать стоимость квартиры. Это классический пример обучения с учителем, где у нас есть данные (10 000 квартир и различные параметры для каждой квартиры, называемые признаками) и отклики (стоимость квартиры). Такая задача называется задачей регрессии. О том, что это такое, мы поговорим чуть позже.

Красные точки — имеющиеся данные (по оси x — значение признака, по оси y — значение ответа), синяя прямая — построенная модель.

Другие примеры: на основании различных медицинских показателей предсказать наличие у пациента рака. Или на основании текста электронного письма предсказать вероятность того, что это спам. Такие задачи являются задачами классификации.

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

Обучение без учителя

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

Кластеризация на 3 кластера. Отметим, что обычно разделение на кластеры является не таким явным и нет единого «правильного» разделения.

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

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

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

  • Задача регрессии: на основании различных признаков предсказать вещественный ответ. Другими словами, ответом может быть 1, 5, 23.575 или любое другое вещественное число, которое, например, может олицетворять стоимость квартиры. Примеры: предсказание стоимости акции через полгода, предсказание прибыли магазина в следующем месяце, предсказание качества вина на слепом тестировании.
  • Задача классификации: на основании различных признаков предсказать категориальный ответ. Другими словами, ответов в такой задаче конечное количество, как в случае с определением наличия у пациента рака или определения того, является ли письмо спамом. Примеры: распознавание текста по рукописному вводу, определение того, находится на фотографии человек или кот.
  • Задача кластеризации: разбиение данных на похожие категории. Примеры: разбиение клиентов сотового оператора по платёжеспособности, разбиение космических объектов на похожие (галактики, планеты, звезды и так далее).
  • Задача уменьшения размерности: научиться описывать наши данные не N признаками, а меньшим числом (как правило, 2-3 для последующей визуализации). В качестве примера помимо необходимости для визуализации можно привести сжатие данных.
  • Задача выявления аномалий: на основании признаков научиться различать отличать аномалии от «не-аномалий». Кажется, что от задачи классификации эта задача ничем не отличается. Но особенность выявления аномалий состоит в том, что примеров аномалий для тренировки модели у нас либо очень мало, либо нет совсем, поэтому мы не можем решать такую задачу как задачу классификации. Пример: определение мошеннических транзакций по банковской карте.

Нейронные сети

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

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

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

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

Ограниченность нейронных сетей

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

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

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

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

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

Интересные факты и лайфхаки

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

Например, вторая кампания Барака Обамы была фактически выиграна лучшей на тот момент командой в области анализа данных. Разумеется, речь не идет о том, что они советовали ему соврать о чем-то, работа строилась значительно более умным путем: они выбирали, в каком штате, перед какой аудиторией, в какой день и на какую тему он должен выступать. Причем каждый раз они замеряли, как это сказывается на опросах вида «За кого бы вы проголосовали, если бы выборы были в ближайшее воскресенье?». Другими словами, подобные решения принимали не политтехнологи, а исключительно специалисты по анализу данных. Особенно интересным это становится в свете того, что, по оценкам специалистов, это дало ему преимущество в 8-10%.

Кроме того, современный интернет довольно сложно представить без ретаргетинга, или персонализированной рекламы. Вспомните: вы выбираете какой-то продукт в интернете, а после покупки ещё на протяжении двух недель вам показывают его в различного рода рекламе. В одном из своих выступлений директор по маркетингу сервисов компании «Яндекс» Андрей Себрант дал на этот счёт такой совет:

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

Рекомендации по обучению

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

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

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

Для тех, кто хочет изучать предмет со всеми математическими тонкостями в лучших традициях сильных технических вузов, можно порекомендовать курс от ВШЭ или специализацию от МФТИ. Заметим лишь, что специализация является платной и для доступа к ней придется оформить подписку приблизительно за 3000 рублей в месяц. Впрочем, есть бесплатный период в 7 дней.

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.

newtonew.com

Введение в машинное обучение

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

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

1.2 Типы задач машинного обучения

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

1)Задача регрессии – прогноз на основе выборки объектов с различными признаками. На выходе должно получиться вещественное число (2, 35, 76.454 и др.), к примеру цена квартиры, стоимость ценной бумаги по прошествии полугода, ожидаемый доход магазина на следующий месяц, качество вина при слепом тестировании.

2)Задача классификации – получение категориального ответа на основе набора признаков. Имеет конечное количество ответов (как правило, в формате «да» или «нет»): есть ли на фотографии кот, является ли изображение человеческим лицом, болен ли пациент раком.

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

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

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

1.3 Основные виды машинного обучения

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

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

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

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

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

1.4 Основные алгоритмы моделей машинного обучения

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

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

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

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

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

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

Он базируется на алгоритмах машинного обучения, генерирующих множество классификаторов и разделяющих все объекты из вновь поступающих данных на основе их усреднения или итогов голосования. Изначально метод ансамблей был частным случаем байесовского усреднения, но затем усложнился и оброс дополнительными алгоритмами:
  • бустинг (boosting) – преобразует слабые модели в сильные посредством формирования ансамбля классификаторов (с математической точки зрения это является улучшающим пересечением);
  • бэггинг (bagging) – собирает усложнённые классификаторы, при этом параллельно обучая базовые (улучшающее объединение);
  • корректирование ошибок выходного кодирования.
Метод ансамблей – более мощный инструмент по сравнению с отдельно стоящими моделями прогнозирования, поскольку:
  • он сводит к минимуму влияние случайностей, усредняя ошибки каждого базового классификатора;
  • уменьшает дисперсию, поскольку несколько разных моделей, исходящих из разных гипотез, имеют больше шансов прийти к правильному результату, чем одна отдельно взятая;
  • исключает выход за рамки множества: если агрегированная гипотеза оказывается вне множества базовых гипотез, то на этапе формирования комбинированной гипотезы оно расширяется при помощи того или иного способа, и гипотеза уже входит в него.
7. Алгоритмы кластеризации Кластеризация заключается в распределении множества объектов по категориям так, чтобы в каждой категории – кластере – оказались наиболее схожие между собой элементы. Кластеризировать объекты можно по разным алгоритмам. Чаще всего используют следующие:
  • на основе центра тяжести треугольника;
  • на базе подключения;
  • сокращения размерности;
  • плотности (основанные на пространственной кластеризации);
  • вероятностные;
  • машинное обучение, в том числе нейронные сети.
Алгоритмы кластеризации используются в биологии (исследование взаимодействия генов в геноме, насчитывающем до нескольких тысяч элементов), социологии (обработка результатов социологических исследований методом Уорда, на выходе дающим кластеры с минимальной дисперсией и примерно одинакового размера) и информационных технологиях.

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

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

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

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

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

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

1.5 Примеры применения в реальной жизни

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

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

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

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

С этой задачей ежедневно сталкиваются все банки, занимающиеся выдачей кредитов. Необходимость в автоматизации этого процесса назрела давно, ещё в 1960–1970-е годы, когда в США и других странах начался бум кредитных карт. Лица, запрашивающие у банка заём, – это объекты, а вот признаки будут отличаться в зависимости от того, физическое это лицо или юридическое. Признаковое описание частного лица, претендующего на кредит, формируется на основе данных анкеты, которую оно заполняет. Затем анкета дополняется некоторыми другими сведениями о потенциальном клиенте, которые банк получает по своим каналам. Часть из них относятся к бинарным признакам (пол, наличие телефонного номера), другие — к порядковым (образование, должность), большинство же являются количественными (величина займа, общая сумма задолженностей по другим банкам, возраст, количество членов семьи, доход, трудовой стаж) или номинальными (имя, название фирмы-работодателя, профессия, адрес). Для машинного обучения составляется выборка, в которую входят кредитополучатели, чья кредитная история известна. Все заёмщики делятся на классы, в простейшем случае их 2 – «хорошие» заёмщики и «плохие», и положительное решение о выдаче кредита принимается только в пользу «хороших». Более сложный алгоритм машинного обучения, называемый кредитным скорингом, предусматривает начисление каждому заёмщику условных баллов за каждый признак, и решение о предоставлении кредита будет зависеть от суммы набранных баллов. Во время машинного обучения системы кредитного скоринга вначале назначают некоторое количество баллов каждому признаку, а затем определяют условия выдачи займа (срок, процентную ставку и остальные параметры, которые отражаются в кредитном договоре). Но существует также и другой алгоритм обучения системы – на основе прецедентов.

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

Теги:
  • Машинное обучение
  • Введение в алгоритмы
  • Курс по ML

habr.com

Обзор самых популярных алгоритмов машинного обучения

Перевод статьи «A Tour of The Top 10 Algorithms for Machine Learning Newbies»

Существует такое понятие, как «No Free Lunch» теорема. Её суть заключается в том, что нет такого алгоритма, который был бы лучшим выбором для каждой задачи, что в особенности касается обучения с учителем.

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

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

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

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

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

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

1.  Линейная регрессия

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

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

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

Например: Y = B0 + B1 * X

Зная X, мы должны найти Y, и цель линейной регрессии заключается в поиске значений коэффициентов B0 и B1.

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

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

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

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

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

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

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

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

3. Линейный дискриминантный анализ (LDA)

Логистическая регрессия используется, когда нужно отнести образец к одному из двух классов. Если классов больше, чем два, то лучше использовать алгоритм LDA (Linear discriminant analysis).

Представление LDA довольно простое. Оно состоит из статистических свойств данных, рассчитанных для каждого класса. Для каждой входной переменной это включает:

  • Среднее значение для каждого класса;
  • Дисперсию, рассчитанную по всем классам.

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

4.  Деревья принятия решений

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

Листовые узлы — это выходная переменная, которая используется для предсказания. Предсказания производятся путём прохода по дереву к листовому узлу и вывода значения класса на этом узле.

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

5 . Наивный Байесовский классификатор

Наивный Байес — простой, но удивительно эффективный алгоритм.

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

  1. Вероятность каждого класса.
  2. Условная вероятность для каждого класса при каждом значении x.

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

Наивный Байес называется наивным, потому что алгоритм предполагает, что каждая входная переменная независимая. Это сильное предположение, которое не соответствует реальным данным. Тем не менее данный алгоритм весьма эффективен для целого ряда сложных задач вроде классификации спама или распознавания рукописных цифр.

6.  K-ближайших соседей (KNN)

К-ближайших соседей — очень простой и очень эффективный алгоритм. Модель KNN (K-nearest neighbors) представлена всем набором тренировочных данных. Довольно просто, не так ли?

Предсказание для новой точки делается путём поиска K ближайших соседей в наборе данных и суммирования выходной переменной для этих K экземпляров.

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

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

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

7 .  Сети векторного квантования (LVQ)

Недостаток KNN заключается в том, что нужно хранить весь тренировочный набор данных. Если KNN хорошо себя показал, то есть смысл попробовать алгоритм LVQ (Learning vector quantization), который лишён этого недостатка.

LVQ представляет собой набор кодовых векторов. Они выбираются в начале случайным образом и в течение определённого количества итераций адаптируются так, чтобы наилучшим образом обобщить весь набор данных. После обучения эти вектора могут использоваться для предсказания так же, как это делается в KNN. Алгоритм ищет ближайшего соседа (наиболее подходящий кодовый вектор) путём вычисления расстояния между каждым кодовым вектором и новым экземпляром данных. Затем для наиболее подходящего вектора в качестве предсказания возвращается класс (или число в случае регрессии). Лучшего результата можно достичь, если все данные будут находиться в одном диапазоне, например от 0 до 1.

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

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

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

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

Метод опорных векторов, наверное, один из самых эффективных классических классификаторов, на который определённо стоит обратить внимание.

9 .  Бэггинг и случайный лес

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

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

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

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

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

10 .  Бустинг и AdaBoost

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

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

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

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

Пара слов напоследок

Когда новички видят всё разнообразие алгоритмов, они задаются стандартным вопросом: «А какой следует использовать мне?» Ответ на этот вопрос зависит от множества факторов:

  • Размер, качество и характер данных;
  • Доступное вычислительное время;
  • Срочность задачи;
  • Что вы хотите делать с данными.

Даже опытный data scientist не скажет, какой алгоритм будет работать лучше, прежде чем попробует несколько вариантов. Существует множество других алгоритмов машинного обучения, но приведённые выше — наиболее популярные. Если вы только знакомитесь с машинным обучением, то они будут хорошей отправной точкой.

tproger.ru

Машинное обучение: как оно применяется в жизни | Rusbase

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

Типология и терминология

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

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

Обучение с учителем

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

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

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

В задачах второго типа ответы принадлежат ограниченному набору возможных категорий (или классов). Продолжим наши офисные аналогии: представьте, что офис-менеджер Михаил закупил два вида подарков для коллег к Новому году – футболки и блокноты. Чтобы не испортить сюрприз, Михаил хочет построить модель, которая предсказывала бы, какой подарок хочет получить сотрудник, на основе данных из личных профилей (внимательный читатель заметит, что в реальности для построения модели Михаилу все же пришлось бы спросить о желаемом подарке у части коллег, чтобы сформировать обучающую выборку). Такой тип задач, когда необходимо относить объекты к одной из нескольких возможных категорий, то есть когда зависимая переменная принимает конечное число значений, называется задачей классификации. Пример с подарками относится к бинарной классификации: классов всего два – «футболки» и «блокноты»; в противном случае, когда классов больше, говорят о многоклассовой классификации.

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

Еще один тип обучения с учителем – задача ранжирования. Она решается, когда вы ищете что-то в поисковике вроде Google: есть множество документов и необходимо отсортировать их в порядке их релевантности (смысловой близости) запросу.

Обучение без учителя

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

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

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

Помимо обучения с учителем и без учителя, существуют и более изысканные типы задач. Например, в частичном обучении ответы известны только для части объектов выборки.

Алгоритмы машинного обучения

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

Еще один простой алгоритм машинного обучения – решающее дерево. Он напоминает набор последовательно задаваемых вопросов с (чаще всего) двумя возможными ответами. Подобный алгоритм использует офис-менеджер Михаил, когда решает, подходит ли кофе из новой поставки для приверед из отдела анализа данных. Это задача бинарной классификации, где ответы принимают значение «кофе подходит» и «кофе не подходит». Михаил последовательно отвечает на ряд вопросов, перемещаясь по веткам дерева: какой вид кофе? какая обжарка кофе? какой регион произрастания кофе? В итоге Михаил оказывается в одном из листьев (так называются «конечные» вершины) дерева, где находится предсказание.

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

Глубинное обучение

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

Джереми Говард, один из авторов известного курса про глубинное обучение fast.ai, приводит следующий пример. Команда специалистов из Стенфорда во главе с ученым Эндрю Бэком занималась исследованием рака молочной железы. Чтобы построить модель, способную предсказывать выживет пациентка с опухолью или нет, им пришлось изучить огромное количество снимков биопсий молочной железы. Таким образом они определили, какие паттерны на снимках могут быть связаны со смертью пациентки и сформировали сотни сложных признаков, таких как связь между соседними эпителиальными клетками. Затем команда программистов разработала алгоритмы для правильного распознавания этих признаков со снимков.

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

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

Необходимые навыки и варианты курсов

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

В остальном все в ваших руках. Сейчас в интернете можно найти множество онлайн-курсов по теме, в том числе и бесплатных. Из таких для начала мы рекомендуем «Введение в машинное обучение» от НИУ ВШЭ, Machine Learning от известного ученого из Стенфорда Эндрю Ына (правда, для сдачи заданий по программированию потребуется MATLAB/Octave) и уже упомянутый нами выше fast.ai.

Материалы по теме:

Почему ваш проект по машинному обучению может потерпеть неудачу: как этого избежать

30 самых удивительных проектов по машинному обучению

Как применение метода глубокого обучения влияет на эффективность онлайн-кампаний?

Как ИИ может изменить методы оценки умственных способностей у детей

rb.ru

Что такое машинное обучение и почему оно может лишить вас работы

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

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

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

Что такое машинное обучение

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

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

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

Quantamagazine.org

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

Почему машинное обучение — это важно

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

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

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

Ibtimes.co.uk

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

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

Как машинное обучение применяют сегодня

Алгоритмы машинного обучения уже способны впечатлить.

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

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

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

Недавно IBM опросила руководителей автомобильных компаний. 74% из них ожидают появления на дорогах умных машин уже к 2025 году.

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

Чего ждать от машинного обучения в будущем

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

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

Почему вам стоит следить за машинным обучением

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

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

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

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

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

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

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

lifehacker.ru


Смотрите также

Календарь

ПНВТСРЧТПТСБВС
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Мы в Соцсетях

 

vklog square facebook 512 twitter icon Livejournal icon
square linkedin 512 20150213095025Одноклассники Blogger.svg rfgoogle