Однослойные сети RBF для решения задач регрессии (пример)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Вычислительный эксперимент)
(Вычислительный эксперимент)
Строка 70: Строка 70:
Те же данные, что и в примере 1, попытка отделить новую компоненту от старой. Если она попадает в то место, где уже есть старая - сдвигаем ее центр на небольшую величину.
Те же данные, что и в примере 1, попытка отделить новую компоненту от старой. Если она попадает в то место, где уже есть старая - сдвигаем ее центр на небольшую величину.
 +
 +
[[Изображение:regression2.png|500px]]
 +
 +
Результат разделения смеси распределений
 +
 +
[[Изображение:components2.png|500px]]
 +
 +
[[Изображение:bad elements2.png|500px]]
== Исходный код ==
== Исходный код ==

Версия 14:56, 7 июня 2010

Радиальная функция — это функция f(x), зависящая только от расстояния между x и фиксированной точкой пространства X. В данной работе используются гауссианы p_j(x) = N(x; \mu _j ,\Sigma _j), которые можно представить в виде p_j(x) = N_j exp(-\frac{1}{2} \rho  _j (x, \mu _j)
где N_j = (2\pi)^ {-\frac{n}{2}}(\sigma _{j1}, \dots ,\sigma _{jn})^{-1} — нормировочный множитель,
\rho _j(x, x') — взвешенная евклидова метрика в n-мерном пространстве X:
~\rho (x, x') = \sum ^n _{d = 1} \sigma ^{-2} _{jd} |\xi _d - \xi _d '| ,
 x = (\xi _1, . . . ,\xi _n), x' = (\xi _1 ', . . . , \xi _n').
Сеть радиальных базисных функций - нейронная сеть прямого распространения сигнала, которая содержит промежуточный (скрытый) слой радиально симметричных нейронов. Такой нейрон преобразовывает расстояние от данного входного вектора до соответствующего ему "центра" по некоторому нелинейному закону - с помощью радиальной функции. В данной статье мы рассмотрим применение этой нейронной сети к решению задачи регрессии с помощью восстановления смесей распределений.

Содержание

Постановка задачи

Задана выборка — множество \{{x}_1,\ldots,{x}_N|x\in\R^M\} значений свободных переменных и множество \{y_1,\ldots, y_N| y\in\R\} соответствующих им значений зависимой переменной. Предполагается, что на множестве объектов задана плотность распределения p(x), представимая в виде смеси распределений - k гауссиан с параметрами \mu и \Sigma: p(x) = \sum_{i=1}^k w_jp_j(x) = \sum_{i=1}^k w_jN(x;\mu_j,\Sigma_j).
N(x;\mu_j,\Sigma_j) = \frac{1}{\sqrt{(2\pi)^ndet\Sigma_j}}e^{-\frac{1}{2}(x-\mu_j)\Sigma_j^{-1}(x-\mu_j)^{T}}
Требуется решить задачу регрессии с помощью однослойной сети RBF, параметрами которой являются
k, w_j, \theta_j=(\mu_j,\Sigma_j), y(\mu_j)=Y_j, j=1\dots k, где
k - число компонент смеси,
w_j- веса компонент,
\theta_j=(\mu_j,\Sigma_j) - центры и дисперсия компонент,
y(\mu_j)=Y_j - значения зависимой переменной в центрах компонент.
Смесь распределений требуется восстановить с помощью EM-алгоритма с добавлением компонент.
Таким образом решается задача регрессии с помощью однослойной сети RBF, обучаемой с помощью EM-алгоритма с добавлением компонент.

Описание алгоритма

Разделение смеси рапределений

Настройка параметров RBF-сети происходит с помощью EM-алгоритма с добавлением компонент. Идея EM-алгоритма заключается во введении вспомогательного вектора скрытых переменных G. С одной стороны, он может быть вычислен, если известны значения вектора параметров \Theta, с другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных. EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге вычисляется ожидаемое значение (expectation) вектора скрытых переменных G по текущему приближению вектора параметров \Theta. На М-шаге решается задача максимизации правдоподобия (maximization) и находится следующее приближение вектора \Theta по текущим значениям векторов G и \Theta.

Если число компонент смеси заранее неизвестно, то применяется EM-алгоритм с последовательным добавлением компонент. Его идея заключается в том, что если данные описаны смесью k компонент, то можно добавить в смесь (k+1)-ю компоненту, построенную на элементах, описанных хуже всего (имеющих минимальное правдоподобие). Далее на смеси из (k+1)-ой компоненты запускается EM-алгоритм.

Для более подробного описания см.

Восстановление регрессии

Значения зависимой переменной в центрах компонент
Y_j=y(\mu_j)=\frac{\sum_{i=1}^N y_ip_j(x_i)}{\sum_{i=1}^N p_j(x_i)}
Значение a(x) для произвольного x \in R^m получим, используя формулу Надарая-Ватсона
y(x)=\frac{\sum_{j=1}^k Y_jw_jp_j(x)}{\sum_{j=1}^k w_jp_j(x)}
Эта формула интуитивно очевидна: значение a(x) есть среднее Y_j по центрам компонент с учетом вероятности того, что объект x принадлежит j-ой компоненте смеси.

Вычислительный эксперимент

Эксперименты проводились на модельных данных. x \in R, т.е. один признак.

Пример 1

Функция y=x, X - несколько нормальных классов с равномерно реаспределенными центрами, нормальная дисперсия по y.

Результат разделения смеси распределений

4 компоненты
[4.0402; 2.5110; 2.5089; 0.9861] - центры,
[0.0271; 0.4256; 0.4257; 0.0188] - дисперсии ,
[0.2257; 0.1908; 0.3537; 0.2299] - веса.

2 и 3 компоненты совпадают, т.е. на самом дела найдено всего 3 компоненты, одна из которых расщеплена на 2. Дальнейшее разделение смеси приводит только к большему разделению это компоненты. Плохо описанные элементы на следующем шаге(синий цвет - плохо описанные элементы)

Пример 2

Те же данные, что и в примере 1, попытка отделить новую компоненту от старой. Если она попадает в то место, где уже есть старая - сдвигаем ее центр на небольшую величину.

Результат разделения смеси распределений

Исходный код

См. также

Литература

  • Хайкин С. Нейронные сети, полный курс. 2е издание, испр.
  • К. В. Воронцов, Лекции по линейным алгоритмам классификации и регрессии



Данная статья является непроверенным учебным заданием.
Студент: Участник:Кононенко Даниил
Преподаватель: Участник:В.В.Стрижов
Срок: 28 мая 2010

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.

Личные инструменты