Классическое обучение
Первые алгоритмы машинного обучения появились в 50-х года 20 века, пришли они из области статистики. Алгоритмы решали формальные задачи, они искали закономерности, проводили оценку близости точек в пространстве и вычисляли их направление. Сегодня на таких классических алгоритмах держится многое в работе интернета: рекомендации, блокировка подозрительных транзакций, персонализированная реклама - это всё происходит с помощью алгоритмов классического обучения. Классические алгоритмы очень популярны, при этом и очень просты. В настоящее время они, как основы арифметики, всегда необходимы.
Обучение с учителем
В классическом обучении уделяется отдельное внимание на «обучение с учителем». В данном случае у машины есть учитель, который говорит, как правильно. Он разделяет и поясняет данные, а машина учится на конкретных примерах. В качестве учителя чаще всего выступают размеченные данные, подготавливает их, как правило, человек.
При обучении без учителя машине представляют множество данных без пояснений и машина должна самостоятельно найти закономерности.
Конечно, при обучении с учителем возрастает скорость обучения и обучение качественнее, именно поэтому при решении бизнес-задач обучение с учителем используют гораздо чаще. Сами задачи делятся на два типа: классификация – предсказание категории объекта, и регрессия – предсказание места на числовой прямой.
Классификация
Классификация разделяет все объекты по признаку, который заранее известен. Цвет к цвету, разделяет документы по языкам, музыкальные композиции по жанрам.
Сегодня классификацию используют для:
- Спам-фильтров
- Определения языка
- Поиск схожих документов
- Определение подозрительных банковских транзакций
Популярные алгоритмы: Наивный Байес, Деревья Решений, Логистическая Регрессия, K-ближайших соседей, Машины Опорных Векторов
Спам-фильтры и Наивный Байес
Раньше все спам-фильтры работали на алгоритме Наивного Байеса. Машина считала сколько раз подозрительные слова встречаются в спаме, а сколько раз в нормальных письмах. Перемножала эти две вероятности по формуле Байеса, складывала результаты всех слов и ставила пометку "спам".
P(A|B) = P(B|A) · P(A) / P(B) — Формула байеса
Позже спамеры научились обходить фильтр Байеса, просто вставляя в конец письма много слов с «хорошими» рейтингами. Метод получил ироничное название Отравление Байеса, а фильтровать спам стали другими алгоритмами. Но метод навсегда остался в учебниках как самый простой, красивый и один из первых практически полезных.
Классификация вещей является самой популярной задачей в машинном обучении. Машина учится разделять вещи по определенным факторам.
Для классификации необходим учитель, который в свою очередь разметит данные по признакам и категориям, а машина будет учиться определять данные по этим категориям. В последующем классифицировать можно будет что угодно.
Деревья решений
Для более сложных задач, в которых невозможно слепо доверять ответу машины без объяснений придумали «Деревья решений». Принцип заключается в том, что машина автоматически разделяет данные по вопросам, ответы на которые «да» или «нет». Адекватность вопросов с человеческой точки зрения может быть не совсем правильной, но машины продумывает вопросы так, чтобы разделение было самым точным.
Таким образом, получается дерево вопросов. Если уровень выше, то и будет более общий вопрос. «Деревья решений» задействованы в областях, в которых существует высокая ответственность: диагностика, медицина, финансы.
«Деревья решений» в чистом виде используют редко, как правило, они совмещаются с более крупными системами, что в сочетании даёт результат, который может превзойти нейросети.
Метод Опорных Векторов (SVM)
Самым популярным методом классической классификации является Метод Опорных Векторов (SVM). С помощью него классифицировали все виды растений, лица на фотографиях, документы по тематикам. Много лет он являлся ведущим классификатором.
Суть идеи SVM достаточно проста и заключается в следующем – он ищет, каким образом провести параллели между категориями, чтобы появился наибольший зазор.
У данной классификации существует обратная сторона – это поиск аномалий. Когда тот или иной признак объекта сильно не вписывается, он выделяется и даёт команду о том, что существуют отклонения. Научив компьютер «как правильно» автоматически получается обратный классификатор – «как неправильно».
На сегодняшний день для классификации чаще используют нейросети, так как они были изобретении именно для таких задач.
Регрессия
Регрессию сегодня используют для решения таких задач как:
- Прогноз стоимости ценных бумаг
- Анализ спроса
- Диагнозы
- Зависимости числа от времени
Сама регрессия – это классификация, которая вместо категории предсказывает число. Стоимость товара по определённым признакам, объем спроса на товар от роста компании и т.д. С помощью регрессии идеально решаются задачи, где существует зависимость от времени.
Регрессию любят использовать в финансовом секторе и аналитическом, она существует даже в Excel. Принцип работы прост, машина пытается рисовать линию, которая отражает среднюю зависимость. В отличие от человека, подсчеты происходят математически точно – считается среднее расстояние до каждой точки и пытаясь всем угодить.
Регрессия и классификация имеет схожесть, она подтверждается тем, что многие классификаторы после усовершенствования превращаются в регрессоры. К примеру, можно не просто смотреть к какому классу принадлежит объект, а запоминать, насколько он близок. Таким образом, появляется регрессия.
Более подробно о регрессии можно прочитать в статье регрессия
Обучение без учителя
Обучение без учителя изобретено немного позже, в 90-е годы 20 века. На практике оно используется реже, при этом бывают задачи, при которых выбора просто нет.
Когда нет разметки и невозможно её внедрить, можно использовать обучение без учителя, при этом на практике такой вариант не показывает хороших результатов.
Обучение без учителя используют, как метод анализа данных, а не как основной алгоритм. Человек загружает множество данных и наблюдает, появляются ли кластеры, зависимости или нет.
Кластеризация
Кластеризация разделяет объекты по неизвестному признаку, в этом случае машина самостоятельно решает как «лучше».
Сегодня кластеризацию используют для:
- Сегментации рынка (типов покупателей, лояльности)
- Объединение близких точек на карте
- Сжатие изображений
- Анализ и разметка новых данных
- Детекторы аномального поведения
Кластеризация – это классификация, но в ней нет заранее известных классов. Она сама производит поиск схожих объектов и объединяет их в кластеры. Само количество кластеров можно задать заранее, либо же можно доверить это машине. Похожие объекты машина определяет признакам, которые были ей размечены.
Хорошим примером кластеризации являются маркеры на картах. Когда необходимо найти определенное место, алгоритм группирует и выделяет их.
Для примера также можно взять сжатие изображений. Это своего рода популярная проблема. При сохранении картинки в PNG можно установить палитру, например, в 32 цвета. Таким образом, кластеризация найдёт все «примерно красные» пиксели изображения, и высчитает из них средний, заменив все красные на него, что послужит уменьшению файла.
К сожалению, существуют цвета, которые так просто не отнести к тому или иному цвету. В таком случае приходит на помощь другой популярный алгоритм кластеризации – Метод К-средних (K-Means). При применения данного метода случайным образом бросаются на палитру цветов 32 точки, которые называются центроидами. А все остальные точки относят к ближайшему центроиду он них.
Искать центроиды удобно и просто, но в реальных задачах кластеры могут быть совсем другие.
Существует ещё один метод, такой как DBSCAN, он находит скопления точек и строит вокруг них кластеры.
Как и классификация, так и кластеризация также может использоваться как детектор аномалий. В случае если поведение пользователя отличается от «нормального», то можно его заблокировать и проверить бот это или нет. При этом в машину просто выгружаются действия пользователей, а она самостоятельно анализирует признак «нормального».
Данный подход работает по сравнению с классификацией не совсем точно, но его применение возможно.
Уменьшение размерности (обобщение)
При обобщении собираются конкретные признаки в абстракции более высокого уровня. На сегодняшний день применяются для:
- Рекомендательных систем
- Красивых визуализаций
- Определении тематики и поиска похожих документов
- Анализа ложных изображений
- Риск-менеджменте
С самого начала применялись более тяжёлые методы, загружались большие количества цифр, и давалась команда найти в них интересную информацию.
В момент, когда построение графиков перестало приносить желаемый результат было принято решение научить машины искать информацию вместо людей. Таким образом, появились методы, которые в последующем назвали Dimension Reduction или Feature Learning.
Неоспоримая практическая польза данных методов в том, что существует возможность объединить несколько признаков в один и получить определённую абстракцию.
Если рассмотреть на примере собаки, то берутся данные по форме ушей, форме носа, хвоста и туловища и из этих данных машина выводит абстрактный результат в пользу той или иной породы.
При этом теряется информация о конкретной породе, но получается более новая полезная абстракция. И плюс ко всему обучение на меньшем количестве размерностей продвигается гораздо быстрее.
Данный инструмент прекрасно подошёл для определения тематики текста (Topic Modelling). Получилось абстрагироваться до уровня определённых, конкретных смыслов и это получилось сделать даже без привлечения учителя со списком категорий.
Данный алгоритм был назван Латентно-семантический анализ (LSA), идея которого заключалась в том, что частота прочтения того или иного слова в тексте зависит от тематики. При исследовании научных статей, в них встречается больше технических терминов, если анализируются новости о политике, то в тексте часто встречаются имена политиков. При этом возможно было бы взять слова из статьи и кластеризовать её, но в таком случае были бы потеряны конкретные связи между словами. Такие слова, как например, батарейка и аккумулятор, в разных документах данные слова означают одно и то же.
К сожалению, точность такой системы оставляет желать лучшего.
Когда необходимо объединить слова и документы в один признак, для того чтобы не терять связи, был придуман метод, который был назван Сингулярное разложение (SVD). Данный метод достаточно легко справляется с задачей, он выявляет полезные тематические кластеры из слов, которые встречаются вместе.
Ещё одно популярное применение метода уменьшения размерности было найдено в рекомендательных системах и коллаборативной фильтрации. Как оказалось, если абстрагировать данными системами оценки, то выходит хорошая система рекомендаций того или иного явления, услуги или товара, в общем чего угодно.
Система которая получилась, тяжело воспринимается человеком, при этом когда исследователями были более пристально рассмотрены новые признаки, было обнаружено, что какие-то из них явно коррелируют с возрастом пользователя, определёнными жанрами кино и т.д.
Машина, которая не знала ничего кроме оценок пользователей, смогла достичь очень высоких результатов, совершенно не понимая их.
Метод поиска правил (ассоциации)
Суть данного метода заключается в поиске ассоциаций и используется для:
- Прогноза акций и распродаж
- Анализа товаров, покупаемых вместе
- Расстановка товара на полках
- Анализ паттернов поведения на сайтах
В данном подходе применяются все методы анализа стратегий маркетинга и других подобных последовательностей.
Допустим, покупатель взял в дальнем углу магазина бутылку воды и после следует на кассу. Возможно, ли поставить на его пути то, что обычно люди берут вместе с водой? Наверняка существуют товары, которые очевидно покупаются вместе. Данный факт не всегда может быть очевиден, при этом правильная расстановка товара на полках может принести дополнительную прибыль.
По такому же принципу работают и интернет-магазины, но у них задача предсказать за каким товаром покупатель вернётся в следующий раз?
Поиск правил является не самой лучшей среди всех методов. Классический способ заключается в переборе всех купленных товаров с помощью деревьев и множеств. А алгоритмы, которые работают, не умеют обобщать или воспроизводить информацию на новых примерах.