Теория без математики?
В Интернете много материалов о том, что делают машины опорных векторов, но мало о математике, лежащей в основе этого. Мы знаем, что SVM работают, максимизируя ширину улицы, разделяющей положительную и отрицательную выборки, но как точно вывести формулу для этой ширины? Лично мне всегда было трудно понять истинную природу любого алгоритма без глубокого погружения в вычисления, которые им управляют. Поэтому я много исследовал в Интернете и случайно наткнулся на это удивительное видео https://www.youtube.com/watch?v=_PwhiWxHK8o, в котором вы совершите математическую поездку по SVM, потому что теория без математики? Большое НЕТ!
Математика, лежащая в основе SVM
Эта статья представляет собой не что иное, как документированную версию упомянутого выше видео, и для нее требуется предварительное представление о том, что такое SVM. Изучив содержание, безукоризненно объясненное профессором Патриком Уинстоном, мне не терпелось задокументировать его, чтобы охватить более широкую аудиторию. Итак, давайте углубимся ...
В приведенном выше примере у нас есть улица (заштрихованная розовым) со средней линией, которая отделяет положительные образцы от отрицательных, причем положительные образцы лежат справа от улицы.
Используя вектор перпендикулярно улице, неизвестный вектор внутри улицы и константы b и c, мы перейдите к правилу принятия решения, как указано выше.
Не знакомы с скалярным произведением векторов? Видеть это! Https://www.mathsisfun.com/algebra/vectors-dot-product.html
Где происходит волшебство
Умножьте 1 на уже имеющееся значение ≥ 1, и вы получите количество ≥ 1. Это приводит к уравнению (3)
Умножьте -1 на значение, уже ≤ -1, и вы получите количество, также ≥ 1. Это приводит к уравнению (4).
И вы получите уравнения (3) и (4), которые абсолютно одинаковы :)
Таким образом, исходя из уравнений (3) и (4), мы можем сказать, что для любой выборки (положительной или отрицательной) ВНЕ улицы мы имеем:
Это приводит к следующему уравнению:
Расчет ширины улицы
Теоретически мы знаем, что SVM работают, пытаясь максимизировать ширину улицы, средняя линия которой разделяет положительную и отрицательную. Теперь давайте посмотрим, как на самом деле рассчитать ширину этой улицы, чтобы у нас было что максимизировать. Мы увидим, как уравнение (6) помогает нам в этом.
Шаг 1
Шаг 2
Но разве у нас нет вектора, перпендикулярного улице?
Мы делаем! Попробуйте прокрутить вверху, чтобы подвести итог;) Или переходите к следующему шагу ниже :)
Шаг 3
Мы приходим к уравнению (9) из уравнения (8), используя закон распределения для скалярных произведений для вычитания.
Шаг 4
Таким образом, мы получаем формулу ширины улицы. Чтобы максимизировать это, мы минимизируем обратное, для математического удобства :)
Минимизация осуществляется с помощью оптимизации Лагранжа, о которой мы расскажем на другой день;)