Введение в машинное обучение. Равиль Ильгизович Мухамедиев

Введение в машинное обучение - Равиль Ильгизович Мухамедиев


Скачать книгу
относится к группе граничных методов: он определяет классы при помощи границ областей. В основе метода лежит понятие плоскостей решений. Плоскость решения разделяет объекты с разной классовой принадлежностью. В пространствах высоких размерностей вместо прямых необходимо рассматривать гиперплоскости – пространства, размерность которых на единицу меньше, чем размерность исходного пространства. В R3, например, гиперплоскость – это двумерная плоскость.

      Метод опорных векторов отыскивает образцы, находящиеся на границах классов (не меньше двух), т.е. опорные векторы, и решает задачу нахождения разделения множества объектов на классы с помощью линейной решающей функции. Метод опорных векторов строит классифицирующую функцию f(x) в виде:

      где ⟨w,s⟩ – скалярное произведение; w – нормальный (перпендикулярный) вектор к разделяющей гиперплоскости; b – вспомогательный параметр, который равен по модулю расстоянию от гиперплоскости до начала координат. Если параметр b равен нулю, гиперплоскость проходит через начало координат.

      Объекты, для которых f(x) = 1, попадают в один класс, а объекты с f(x) = -1 – в другой.

      С точки зрения точности классификации лучше всего выбрать такую прямую, расстояние от которой до каждого класса максимально. Такая прямая (в общем случае – гиперплоскость) называется оптимальной разделяющей гиперплоскостью. Задача состоит в выборе w и b, максимизирующих это расстояние.

      В случае нелинейного разделения существует способ адаптации машины опорных векторов. Нужно вложить пространство признаков Rn в пространство H большей размерности с помощью отображения: φ = Rn → H. Тогда решение задачи сводится к линейно разделимому случаю, т.е. разделяющую классифицирующую функцию вновь ищут в виде: f(x)=sign(⟨w,ϕ(x)⟩+b).

      Возможен и другой вариант преобразования данных – перевод в полярные координаты:

      В общем случае машины опорных векторов строятся таким образом, чтобы минимизировать функцию стоимости вида:

      где S1 и S0 – функции, заменяющие log(hθ) и log(1–hθ) в выражении для логистической регрессии (f2) (обычно это кусочно-линейные функции); fk – функция ядра, выполняющая отображение φ и определяющая значимость объектов обучающего множества в пространстве признаков. Часто используется гауссова функция , которая для любого x позволяет оценить его близость к x(i) и тем самым формировать границы между классами, более близкие или более отдаленные от опорного объекта, устанавливая значение δ, С – регуляризационный параметр (C=1/λ).

      Существенным недостатком классификатора является значительное возрастание времени обучения при увеличении количества примеров. Другими словами, алгоритм обладает высокой вычислительной сложностью.

      Рассмотрим пример.

      Подключение алгоритма и создание классификатора выполняются командами:

      from sklearn.svm import SVC

      clf = SVC(kernel = 'rbf', C=1)

      Используем еще раз набор данных Fashion-MNIST. Скорость обучения и особенно классификации SVC значительно ниже, чем MLP, поэтому, как и в случае с KNeighborsClassifier, будем использовать только часть набора: 10 000 примеров для обучения и 2000 для тестирования. Обучение классификатора со стандартными параметрами:

      from sklearn.svm import SVC

      clf = SVC(kernel = 'rbf',C=1).fit(X_train, y_train)

      В результате


Скачать книгу