Спонсор: Intel
Новосибирский Государственный Университет
Опубликован: 20.08.2013 | Доступ: свободный | Студентов: 673 / 14 | Длительность: 14:11:00
Лекция 2:

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

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Аннотация: В лекции рассматриваются основные задачи машинного обучения, приведены основные методы решения этих задач.

Презентацию к лекции Вы можете скачать здесь.

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

Машинное обучение (machine learning) – это область научного знания, имеющая дело с алгоритмами, "способными обучаться". Необходимость использования методов машинного обучения объясняется тем, что для многих сложных – "интеллектуальных" – задач (например, распознавание рукописного текста, речи и т. п.) очень сложно (или даже невозможно) разработать "явный" алгоритм их решения, однако часто можно научить компьютер обучиться решению этих задач. Одним из первых, кто использовал термин "машинное обучение", был изобретатель первой самообучающейся компьютерной программы игры в шашки А. Л. Самуэль в 1959 г. [ 10 ]. Под обучением он понимал процесс, в результате которого компьютер способен показать поведение, которое в нее не было заложено "явно". Это определение не выдерживает критики, так как не понятно, что означает наречие "явно". Более точное определение дал намного позже Т. М. Митчелл [ 9 ]: говорят, что компьютерная программа обучается на основе опыта E по отношению к некоторому классу задач T и меры качества P, если качество решения задач из T, измеренное на основе P, улучшается с приобретением опыта E.

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

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

Различают дедуктивное и индуктивное обучение. В задачах дедуктивного обучения имеются знания, каким-либо образом формализованные. Требуется вывести из них правило, применительное к конкретному случаю. Дедуктивное обучение относят к области экспертных систем и здесь рассматриваться не будет. Основная задача индуктивного обучения заключается в восстановлении некоторой зависимости по эмпирическим данным. Индуктивное обучение подразделяется на обучение с учителем, обучение без учителя, обучение с подкреплением (reinforcement learning), активное обучение и др.

Обстоятельными учебниками по машинному обучению являются [ 1 , 8 , 9 ] и др. Также рекомендуем русскоязычный ресурс www.machinelearning.ru и сайт курса по машинному обучению одного из авторов настоящего пособия www.uic.unn.ru/~zny/ml.

1.1. Задача обучения с учителем

1.1.1. Постановка задачи обучения с учителем

Рассмотрим постановку задачи обучения с учителем (supervised learning). Пусть \mathbb{X} - некоторое множество, элементы которого называются объектами или примерами, ситуациями, входами (samples); а \mathbb{Y} - множество, элементы которого называются ответами или откликами, метками, выходами (responses). Имеется некоторая зависимость (детерминированная или вероятностная), позволяющая по x \in \mathbb{X} предсказать y \in \mathbb{Y}. В частности, если зависимость детерминированная, то существует функция f^*:\mathbb{X} \rightarrow \mathbb{Y}. Зависимость известна только на объектах обучающей выборки

\{(x^{(i)},y^{(i)}):x^{(i)} \in \mathbb{X},y^{(i)} \in \mathbb{Y} (i = 1,...,N)\}.

Упорядоченная пара "объект-ответ" (х^{(i)},y^{(i )}) \in \mathbb{X} \times \mathbb{Y} называется прецедентом.

Задача обучения с учителем заключается в восстановлении зависимости между входом и выходом по имеющейся обучающей выборке, т. е. необходимо построить функцию (решающее правило) f:\mathbb{X} \rightarrow \mathbb{Y}, по новым объектам x \in \mathbb{X} предсказывающую ответ f(x) \in \mathbb{Y}:

y = f(x) \approx f^*(x).

Функция f при этом выбирается из некоторого множества возможных моделей \mathbb{F}. Процесс нахождения f называется обучением (learning), а также настройкой или подгонкой (fitting) модели.

Алгоритм построения функции f \in \mathbb{F} по заданной обучающей выборке называется алгоритмом обучения. Некоторый класс алгоритмов называется методом обучения. Иногда термины "алгоритм" и "метод" используются как синонимы.

Алгоритмы обучения, конечно же, оперируют не с самими объектами, а их описаниями. Наиболее распространенным является признаковое описание. При таком подходе объект x представляется как вектор x = (x_{1}, x_{2},...,x_{d}), где x_{j} \in Q_{j} (j = 1,2,...,d). Таким образом,

\mathbb{X} = Q_{1} \times Q_{2} \times ... \times Q_{d}

Компонента x_{j} называется j-м признаком, или свойством (feature), или атрибутом объекта x. Если Q_{j} = \mathbb{R}, то j-й признак называется количественным или вещественным. Если Q_{j} конечно, то j-й признак называется номинальным, или категориальным, или фактором. Если при этом \mid Q_{j} \mid = 2, то признак называется бинарным. Если Q_{j} конечно и упорядочено, то признак называется порядковым. Множество \mathbb{X} называется пространством признаков.

В зависимости от того, какие значения может принимать ответ y, различают разные классы задач обучения с учителем. Если \mathbb{Y} = \mathbb{R}, то говорят о задаче восстановления регрессии. Решающее правило f при этом называют регрессией. Если \mathbb{Y} конечно, например, \mathbb{Y} = \{1,2,...,K\}, то говорят о задаче классификации. Решающее правило f при этом называют классификатором. В последнем случае y можно интерпретировать как номер класса, к которому принадлежит объект x. К задачам обучения относят также задачи ранжирования, прогнозирования и др.

Сделаем два замечания, касающиеся качества решения задачи.

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

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

Пусть для задачи обучения с учителем определена функция потерь, или функцию штрафа, L(y,y') = L(y,f(x)), представляющая собой неотрицательную функцию от истинного значения выхода y и предсказанного с помощью модели значения y'=f(x). Например, для задачи восстановления регрессии часто используют квадратичный штраф

L(y,f(x)) = \frac{1}{2}(y-f(x))^2

или абсолютный штраф:

L(y,f(x)) = \mid y - f(x) \mid.

Для задачи классификации можно взять ошибку предсказания

L(y,f(x)) = I(y \ne f(x)),

где I(\cdot) - индикаторная функция:

I(условие)=\begin{cases}
1,&\text{условие выполнено,}\\
0,&\text{условие не выполнено.}
\end{cases}

Математическое ожидание функции потерь

R(f) = E L(Y,f(X))

называется средней ошибкой, или средним риском. В качестве решающего правила разумно взять функцию f^*, минимизирующую эту ошибку:

f^* = argmin_{f \in \mathbb{F}}R(f) = argmin_{f \in \mathbb{F}}EL(Y,f(X)), ( 1)

Часто закон распределения совместной случайной величины (X, Y) не известен, поэтому данный критерий не применим. Вместо среднего риска R(f) рассмотрим эмпирический риск, или эмпирическую ошибку,

\hat{R}(f) = \frac{1}{N} \sum_{i=1}^N {L(y^{(i)},f(x^{(i)}))}.

Критерий (1) заменим следующим:

f = agrmin_{f \in \mathbb{F}} \sum_{i=1}^N{L(y^{(i)},f(x^{(i)}))} ( 2)

где прецеденты (x^{(i)},y^{(i)}),(i=1,2,...,N) составляют обучающую выборку.

В итоге задача свелась к отысканию функции f из допустимого множества \mathbb{F}, удовлетворяющей условию (2), при условии, что \mathbb{F} и L фиксированы и известны. Это так называемый принцип минимизации эмпирического риска. Как правило, класс \mathbb{F} параметризован, т. е. есть имеется его описание в вида \mathbb{F} = \{f(x) = f(x,\theta): \theta \in \Theta, где \Theta - некоторое известное множество. В процессе настройки модели алгоритмом обучения выбираются значения набора параметров \Theta, обеспечивающих точное или приближенное выполнение условия (2), т. е. минимизации ошибки на прецедентах обучающей выборки. Однако данное условие не подходит для оценки обобщающей способности алгоритма. Более того, значения \hat{R}(f) и R(f) могут различаться значительно. Ситуация, когда \hat{R}(f) мало, а R(f) чересчур велико, называется переобучением.

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

Другим практическим методом оценки обобщающей способности решающего правила является метод q -кратного перекрестного (скользящего) контроля (CV - cross validation). Все имеющиеся данные разбиваются на q примерно равных (по числу прецедентов) частей. Далее, отделяя из выборки одну за другой каждую из этих частей, используют оставшиеся данные (составленные из q — 1 частей) как обучающую выборку, а отделенную часть - как тестовую. Итоговая оценка ошибки определяется как средняя по всем разбиениям. Заметим, что само итоговое решающее правило строится по всей имеющейся обучающей выборке.

Часто используют значения q = 5 или 10 . Если q = N — 1, то говорят о методе скльзящего контроля с одним отделяемым объектом (LOO - leave-one-out estimate).

1.1.2. Метод k ближайших соседей

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

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

Опишем метод более формально. ПустьN_{k}(x) - множество k ближайших к x объектов из обучающей выборки. Тогда для задачи классификации положим

f(x) = arg \min_{y} \mid \{i:y^{(i)} = y,x^{(i)} \in N_{k}(x)\}\mid,

а для задачи восстановления регрессии -

f(x) = \frac{1}{k} \sum_{x^{(i)} \in N_{k}(x)}{y^{(i)}}.

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

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

\rho(x,x') = \sqrt{\sum_{j=1}^d {\mid x_{j} - x_{j}' \mid ^2}},

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

\rho(x,x') = \sum_{j=1}^d {I( x_{j} \ne x_{j}')}.

В общем случае используют функцию

\rho(x,x') = \sum_{j=1}^d {\alpha_{j}\rho_{j}(x_{j},x_{j}')},

где \alpha_{j} - неотрицательные параметры, \rho_{j}(x,x') = (x_{j} - x_{j}')^2 для качественных переменных, \rho_{j}(x,x') = I( x_{j} \ne x_{j}') для качественных переменных. Заметим, что функция расстояния не обязательно должна быть метрикой и неравенство треугольника может быть не выполнено.

Для повышения точности модели также могут использоваться специальные алгоритмы обучения метрики расстояния (например, Large Margin Nearest Neighbour [ 8 ]).

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

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Александра Максимова
Александра Максимова

При прохождении теста 1 в нем оказались вопросы, который во-первых в 1 лекции не рассматривались, во-вторых, оказалось, что вопрос был рассмаотрен в самостоятельно работе №2. Это значит, что их нужно выполнить перед прохождением теста? или это ошибка?
 

Алена Борисова
Алена Борисова

В лекции по обработке полутоновых изображений (http://www.intuit.ru/studies/courses/10621/1105/lecture/17979?page=2) увидела следующий фильтр:


    \begin{array}{|c|c|c|}
    \hline \\
    0 & 0 & 0 \\
    \hline \\
    0 & 2 & 0 \\
    \hline \\
    0 & 0 & 0 \\
    \hline 
    \end{array} - \frac{1}{9} \begin{array}{|c|c|c|}
    \hline \\
    0 & 0 & 0 \\
    \hline \\
    0 & 1 & 0 \\
    \hline \\
    0 & 0 & 0 \\
    \hline 
    \end{array}

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

Что вижу я в конструкции фильтра (скорее всего ошибочно): F(x, y) = 2 * I(x, y) - 1/9 I(x, y) = 17/9 * I(x, y), где F(x, y) - яркость отфильтрованного пикселя, а I(x, y) - яркость исходного пикселя с координатами (x, y). Что означает обычное повышение яркости изображения, при этом без учета соседних пикселей (так как их множители равны 0).

Объясните, пожалуйста, как данный фильтр может повышать четкость изображения?

Дмитрий Григорович
Дмитрий Григорович
Россия, Москва
Владислав Филатов
Владислав Филатов
Россия