какие задачи решает машинное обучение
Machine Learning – не только нейронки
Нейронные сети и глубокое обучение (deep learning) у всех на слуху, но нейросети – это лишь подобласть такого обширного предмета, как машинное обучение (machine learning). Существует несколько сотен других алгоритмов, которые способны быстро и эффективно решать задачи искусственного интеллекта и в большинстве случаев являются более интерпретируемыми для человека. В этой статье рассмотрим алгоритмы классического машинного обучения, принцип работы нейросетей, подготовку данных для обучения моделей и задачи, которые решают с помощью искусственного интеллекта.
Основные задачи машинного обучения
Восстановление регрессии (прогнозирования) – построение модели, способной предсказывать численную величину на основе набора признаков объекта.
Классификация – определение категории объекта на основе его признаков.
Кластеризация – распределение объектов.
Допустим, есть набор данных со статистикой по приложениям. В нем есть следующие сведения: размер, категория, количество скачиваний, количество отзывов, рейтинг, возрастной рейтинг, жанр и цена. С помощью этого набора данных и машинного обучения можно решить такие задачи:
Прогнозирование рейтинга приложения на основе признаков: размер, категория, возрастной рейтинг, жанр и цена – задача регрессии.
Определение категории приложения на основе набора признаков: размер, возрастной рейтинг, жанр и цена – задача классификации.
Разбиение приложений на группы на основании множества признаков (например, количество отзывов, скачиваний, рейтинга) таким образом, чтобы приложения внутри группы были более похожи друг на друга, чем приложения разных групп.
Нейронные сети (многослойный перцептрон)
Существует мнение, что лучшие идеи для изобретений человек заимствует у природы. Нейронные сети – это именно тот случай, ведь сама концепция нейросетей базируется на функциональных особенностях головного мозга.
Принцип работы
Есть определенное количество нейронов, которые между собой связаны и взаимодействуют друг с другом путем передачи сигналов. Также есть рецепторы, которые получают информацию, поступающую извне, и исполнительный орган, на который приходит итоговый сигнал. По схожему принципу работают искусственные нейросети: есть несколько слоев с нейронами и связи между ними (каждая связь имеет свой весовой коэффициент). По связям передаются сигналы в виде численных значений, первый слой выполняет собой роль рецепторов, то есть получает набор признаков для обучения, и есть выходной слой, который выдает ответ.
Нейронные связи в головном мозге («Создаем нейронную сеть», Тарик Рашид)
Пример искусственной трехслойной нейросети («Создаем нейронную сеть», Тарик Рашид)
Каждый слой нейросети оперирует разными представлениями о данных. На рисунке ниже можно увидеть пример использованиям глубокого обучения (нейросети) для распознавания образа на картинке. На входной слой нам поступают пиксели изображений, далее после вычислений между входным и первым скрытым слоем мы получаем границы, на втором скрытом слое – контуры, на третьем – части объектов, на выходном – вероятности принадлежности изображения к каждому типу объектов.
Пример использования нейросети для распознавания образа ( «Глубокое обучение», Ян Гудфеллоу)
Как настраивать
Настраивается путем задания количества узлов, скрытых слоев и выбора функции активации. В искусственных нейронных сетях функция активации нейрона отвечает за выходной сигнал, который определяется входным сигналом или набором входных сигналов.
Задачи: классификация, регрессия, кластеризация.
Классические алгоритмы машинного обучения
K-ближайших соседей
Метод K-ближайших соседей – простой и эффективный алгоритм, его можно описать известной поговоркой: “Скажи мне, кто твой друг, и я скажу, кто ты”.
Принцип работы
Пусть имеется набор данных с заданными классами. Мы можем определить класс неизвестного объекта, если рассмотрим определенное количество ближайших объектов (k) и присвоим тот класс, который имеет большинство “соседей”. Посмотрим на рисунок ниже.
Есть набор точек с двумя классами: синие крестики и красные кружки. Мы хотим определить, к какому классу относится неизвестная зеленая точка. Для этого мы берем k ближайших соседей, в данном случае 3, и смотрим, к каким классам они относятся. Из трех ближайших соседей больше оказалось синих крестиков, соответственно, мы можем предположить, что зеленая точка также, скорее всего, относится к этому классу.
Как настраивать
Необходимо подобрать параметр k (количество ближайших соседей) и метрику для измерения расстояний между объектами.
Задачи: классификация, также может применяться и для задач регрессии.
Линейная регрессия
Линейная регрессия – простая и эффективная модель машинного обучения, способная решать задачи быстро и недорого.
Принцип работы
Модель линейной регрессии можно описать уравнением
Здесь x – это значения признаков, y – целевая переменная, a – весовые коэффициенты признаков. При обучении модели весовые коэффициенты подбираются таким образом, чтобы как можно лучше описывалась линейная зависимость признаков от целевой переменной.
Пример: задача предсказания стоимости квартиры в зависимости от площади и удаленности от метро в минутах. Целевой переменной (y) будет являться стоимость, а признаками (x) – площадь и удаленность.
На рисунке ниже также представлен пример построения линейной регрессии. Красная прямая более точно описывает линейную зависимость x от y.
Как настраивать
Для многих моделей Machine Learning, в частности и для линейной регрессии, можно улучшить итоговое качество с помощью регуляризации.
Регуляризация в статистике, машинном обучении, теории обратных задач — метод добавления некоторых дополнительных ограничений к условию с целью решить некорректно поставленную задачу или предотвратить переобучение, то есть ситуацию, когда модель хорошо показывает себя на тренировочный данных, но перестаёт работать на новых.
Распространенные методы регуляризации для повышения качества модели линейной регрессии:
Ridge — один из методов понижения размерности. Применяется для борьбы с переизбыточностью данных, когда независимые переменные коррелируют друг с другом (мультиколлинеарность), вследствие чего проявляется неустойчивость оценок коэффициентов линейной регрессии.
LASSO — также как и Ridge, применяется для борьбы с переизбыточностью данных.
Elastic-Net — модель регрессии с двумя регуляризаторами L1, L2. Частными случаями являются модели LASSO L1 = 0 и Ridge регрессии L2 = 0.
Задачи: регрессия.
Логистическая регрессия
Логистическая регрессия – также простая и эффективная модель машинного обучения, способная решать задачи быстро и недорого.
Принцип работы
Указанная выше сумма проходит через функцию сигмоиды, которая возвращает число от 0 до 1, характеризующее вероятность отнесения объекта к классу 1. Пример: логистическую регрессию часто применяют в задачах кредитного скоринга, когда по определенным данным о клиенте нужно определить, стоит ли выдавать ему кредит.
Иллюстрация алгоритмов линейной и логистической регрессии (источник)
Как настраивать
Задачи: классификация.
Метод опорных векторов (SVM)
Принцип работы
Чтобы лучше всего понять алгоритм метода опорных векторов, рассмотрим рисунок. На рисунке приведен пример двух линейно разделимых классов в двумерном пространстве. Идея алгоритма заключается в нахождении оптимальной разделяющей прямой (или гиперплоскости для более высоких пространств) для отделения объектов одного класса от другого. Пунктирные линии выделяют разделяющую полосу и проводятся через объекты, которые называют опорными. Чем шире разделяющая полоса, тем качественнее модель SVM. Чтобы определить класс объекта, достаточно определить, с какой стороны гиперплоскости он находится.
Как настраивать
Необходимо подобрать оптимальное ядро (функцию переводящую признаковое пространство в более высокую размерность), если линейная зависимость слабо выражена.
Задачи: классификация и регрессия.
Сравнение классических алгоритмов с нейросетью
Для примера мы взяли датасет со статистикой приложений в Play Market. Датасет содержит следующие данные: размер приложения, возрастной рейтинг, количество скачиваний, жанр, категория и др. На данном датасете были обучены модели: линейная регрессия, метод опорных векторов, нейронная сеть (многослойный перцептрон).
В ходе экспериментов были подобраны следующие параметры для моделей машинного обучения:
Линейная регрессия – модели линейной регрессии с регуляризацией не показали результат, превосходящий качество классической линейной регрессии.
Метод опорных векторов – модель метода опорных векторов с RBF-ядром показала лучший результат по сравнению с другими ядрами.
Многослойный перцептрон – оптимальный результат показала модель с 4 слоями, 300 нейронами и функций активацией ReLu. При попытках увеличить количество слоев и нейронов прирост качества не наблюдался.
Решена задача прогнозирования потенциального рейтинга приложения в зависимости от его признаков.
Результаты ошибки среднего отклонения от истинного значения целевой переменной в процентах для каждой модели:
Линейная регрессия – 6.13 %
Метод опорных векторов – 6.01%
Нейронная сеть – 6.41%
Таким образом, классические алгоритмы машинного обучения и нейросети показали приблизительно одинаковое качество. Это связано с тем, что нейросети хорошо обучаются на датасетах с большим размером и обычно применяются для решения задач, где зависимость в данных очень сложна. Поэтому для решения данной задачи можно обойтись применением классических алгоритмов и не прибегать к использованию нейросетей.
На гистограмме ниже представлены итоговые весовые коэффициенты a, полученные при обучении модели линейной регрессии. Чем больше столбик, тем выше влияние признака на целевую переменную. Если столбик направлен вверх, то он оказывает положительное влияние на рост целевой переменной, если вниз – то отрицательное. Другими словами, если приложение имеет жанр “Other” или “Tools”, то, скорее всего, его рейтинг будет высоким, а если у него категория “FAMILY” или “GAME” – то, вероятно, низким. Данная интерпретация весовых коэффициентов линейной регрессии бывает очень полезной при анализе данных.
Гистограмма значений коэффициентов линейной регрессии
Больше наших статей по машинному обучению и обработке изображений:
Задачи машинного обучения в ML.NET
Задача машинного обучения — это тип прогноза или вывода, основанный на возникшей проблеме или на вопросе, а также доступных данных. Например, задача классификации назначает данные категориям, а задача кластеризации группирует данные в соответствии со сходством.
Задачи машинного обучения полагаются на шаблоны в данных, а не на явное программирование.
В этой статье описываются разные задачи машинного обучения, которые вы можете выбрать в ML.NET, и распространенные варианты их использования.
Определив задачу для своего сценария, выберите наилучший алгоритм для обучения модели. Далее перечислены доступные алгоритмы для каждой задачи.
Двоичная классификация
Задача контролируемого машинного обучения, которая прогнозирует распределение элементов данных по двум классам (категориям). На вход алгоритма классификации подается набор примеров с метками, каждая из которых представляет собой целое число 0 или 1. Результатом работы алгоритма двоичной классификации является классификатор, который умеет прогнозировать класс для новых экземпляров без метки. Вот несколько примеров для сценария двоичной классификации:
Дополнительные сведения см. в статье о двоичной классификации в Википедии.
Алгоритмы обучения двоичной классификации
Вы можете обучить модель двоичной классификации, используя следующие алгоритмы:
Входные и выходные данные двоичной классификации
Для получения наилучших результатов обучения двоичной классификации обучающие данные должны быть сбалансированы (т. е. число положительных и отрицательных обучающих данных должно быть одинаковым). Отсутствующие значения необходимо обработать до обучения.
Входные данные столбца меток должны иметь тип Boolean. Входные данные столбца функций должны быть вектором Single фиксированного размера.
С помощью этих алгоритмов обучения выводятся следующие столбцы:
Многоклассовая классификация
Задача контролируемого машинного обучения, которая прогнозирует распределение экземпляров данных по нескольким классам (категориям). На вход алгоритма классификации подается набор примеров с метками. Каждая метка обычно запускается как текст. Затем она запускается через TermTransform, который преобразует ее в тип ключа (числовой). Результатом работы алгоритма классификации является классификатор, который умеет прогнозировать класс для новых экземпляров без метки. Вот несколько примеров для сценария многоклассовой классификации:
Дополнительные сведения см. в статье о многоклассовой классификации в Википедии.
В рамках стратегии one-vs.-rest обновляется любой алгоритм обучения двоичной классификации для работы с многоклассовыми наборами данных. Подробнее см. в Википедии.
Алгоритмы обучения многоклассовой классификации
Вы можете обучить модель многоклассовой классификации, используя следующие алгоритмы:
Входные и выходные данные многоклассовой классификации
Входные данные столбца меток должны иметь тип key. Столбец функций должен быть вектором Single фиксированного размера.
Этот алгоритм обучения выводит приведенные ниже данные.
Имя выходных данных | Type | Описание |
---|---|---|
Score | Вектор Single | Оценки всех классов. Более высокое значение означает большую вероятность попадания в связанный класс. Если i-й элемент имеет самое большое значение, индекс прогнозируемой метки будет равен i. Обратите внимание, что индекс i отсчитывается от нуля. |
PredictedLabel | Тип key | Индекс прогнозируемой метки. Если его значение равно i, фактическая метка будет i-й категорией во входном типе метки с ключевым значением. |
Регрессия
Задача контролируемого машинного обучения, которая прогнозирует значение метки по набору связанных компонентов. Метка здесь может принимать любое значение, а не просто выбирается из конечного набора значений, как в задачах классификации. Алгоритмы регрессии моделируют зависимость меток от связанных компонентов, чтобы определить закономерности изменения меток при разных значениях компонентов. На вход алгоритма регрессии подается набор примеров с метками известных значений. Результатом работы алгоритма регрессии является функция, которая умеет прогнозировать значения метки для любого нового набора входных компонентов. Вот несколько примеров для сценария регрессии:
Алгоритмы обучения регрессии
Вы можете обучить модель регрессии, используя следующие алгоритмы:
Входные и выходные данные регрессии
Входные данные столбца меток должны иметь тип Single.
Алгоритмы обучения для этой задачи выводят приведенные ниже данные.
Имя выходных данных | Type | Описание |
---|---|---|
Score | Single | Необработанное оценка, спрогнозированная моделью. |
Кластеризация
Задача неконтролируемого машинного обучения, которая группирует отдельные экземпляры данных в кластеры со сходными характеристиками. Кластеризацию можно также использовать для определения в наборе данных связей, которые невозможно логически отследить просмотром или наблюдением данных. Входные и выходные данные для алгоритма кластеризации зависят от выбранного метода. Вы можете выбрать подход на основе распространения, центроида, возможности подключения или плотности. ML.NET в настоящее время поддерживает только кластеризацию методом К-средних на основе центроида. Примеры сценариев для использования кластеризации:
Алгоритм обучения кластеризации
Вы можете обучить модель кластеризации, используя следующие алгоритмы:
Входные и выходные данные кластеризации
Входные данные функций должны иметь тип Single. Метки не требуются.
Этот алгоритм обучения выводит приведенные ниже данные.
Имя выходных данных | Type | Описание |
---|---|---|
Score | Вектор Single | Расстояния от указанной точки данных до центроидов всех кластеров. |
PredictedLabel | Тип key | Индекс ближайшего кластера, спрогнозированный моделью. |
Обнаружение аномалий
Эта задача создает модель обнаружения аномалий с помощью анализа главных компонентов (PCA). Обнаружение аномалий на основе PCA позволяет создавать модели в сценариях, где легко получить данные для обучения из одного класса, такого как допустимые транзакции, однако получить достаточную выборку аномальных значений затруднительно.
Общепринятый метод в машинном обучении, PCA, часто используется в разведочном анализе данных, так как он раскрывает внутреннюю структуру данных и объясняет их вариативность. PCA выполняется путем анализа данных с несколькими переменными. Он выполняет поиск корреляции между переменными и определяет сочетание значений, которые лучше всего фиксируют различия результатов. Эти объединенные значения компонентов используются для создания более компактных компонентов, называемых главными компонентами.
Обнаружение аномалий включает в себя ряд важных задач машинного обучения:
Так как аномалии по определению довольно-таки редкие события, со сборкой репрезентативной выборки данных, используемых для моделирования, могут быть трудности. Алгоритмы, включенные в эту категорию, специально разработаны для решения основных проблем разработки и обучения моделей с использованием несбалансированных наборов данных.
Алгоритм обучения обнаружению аномалий
Вы можете обучить модель обнаружения аномалий, используя следующие алгоритмы:
Входные и выходные данные обнаружения аномалий
Входные данные функций должны быть вектором Single фиксированного размера.
Этот алгоритм обучения выводит приведенные ниже данные.
Имя выходных данных | Type | Описание |
---|---|---|
Score | Single | Неотрицательная неограниченная оценка, вычисленная моделью обнаружения аномалий |
PredictedLabel | Boolean | Значение true/false, указывающее, являются ли входные данные аномалией (PredictedLabel=true) или нет (PredictedLabel=false) |
Ранжирование
Задача ранжирования создает средство ранжирования на основе набора примеров с метками. Этот набор примеров состоит из групп экземпляров, которые могут быть оценены с заданными критериями. Метки ранжирования для каждого экземпляра — < 0, 1, 2, 3, 4 >. Средство ранжирования обучается ранжировать новые группы экземпляров с неизвестными оценками для каждого экземпляра. Алгоритмы обучения ранжированию ML.NET основаны на ранжировании машинного обучения.
Алгоритмы обучения ранжированию
Вы можете обучить модель ранжирования, используя следующие алгоритмы:
Входные и выходные данные ранжирования
Входные данные метки должны иметь тип key или Single. Значение метки определяет релевантность, где более высокие значения означают более высокую степень релевантности. Если метка имеет тип key, индексом ключа будет значение релевантности, где наименьший индекс является минимально релевантным. Если метка имеет тип Single, более высокие значения означают более высокую степень релевантности.
Данные должны быть вектором Single фиксированного размера, а входной столбец группы строк должен иметь тип key.
Этот алгоритм обучения выводит приведенные ниже данные.
Имя выходных данных | Type | Описание |
---|---|---|
Score | Single | Неограниченная оценка, вычисленная моделью для определения прогноза |
Рекомендация
Задача рекомендации позволяет создать список рекомендуемых продуктов или служб. ML.NET использует факторизацию матрицы (MF), алгоритм совместной фильтрации для рекомендаций при наличии исторических данных о рейтинге продуктов в вашем каталоге. Например, у вас есть исторические данные о рейтинге фильмов для ваших пользователей, и вы хотите рекомендовать другие фильмы, которые они, вероятно, просмотрят следующими.
Алгоритмы обучения рекомендациям
Вы можете обучить модель рекомендаций, используя следующий алгоритм:
Прогнозирование
Задача прогнозирования использует предыдущие данные временных рядов, чтобы делать прогнозы о будущем поведении. Сценарии, применимые к прогнозированию, включают прогнозы погоды, прогнозы сезонных продаж и прогнозное обслуживание.
Алгоритмы обучения для прогнозирования
Вы можете обучить модель прогнозирования, используя следующий алгоритм.
Классификация изображений
Задача контролируемого машинного обучения, которая прогнозирует распределение изображений по нескольким классам (категориям). Входные данные — это набор помеченных примеров. Каждая метка обычно запускается как текст. Затем она запускается через TermTransform, который преобразует ее в тип ключа (числовой). Результатом работы алгоритма классификации изображений является классификатор, который можно использовать для прогнозирования класса новых изображений. Задача классификации изображений — это тип классификации по нескольким классам. Вот несколько примеров для сценария классификации изображений:
Алгоритмы обучения классификации изображений
Вы можете обучить модель классификации изображений, используя следующие алгоритмы обучения:
Входные и выходные данные классификации изображений
Входные данные столбца меток должны иметь тип key. Столбец функции должен быть вектором с переменным размером Byte.
Этот алгоритм обучения выводит следующие столбцы:
Имя выходных данных | Type | Описание |
---|---|---|
Score | Single | Оценки всех классов. Более высокое значение означает большую вероятность попадания в связанный класс. Если i-й элемент имеет самое большое значение, индекс прогнозируемой метки будет равен i. Обратите внимание, что индекс i отсчитывается от нуля. |
PredictedLabel | Тип key | Индекс прогнозируемой метки. Если его значение равно i, фактическая метка будет i-й категорией во входном типе метки с ключевым значением. |
Обнаружение объектов
Задача контролируемого машинного обучения, которая используется для прогнозирования класса (категории) изображения, а также предоставляет ограничивающий прямоугольник для категории внутри изображения. Вместо классификации одного объекта в изображении, обнаружение объектов может определить несколько объектов в изображении. Примеры обнаружения объектов:
Обучение модели обнаружения объектов в настоящее время доступно только в Model Builder с помощью Машинного обучения Azure.