Функции радиального базиса (пример)
Материал из MachineLearning.
м (уточнение. Была допущена ошибка в нормировке одной из функций) |
|||
(5 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | [[Функция радиального базиса]] | + | [[Функция радиального базиса]] — функция, значение |
которой зависит только от нормы аргумента. RBF используются в [[Метрический классификатор|метрических | которой зависит только от нормы аргумента. RBF используются в [[Метрический классификатор|метрических | ||
алгоритмах классификации]], в частности в методе потенциальных | алгоритмах классификации]], в частности в методе потенциальных | ||
Строка 36: | Строка 36: | ||
# Обобщенное квартическое ядро <tex>Q_n(x)=(1-r^2)^n[r\leq 1]</tex>, <tex>n>0</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>M(x)=\frac{1}{\sqrt{A+r^2}}</tex>, <tex>A>0</tex>. | ||
- | # Семейство ядер Вендланда <tex>W_{nl}</tex>, представляющее собой многочлены на отрезке <tex>[-1,1]</tex> и равные | + | # Семейство ядер Вендланда <tex>W_{nl}</tex>, представляющее собой многочлены на отрезке <tex>[-1,+1]</tex> и равные |
нулю вне его. Они характеризуются двумя параметрами — размерностью пространства <tex>n</tex> | нулю вне его. Они характеризуются двумя параметрами — размерностью пространства <tex>n</tex> | ||
и степенью гладкости <tex>l</tex>. В данной реализации используется первые девять ядер: | и степенью гладкости <tex>l</tex>. В данной реализации используется первые девять ядер: | ||
Строка 55: | Строка 55: | ||
| 3 || 2 || <tex>(1-r)^{4}_{+}(4r+1)</tex> | | 3 || 2 || <tex>(1-r)^{4}_{+}(4r+1)</tex> | ||
|- | |- | ||
- | | 3 || 4 || <tex>(1-r)^{6}_{+}( | + | | 3 || 4 || <tex>(1-r)^{6}_{+}(7r^2+6r+1)</tex> |
|- | |- | ||
| 5 || 0 || <tex>(1-r)^{3}_{+}</tex> | | 5 || 0 || <tex>(1-r)^{3}_{+}</tex> | ||
Строка 169: | Строка 169: | ||
==Исходный код== | ==Исходный код== | ||
- | [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/ | + | [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Ostrovskiy2009RBF/src/ kernel.m], [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Ostrovskiy2009RBF/src/ rbflearn.m], [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Ostrovskiy2009RBF/src/ rbfmdl.m ] - (реализация алгоритма); [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Ostrovskiy2009RBF/src/ demo_kernel.m] - (демонстрация доступных ядер); |
- | demo_iris.m, demo_synth1.m, demo_synth2.m (вычислительный эксперимент) | + | [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Ostrovskiy2009RBF/src/ demo_iris.m], [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Ostrovskiy2009RBF/src/ demo_synth1.m], [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Ostrovskiy2009RBF/src/ demo_synth2.m] - (вычислительный эксперимент). |
==Смотри также== | ==Смотри также== | ||
* [[Media:Ostrovski_Report.pdf|Эта статья в формате PDF]] | * [[Media:Ostrovski_Report.pdf|Эта статья в формате PDF]] | ||
* [[Метрический классификатор]] | * [[Метрический классификатор]] | ||
- | * [[ | + | * [[Ядерное сглаживание]] |
+ | * [[Ядерная оценка плотности Парзена-Розенблатта]] | ||
* [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)]] | * [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)]] | ||
Строка 183: | Строка 184: | ||
* Интерактивная помощь программы MATLAB. | * Интерактивная помощь программы MATLAB. | ||
* Bishop C. Pattern Recognition and Machine Learning. | * Bishop C. Pattern Recognition and Machine Learning. | ||
- | {{ | + | |
- | [[Категория: | + | {{ЗаданиеВыполнено|Алексей Островский|В.В. Стрижов|28 мая 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% объектов.
Исходный код
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 в учебном процессе. |