Опубликован: 02.09.2013 | Доступ: свободный | Студентов: 429 / 54 | Длительность: 19:27:00
Лекция 2:

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

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
1.1.6. Градиентный бустинг деревьев решений

Градиентный бустинг деревьев решений (Gradient Boosting Trees – GBT) [6, 7] – другой универсальный алгоритм машинного обучения, основанный на использовании ансамбля деревьев решений. В отличие от случайного леса градиентный бустинг является развитием бустинг-идеи. Алгоритм минимизирует эмпирический риск жадным пошаговым алгоритмом, аналогичным методу градиентного спуска. Рассмотрим, например, задачу восстановления регрессии используют. Рассмотрим суммарный штраф на обучающей выборке как функцию от значений решающего правила f в точках x^{(1)},x^{(2)},...,x^{(N)}:

L(f)=L(f(x^{(1)}),f(x^{(2)}),...,f(x^{(N)}))=\sum^N_{i=1} {L(y^{(i)},f(x^{(i)})}

Тогда градиент функции L(f) равен

grad\,\,L(f)=\Biggl( \frac {\delta L(y^{(1)},f(x^{(1)}))} {\delta f(x^{(1)})},\frac {\delta L(y^{(2)},f(x^{(2)}))} {\delta f(x^{(2)})},...,\frac {\delta L(y^{(N)},f(x^{(N)}))} {\delta f(x^{(N)})} \Biggr)

На предварительном этапе алгоритм строит оптимальную константную модель f=g_0. На m-й итерации конструируется дерево решений g_m (небольшой глубины), аппроксимирующее компоненты вектора антиградиента, вычисленного для текущей модели f. После этого значения в узлах построенного дерева g_m перевычисляются, так, чтобы минимизировать суммарную величину штрафа L(f+g_m) Далее осуществляем присваивание f \leftarrow f+vg_m, что и завершает m-ю итерацию. Здесь v – параметр регуляризации (shrinkage), призванный бороться с возможным переобучением. Он выбирается из интервала (0,1].

Для решения задачи восстановления регрессии часто используются следующие штрафные функции:

квадратичный штраф

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

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

L(y,f(x))=\lvert y-f(x) \rvert .

или функция Хьюбера

L(y,f(x))=\frac {1}{2} (y-f(x))^2=\begin{cases}
\frac {1}{2} (y-f(x))^2,&\text{при $\lvert y-f(x) \rvert \leqslant \delta$,}\\
\delta(\lvert y-f(x) \rvert - \frac {\delta}{2})^2,&\text{при $\lvert y-f(x) \rvert > \delta$.}
\end{cases}

Заметим, что функция Хьюбера и квадратичный штраф дифференцируемы всюду, тогда как абсолютный штраф – везде, кроме точек, в которых y=f(x).

Для задачи классификации с K классами метод остается прежним, только вместо одной функции f конструируют сразу K функций f_k\,\,(k=1,2,...,K). В качестве штрафа можно использовать кросс-энтропию

L(y,f_1(x),f_2(x),...,f_K(x))=-log_2p_y(x),

где

p_y(x)=\frac {e^{f_y(x)}} {\sum^K_{k=1}e^{f_y(x)} }

– есть оценка вероятности того, что f(x)=y. Итоговый классификатор определяется как

f(x)=arg\,\,max_yp_y(x).

Более подробное описание алгоритма см. в [6, 7].

Другим популярным методом, использующим идею бустинга, является алгоритм AdaBoost и его модификации [5].

1.2. Кластеризация

В задачах обучения без учителя (unsupervised learning) у объектов не известны выходы, и требуется найти некоторые закономерности в данных. К задачам обучения без учителя относят задачи кластеризации, понижения размерности, визуализации и др. Здесь рассматривается только кластеризация.

Задача кластеризации – это задача разбиения заданного набора объектов на кластеры, т. е. группы близких по своему признаковому описанию объектов. "Похожие" друг на друга объекты должны входить в один кластер, "не похожие" объекты должны попасть в разные кластеры.

Близость ("похожесть") объектов измеряется на основе функции расстояния \rho(x,x'):\mathcal{X} \times \mathcal{X} \rightarrow \mathbb{R}

1.2.1. Метод центров тяжести

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

x^{(1)},x^{(2)},...,x^{(N)}, \,\,\, где \,\,\, x^{(i)}\in Q_1 \times Q_2 \times ... \times Q_d \,\,(i=1,2,...,N)

и натуральное число K – количество кластеров, на которые нужно разбить данные. Алгоритм реализует пошаговую процедуру минимизации

min_{C,m_k}\sum^N_{i=1} {\rho(x^{(i)},m_k)},

где m_k – центр тяжести объектов, относящихся к k-му кластеру:

m_k=\frac {\sum_{C(i)=k} {x^{(i)}}} {\lvert \lbrace i:C(i)=k \rbrace \rvert} (k=1,2,...,K)

При этом не гарантируется нахождение глобального минимума. На предварительном этапе строится некоторое разбиение входных данных на K групп (например, случайно). Пусть C(i) – номер группы, к которой принадлежит -й объект. В ходе работы алгоритма значения C(i) обновляются. В конце работы алгоритма значения C(i) будут соответствовать разбиению данных на кластеры. Каждая итерация представляет собой последовательность следующих шагов:

  • Вычисляем центр тяжести m_k(k=1,2,...,K) объектов в каждой группе.
  • Для каждого объекта x^{(i)} находим k, для которого расстояние от x^{(i)} до m_k т. е. \rho(x^{(i)},m_k) минимально. Обновляем функцию C(i) положив C(i)=k(i=1,2,...,N).

Итерации завершаются, когда наступает стабилизация значений C(i) , либо по достижении максимального значения числа итераций.

1.2.2. Метод медиан

Метод центров тяжестей работает с явными описаниями объектов x^{(i)} Модификацией этого метода является метод медиан, или метод срединных точек, ( K–medians, или K–medoids). На вход этого алгоритма подается число кластеров K и матрица расстояний D=(d_{ii'}), где d_{ii'}=\rho(x^{(i)},x^{(i')})(i,i'=1,2,...,N). Заметим, что сама функция \rho(x,x') может быть не известна.

Алгоритм ничем не отличается от предыдущего, но вместо центра тяжестей, для каждой группы будем находить медиану, или срединную точку, m_k=x_{i^*_k}, где

i^*_k=argmin_{C(i)=k} \sum_{C(i')=k} {d^2_{ii'}}.

Каждая итерация представляет собой последовательность следующих шагов:

  • Вычисляем медиану m_k=x_{i^*_k} \cdot (k=1,2,...,K) объектов в каждой группе.
  • Для каждого объекта x^{(i)} находим k для которого d_{i,i^*_k} минимально. Обновляем функцию C(i) положив C(i)=k(i=1,2,...,N).

Как правило, результаты работы алгоритмов центров тяжестей и медиан (если они оба применимы к данным) близки.

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
Андрей Терёхин
Андрей Терёхин

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

Демянчик Иван
Демянчик Иван

В главе 14 мы видим понятие фильтра, но не могу разобраться, чем он является в теории и практике.

" Искомый объект можно описать с помощью фильтра F= \lbrace f_{x',y'},x' \in \lbrace0, ...,w_f \rbrace , y' \in \lbrace 0,...,h_f \rbrace \rbrace "