Перейти к основному содержимому

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

Признаки, отклики и обучающая выборка

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

Каждый объект описывается парой (x,y)(\mathbf{x},y), где

  • x\mathbf{x} - входная информация, которую мы знаем об объекте;

  • yy - выходная информация, которую мы хотим предсказать для объекта по x\mathbf{x}.

При этом для удобства обработки входную информацию в большинстве случаев кодируют некоторым вектором фиксированной длины xRD\mathbf{x}\in\mathbb{R}^D, где каждый элемент этого вектора называют признаком (feature), а весь вектор x\mathbf{x} - вектором признаков (feature vector). Номер признака далее будем обозначать верхним индексом: x=[x1,x2,...xD]\mathbf{x}=[x^1,x^2,...x^D].

Выходная информация y называют откликом или целевой переменной (target).

В наиболее типичной ситуации нам известна размеченная выборка из N объектов:

(x1,y1),(x2,y2),...(xN,yN)(\mathbf{x}_1,y_1), (\mathbf{x}_2,y_2), ... (\mathbf{x}_N,y_N)

Такая задача называется задачей обучения с учителем (supervised learning), поскольку модель может использовать правильную "учительскую" разметку для набора из NN объектов для настройки своих параметров. Учительская разметка получается либо в результате ручной разметки экспертами предметной области, либо в результате логирования входных и выходных данных (которые мы хотим предсказать по входным в будущем) заранее - например, можно логировать, какие письма пользователь самостоятельно разметил как спам, чтобы в будущем научиться заранее предугадывать его предпочтения.

Типы задач обучения с учителем

В зависимости от типа отклика, задачи обучения с учителем разделяются на следующие категории:

  • регрессия (regression): отклик представляет собой число yRy\in\mathbb{R}, например, предсказываем время пути, фокусное расстояние в фотоаппарате или стоимость акции на следующий день.

  • векторная регрессия: отклик представляет собой вектор ответов yRMy\in \mathbb{R}^M, например, когда прогнозируем будущую стоимость не одной акции, а нескольких акций одновременно.

  • ранжирование (ranking): отклик принимает вещественные значения yRy\in\mathbb{R}, однако при фактическом использовании важны не абсолютные значения отклика, а относительные. Например, в задаче ранжирования документов в поисковой системе для каждой пары (пара поисковый запрос-документ) определяется степень релевантности документа поисковому запросу, по которой документы упорядочиваются в поисковой выдаче.

  • классификация (classification): отклик принимает одно из C дискретных значений - y{1,2,...C}y\in\{1,2,...C\}. Например, определение человека по фото. Частным случаем классификации является бинарная классификация (binary classification), когда классов всего два. В этом случае один из них называют положительным, а другой отрицательным, и y{+1,1}y\in\{+1,-1\}.

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

Другие виды откликов.

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

Пример задачи регрессии

Ниже приведён пример задачи регрессии, в которой по одномерному признаку по оси X необходимо предсказать вещественный отклик по оси Y. Обучающая выборка обозначена оранжевыми точками, по которым требуется восстановить зависимость y^=f(x)\hat{y}=f(\mathbf{x}), чтобы уметь прогнозировать целевую величину yy для любых новых объектов x\mathbf{x}. Как видим, это можно делать разными способами с разными ошибками прогнозов.

regression.png

Пример задачи классификации

Далее приведен пример задачи классификации, в которой каждый объект описывается двумя признаками x1x^1 и x2x^2, обозначенными по осям X и Y. Каждый объект обучающей выборки изображён точкой на графике. Целевая величина для прогнозирования представляет собой один из трех классов, каждый из которых показан своим цветом. По этим точкам требуется восстановить общую закономерность соотнесения любой точки (x1,x2)(x^1,x^2) одному из классов.

classification.png

Специальные постановки задачи обучения с учителем

Если помимо обучающих объектов, заранее известны признаковые описания xN+1,...xN+M\mathbf{x}_{N+1},...\mathbf{x}_{N+M} для тестовых объектов, для которых требуется построить прогноз в будущем, то такая задача называется трансдуктивным обучением (transductive learning). Дополнительное знание о тестовых объектов позволяет более точно настроить модель именно для этих объектов.

Существуют ситуации, когда для объектов обучающей выборки известны не только целевые переменные yy, но и пояснения zz (привилегированная информация, priveledged information), почему отклик именно такой. Рассмотрим в качестве примера задачу медицинской классификации, в которой для пациентов с заданными признаками (такими как пол, возраст, история визитов к врачу, общее состояние, текущие жалобы) требуется поставить диагноз болезни. В этой задаче разметка (итоговый диагноз врача), может содержать дополнительные пояснения z\mathbf{z}, характеризующие комментарии врача, почему он поставил тот или иной диагноз. В этом случае обучающая выборка состоит уже из троек (входные признаки, отклик, пояснения):

(x1,y1,z1),(x2,y2,z2),...(xN,yN,zN)(\mathbf{x}_1,y_1,\mathbf{z}_1), (\mathbf{x}_2,y_2,\mathbf{z}_2), ... (\mathbf{x}_N,y_N,\mathbf{z}_N)

Требуется построить модель, которая как и раньше, по входным признакам будет предсказывать отклик y^=f(x)\hat{y}=f(\mathbf{x}) уже для новых объектов, но для более точной настройки модель может использовать ещё и пояснения zz, доступные в обучающей выборке. Настройка модели в таком случае называется learning using priviledged information (LUPI).