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

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

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

Дерево решений

Допустим, вы продавец автомобилей и хотите порекомендовать автомобили, например E-Porsche, BMW i8 и Mercedes EQS, своим клиентам.

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

Например, во второй строке таблицы у нас есть клиент в возрасте 29 лет, который работает и имеет E-Porsche. С учетом предоставленных данных задача состоит в том, чтобы предсказать, какой автомобиль следует рекомендовать клиенту, исходя из занятости или возраста клиента.

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

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

Лучше всего данные разделяются по возрасту.

Как только мы разделимся по возрасту, мы можем продолжить работу.

Разделив функции, мы теперь можем рекомендовать i8 клиентам младше 35 лет и самостоятельно занятым, а если клиент старше 35 лет и у него есть работодатель, мы можем порекомендовать автомобиль EQS. Этот метод называется деревом решений.

Решения возникают на основе задаваемых вопросов. Сколько лет клиенту? Это самозанятость или работа? Если есть новый клиент, мы можем использовать дерево решений и порекомендовать ему автомобиль. Если новый покупатель моложе 35 лет, мы рекомендуем ему Mission-E. Этот метод может работать с категориальными и числовыми признаками и прост для понимания. Он обеспечивает хорошую интерпретацию для визуального представления. Перейдем к следующему способу. Следующий метод поможет нам отфильтровать данные.

Наивный байесовский

Другой метод ML - это наивный байесовский метод классификации. Это вероятностная модель машинного обучения. Он хорошо подходит для таких задач, как спам и классификация документов. Популярным примером использования этого метода является фильтрация спама. Мы будем использовать его в качестве классификатора для обнаружения спама в электронной почте от спама, не относящегося к электронной почте. Как это работает? Для этой задачи мы должны взглянуть на данные, которые мы уже получили. Набор данных содержит 50 не-спама и 20 спама, которые были помечены вручную. Всего получилось 70 писем.

Давайте определим и проанализируем некоторые особенности, которые могут сделать электронную почту спамом. Например, функцией может быть электронное письмо без темы. Теперь мы просматриваем не менее 70 писем и обнаруживаем, что 4 из 50 писем без спама и 10 из 20 писем со спамом - это письма без темы.

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

71,43% - это вероятность того, что письмо без темы является спамом. Затем мы можем пометить будущие электронные письма как не-спам или спам, используя правило, согласно которому, если получено электронное письмо без объекта, вероятность того, что это электронное письмо является спамом, составляет 71,43% и классифицирует электронное письмо как спам или нет. Используя другие функции, такие как предложение «Вы большой победитель» или «Заявите о своем предложении». Затем мы можем объединить все функции, чтобы классифицировать электронную почту. Этот алгоритм называется наивным байесовским классификатором. Метод также используется для рекомендаций, анализа настроений. Это легко реализовать. Следующий метод, который мы увидим, также прост и очень хорошо подходит для анализа больших объемов данных.

Кластеризация K-средних

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

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

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

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

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

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

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

Затем мы перемещаем желтую станцию ​​в центр желтых квартир, так как они ближе к этой станции.

Этот метод называется k-means. Если мы знаем, сколько кластеров мы хотим получить в конце, мы можем использовать k-means. Если мы не знаем, сколько кластеров, мы хотим иметь. Для этого есть другой алгоритм, называемый иерархической кластеризацией.

Иерархическая кластеризация

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

Затем мы группируем следующие две ближайшие квартиры.

Повторяем предыдущий шаг, и у нас будет следующий

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

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

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

В этом примере мы пытаемся оценить стоимость автомобиля на основе его размера в длину x ширину x высоту (ДхШхВ).

Для этого проведем небольшое исследование. Благодаря этому небольшому исследованию у нас есть три машины. Самый маленький из них стоит 15 000 евро, а самый большой автомобиль стоит 45 000 евро. Теперь мы хотим оценить цену автомобиля, размер которого превышает размер двух автомобилей.

Для этого мы располагаем автомобили в сетке, где ось абсцисс соответствует размеру автомобилей, а ось y - их цене. Чтобы немного облегчить задачу, мы используем данные, которые мы ранее записали с других автомобилей. Они представлены этими коричневыми точками.

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

С помощью линии мы можем оценить цену автомобиля посередине, и это соответствует 30 000 евро.

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

Градиентный спуск

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

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

После этого повторяем этот процесс и делаем шаг в правильном направлении.

Повторяем действие, пока не дойдем до подножия горы.

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

Линейная регрессия - набор

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

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

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

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

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

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

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

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

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

В этом примере мы записали некоторые данные с параметрами, например Град скорости роста 20%, степень рецидива 20% для данных x, что является доброкачественной опухолью. Для данных y у нас есть градиент скорости роста 79%, степень рецидива 61%, что является злокачественной опухолью. Теперь у нас есть новые данные, с увеличением скорости на 62% и повторяемости на 45%. Цвета определяют метку класса, которому принадлежит каждый экземпляр. Имея данные, мы хотим определить, какой это тип опухоли. Для этого мы располагаем данные в сетке, где ось x соответствует скорости роста, а ось y - градиенту повторяемости.

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

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

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

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

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

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

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

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

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

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

Хорошие отзывы

[1] Эндрю Мур. K-средства и иерархическая кластеризация - учебные слайды. URL http://www-2.cs.cmu.edu/~awm/tutorials/kmeans.html.

[2] Майкл Нильсен . Нейронные сети и глубокое обучение. URL http://neuralnetworksanddeeplearning.com/index.html.