Функции радиального базиса (пример)
Материал из MachineLearning.
(Новая: Функция радиального базиса - функция, значение которой зависит только от нормы аргумента. RBF исполь...) |
|||
Строка 20: | Строка 20: | ||
<tex>a(x)={\rm sign}\nolimits \phi(x)</tex>. | <tex>a(x)={\rm sign}\nolimits \phi(x)</tex>. | ||
Требуется оптимизировать значения параметров <tex>\gamma_i</tex>, <tex>h_i</tex>. | Требуется оптимизировать значения параметров <tex>\gamma_i</tex>, <tex>h_i</tex>. | ||
+ | |||
+ | ==Ядерные функции== | ||
+ | Одной из важных частей алгоритма является выбор функции радиального базиса | ||
+ | <tex>K(x)</tex>. В качестве <tex>K</tex> могут применяться следующие функции | ||
+ | (введено обозначение <tex>\|x\|=r</tex>): | ||
+ | # Гауссиана <tex>G(x)=\exp(-\beta r^2)</tex>, где <tex>\beta>0</tex>. | ||
+ | # Ядро логистической регрессии <tex>L(x)=\frac{1}{1+e^{r/\sigma}}</tex>, <tex>\sigma>0</tex>. | ||
+ | # Ядро, соответсвующее ньютонову потенциалу <tex>N(x)=\frac{1}{A+r}</tex>, <tex>A>0</tex>. | ||
+ | # Модифицированный ньютонов потенциал <tex>N_n(x)=\frac{1}{A+r^n}</tex>, <tex>A>0</tex>, <tex>n>0</tex>. | ||
+ | # Треугольное ядро <tex>T(x)=(1-r)[r\leq 1]</tex>. | ||
+ | # Модифицированное треугольное ядро <tex>T_n(x)=(1-r)^{n}[r\leq 1]</tex>, <tex>n>0</tex>. | ||
+ | # Прямоугольное ядро <tex>P(x)=[r\leq 1]</tex>. | ||
+ | # Ядро Епанечникова <tex>E(x)=(1-r^2)[r\leq 1]</tex>. | ||
+ | # Квартическое ядро <tex>Q(x)=(1-r^2)^2[r\leq 1]</tex>. | ||
+ | # Обобщенное квартическое ядро <tex>Q_n(x)=(1-r^2)^n[r\leq 1]</tex>, <tex>n>0</tex>. | ||
+ | # Обратное мультиквадратичное ядро <tex>M(x)=\frac{1}{\sqrt{A+r^2}}</tex>, <tex>A>0</tex>. | ||
+ | # Семейство ядер Вендланда <tex>W_{nl}</tex>, представляющее собой многочлены на отрезке <tex>[-1,1]</tex> и равные | ||
+ | нулю вне его. Они характеризуются двумя параметрами — размерностью пространства <tex>n</tex> | ||
+ | и степенью гладкости <tex>l</tex>. В данной реализации используется первые девять ядер: | ||
+ | {| class="wikitable" style="text-align: left;" | ||
+ | |- bgcolor="#cccccc" | ||
+ | ! width=20 % |<tex>n</tex> | ||
+ | ! width=20 % |<tex>l</tex> | ||
+ | ! width=60 % |<tex>W_{nl}</tex> | ||
+ | |- | ||
+ | | 1 || 0 || <tex>(1-r)_{+}</tex> | ||
+ | |- | ||
+ | | 1 || 2 || <tex>(1-r)^{3}_{+}(3r+1)</tex> | ||
+ | |- | ||
+ | | 1 || 4 || <tex>(1-r)^{5}_{+}(8r^2+5r+1)</tex> | ||
+ | |- | ||
+ | | 3 || 0 || <tex>(1-r)^{2}_{+}</tex> | ||
+ | |- | ||
+ | | 3 || 2 || <tex>(1-r)^{4}_{+}(4r+1)</tex> | ||
+ | |- | ||
+ | | 3 || 4 || <tex>(1-r)^{6}_{+}(35r^2+18r+3)</tex> | ||
+ | |- | ||
+ | | 5 || 0 || <tex>(1-r)^{3}_{+}</tex> | ||
+ | |- | ||
+ | | 5 || 2 || <tex>(1-r)^{5}_{+}(5r+1)</tex> | ||
+ | |- | ||
+ | | 5 || 4 || <tex>(1-r)^{7}_{+}(16r^2+7r+1)</tex> | ||
+ | |- | ||
+ | |} | ||
+ | Используется обозначение <tex>F_{+}=\max(0, F)</tex>. | ||
==Алгоритм отыскания оптимальных параметров== | ==Алгоритм отыскания оптимальных параметров== | ||
- | Считается, что радиусы всех потенциалов равны между собой (<tex>h_i=h</tex> <tex>\forall i=1,...,l</tex>) | + | Считается, что радиусы всех потенциалов равны между собой (<tex>h_i=h</tex> <tex>\forall i=1,...,l</tex>). |
- | + | Переменная <tex>h</tex> , а также параметры RBF | |
- | + | (если таковые имеются) — структурные параметры метода. Заряды <tex>\gamma_i</tex> настраиваются согласно алгоритму: | |
# положить <tex>\gamma_i:=0</tex> <tex>\forall i=1,...,l</tex>. | # положить <tex>\gamma_i:=0</tex> <tex>\forall i=1,...,l</tex>. | ||
Строка 124: | Строка 169: | ||
==Исходный код== | ==Исходный код== | ||
- | [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/RBF/src] rbflearn.m, rbfmdl.m (реализация алгоритма); | + | [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/RBF/src] kernel.m, rbflearn.m, rbfmdl.m (реализация алгоритма); demo_kernel.m (демонстрация доступных ядер); |
demo_iris.m, demo_synth1.m, demo_synth2.m (вычислительный эксперимент) | demo_iris.m, demo_synth1.m, demo_synth2.m (вычислительный эксперимент) | ||
Строка 135: | Строка 180: | ||
==Литература== | ==Литература== | ||
* К. В. Воронцов. Лекции по метрическим алгоритмам классификации. | * К. В. Воронцов. Лекции по метрическим алгоритмам классификации. | ||
- | + | * Хардле В. Прикладная непараметрическая регрессия. | |
+ | * Интерактивная помощь программы MATLAB. | ||
+ | * Bishop C. Pattern Recognition and Machine Learning. | ||
{{Задание|Алексей Островский|В.В. Стрижов|28 мая 2009}} | {{Задание|Алексей Островский|В.В. Стрижов|28 мая 2009}} | ||
[[Категория:Классификация]] | [[Категория:Классификация]] |
Версия 17:48, 17 июня 2009
Функция радиального базиса - функция, значение которой зависит только от нормы аргумента. RBF используются в метрических алгоритмах классификации, в частности в методе потенциальных функций, который (в упрощенном виде) рассматривается в этой статье.
Содержание |
Постановка задачи
Задана выборка , в которой описание каждого объекта является вектором . Метки классов принадлежат множеству . Считается, что каждый объект выборки имеет некоторый «заряд» и создает в пределах окрестности потенциал, вид которого определяется функцией радиального базиса . Таким образом, суммарный потенциал в точке определяется по формуле:
Знак этого потенциала определяет класс объекта , т.е. классификатор . Требуется оптимизировать значения параметров , .
Ядерные функции
Одной из важных частей алгоритма является выбор функции радиального базиса . В качестве могут применяться следующие функции (введено обозначение ):
- Гауссиана , где .
- Ядро логистической регрессии , .
- Ядро, соответсвующее ньютонову потенциалу , .
- Модифицированный ньютонов потенциал , , .
- Треугольное ядро .
- Модифицированное треугольное ядро , .
- Прямоугольное ядро .
- Ядро Епанечникова .
- Квартическое ядро .
- Обобщенное квартическое ядро , .
- Обратное мультиквадратичное ядро , .
- Семейство ядер Вендланда , представляющее собой многочлены на отрезке и равные
нулю вне его. Они характеризуются двумя параметрами — размерностью пространства и степенью гладкости . В данной реализации используется первые девять ядер:
1 | 0 | |
1 | 2 | |
1 | 4 | |
3 | 0 | |
3 | 2 | |
3 | 4 | |
5 | 0 | |
5 | 2 | |
5 | 4 |
Используется обозначение .
Алгоритм отыскания оптимальных параметров
Считается, что радиусы всех потенциалов равны между собой ( ). Переменная , а также параметры RBF (если таковые имеются) — структурные параметры метода. Заряды настраиваются согласно алгоритму:
- положить .
- повторять
- выбрать случайный элемент из выборки
- если то
- пока не выполнен критерий останова
Используются следующие критерии останова алгоритма:
- Ограничение на максимальное количество итераций.
- Доля ошибок на обучающей выборке — если , то алгоритм останавливается. является структурным параметром метода.
- В качестве развития предыдущего пункта — процент ошибок на тестовой выборке , которая
выделяется из обучающей заранее случайным образом. Доля объектов, которые войдут в тестовую выборку, задается извне.
Поскольку подсчет доли ошибок — весьма трудоемкий процесс, то рационально выполнять его не в каждой итерации алгоритма. Частоту проверок можно изменять извне.
Вычислительный эксперимент
Для проверки работоспособности алгоритма использовались наборы реальных и синтетических данных.
1) Реальные данные
В качестве реальных данных использовались данные о сортах ирисов, собранные Фишером. Обучающая выборка состояла из 100 объектов (по 50 объектов каждого из двух классов), обладающих четырьмя вещественными признаками. При использовании всех четырех признаков алгоритм показал очень хороший результат, неправильно классифицировав три объекта. При использовании только первых двух признаков классы глубоко проникают друг в друга; алгоритм работает значительно хуже, неправильно классифицируя около 25 объектов.
По осям графиков отложены значения признаков. Точки — объекты, цвет точек обозначает принадлежность к тому или иному классу; цвет кружков вокруг точек — результат работы алгоритма.
Во втором случае возможно нарисовать трехмерный график, изображающий потенциал в различных точках пространства признаков:
2) Синтетические данные
Синтетические данные представляли собой объекты с двумя признаками из нескольких кластеров. В пределах каждого из кластеров признаки имели нормальное распределение. В зависимости от числа кластеров и параметров распределения задача классификации представляла разную сложность.
baseL = 200; %average number of objects in clusters X = []; y = []; L = 0; CLUSTERS = 5; %number of clusters for cl=1:CLUSTERS alpha = 0.5 + rand; L2 = floor(baseL*alpha); %number of objects in the cluster sigma = 1 + 1.5*rand; %variance of feature values dist = 3 + 5*rand; %distance to the (0, 0) point v = repmat(... dist * [sin(2*pi*rand) cos(2*pi*rand)], ... [L2, 1]); %random vector between (0, 0) and the center of the cluster X2 = sigma * randn(L2, 2) + v; %objects in cluster label = sign(rand-0.5); %choosing class of objects if (label == 0) label = 1; end X = [X; X2]; y = [y; repmat(label, [L2, 1])]; L = L + L2; %L is total number of objects end
2.1) Легкий случай
Объекты формируют два кластера со слабым взаимным проникновением. Качество классификации хорошее (меньше 5% неправильно определенных меток классов).
2.2) Промежуточный случай
Объекты составляют пять кластеров с существенным проникновением. Неправильно классифицировано около 8% объектов.
2.3) Сложный случай
Объекты составляют восемь кластеров с сильным проникновением друг в друга. Неправильно классифицировано около 13% объектов.
Исходный код
[1] kernel.m, rbflearn.m, rbfmdl.m (реализация алгоритма); demo_kernel.m (демонстрация доступных ядер); demo_iris.m, demo_synth1.m, demo_synth2.m (вычислительный эксперимент)
Смотри также
- Эта статья в формате PDF
- Метрический классификатор
- Классификация
- Численные методы обучения по прецедентам (практика, В.В. Стрижов)
Литература
- К. В. Воронцов. Лекции по метрическим алгоритмам классификации.
- Хардле В. Прикладная непараметрическая регрессия.
- Интерактивная помощь программы MATLAB.
- Bishop C. Pattern Recognition and Machine Learning.
Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |