SVM регрессия (пример)
Материал из MachineLearning.
| Строка 10: | Строка 10: | ||
== Алгоритм ==  | == Алгоритм ==  | ||
{{Main|Машина опорных векторов}}  | {{Main|Машина опорных векторов}}  | ||
| - | В этом примере решается задача построения линейной SVM регрессии. Для этого решается прямая задача минимизации функционала потерь, в предположении что решение задается линейной комбинацией неких порождающих функций   | + | В этом примере решается задача построения линейной SVM регрессии. Для этого решается прямая задача минимизации функционала потерь, в предположении что решение задается линейной комбинацией неких порождающих функций, из которых можем составить вектор-функцию   | 
| + | <tex>  | ||
| + | f(x)=\begin{Vmatrix}  | ||
| + | f_1(x) \\  | ||
| + | f_2(x) \\  | ||
| + | \vdots \\  | ||
| + | f_k(x)  | ||
| + | \end{Vmatrix}  | ||
| + | </tex>.   | ||
| + | |||
| + | Тогда функционал примет вид:  | ||
::<tex>Q_\epsilon(a,X)=\sum_{i=1}^\ell \mid (w,f(x_i))-w_0-y_i \mid_\epsilon + \tau (w,w)^2 \rightarrow \underset{w,w_0}{min}</tex>  | ::<tex>Q_\epsilon(a,X)=\sum_{i=1}^\ell \mid (w,f(x_i))-w_0-y_i \mid_\epsilon + \tau (w,w)^2 \rightarrow \underset{w,w_0}{min}</tex>  | ||
| + | В предположении что  | ||
| + | ::<tex>f_0(x)=\sum_{i=1}^k w_i f_i(x)</tex>  | ||
Для этого вводятся обозначение <tex>C=\frac{1}{2\tau}</tex> и дополнительные переменные <tex>\xi_i^+</tex> и <tex>\xi_i^-</tex>:  | Для этого вводятся обозначение <tex>C=\frac{1}{2\tau}</tex> и дополнительные переменные <tex>\xi_i^+</tex> и <tex>\xi_i^-</tex>:  | ||
| Строка 75: | Строка 87: | ||
\end{Vmatrix}  | \end{Vmatrix}  | ||
</tex>, и количество минус бесконечностей в lb равно количеству порождающих функций, а количество нулей равно <tex>2\ell</tex>.  | </tex>, и количество минус бесконечностей в lb равно количеству порождающих функций, а количество нулей равно <tex>2\ell</tex>.  | ||
| + | |||
| + | Таким образом, мы свели задачу к задаче квадратичного программирования.  | ||
| + | |||
| + | В нашем примере значения С, <tex>\epsilon</tex> и порождающие функции задаются экспертом.  | ||
| + | |||
| + | == Вычислительный эксперимент ==  | ||
| + | |||
| + | Вычислительный эксеримент состоит из трех основных частей:  | ||
| + | * Генерация данных;  | ||
| + | * Работа алгоритма;  | ||
| + | * Визуализация и анализ данных.  | ||
| + | |||
| + | === Генерация данных ===  | ||
| + | |||
| + | При генерации данных мы выбираем некую линейную комбинацию наших порождающих функций, и добаляем к ней случайный шум. В ходе эксперимента исследуются различные, как дискретные, так и непрерывные шумы.  | ||
| + | |||
| + | === Результат работы алгоритма ===  | ||
| + | |||
{{Задание|Алексей Корниенко|В.В.Стрижов|28 мая 2010}}  | {{Задание|Алексей Корниенко|В.В.Стрижов|28 мая 2010}}  | ||
Версия 21:04, 28 апреля 2010
SVM (Support Vector Machine, машина опорных векторов) — это особый класс алгоритмов, который характеризуется использованием ядер, отсутствием локальных минимумов, и т. д.
Содержание | 
Постановка задачи
Дано: Обучающая выборка , где 
-признаковое описание i-го объекта, 
 - характеристика, приписываемая объекту. Функция потерь имеет вид 
 для каждого вектора 
, где 
.
Найти: такую функцию , которая описывает зависимость 
 наилучшим образом.
Алгоритм
В этом примере решается задача построения линейной SVM регрессии. Для этого решается прямая задача минимизации функционала потерь, в предположении что решение задается линейной комбинацией неких порождающих функций, из которых можем составить вектор-функцию 
. 
Тогда функционал примет вид:
В предположении что
Для этого вводятся обозначение  и дополнительные переменные 
 и 
:
,
,
.
Геометрический смысл  и 
:
Далее решается задача квадратичного программирования:
Эту же задачу можно преобразовать к виду , при условии, что 
а также, 
, где 
 - вектор-столбец, составленный из столбцов 
, тоесть, где все переменные объеденены в один столбец неизвестных. В таких обозначениях 
, где единиц и нулей в 
 и 
 соответственно столько же, сколько порождающих фукций, а размерность матрицы 
 и вектора 
 равна размерности 
.
Теперь построим матрицу А и столбцы  и 
. Преобразуем задачу квадратичного программирования к виду
Отсюдого получаем,
, и количество минус бесконечностей в lb равно количеству порождающих функций, а количество нулей равно 
.
Таким образом, мы свели задачу к задаче квадратичного программирования.
В нашем примере значения С,  и порождающие функции задаются экспертом.
Вычислительный эксперимент
Вычислительный эксеримент состоит из трех основных частей:
- Генерация данных;
 - Работа алгоритма;
 - Визуализация и анализ данных.
 
Генерация данных
При генерации данных мы выбираем некую линейную комбинацию наших порождающих функций, и добаляем к ней случайный шум. В ходе эксперимента исследуются различные, как дискретные, так и непрерывные шумы.
Результат работы алгоритма
|   |  Данная статья является непроверенным учебным заданием.
 До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.  | 


