ШІ 101

Що таке машини опорних векторів?

mm

Що таке машини опорних векторів?

Машини опорних векторів є типом класифікатора машинного навчання, який можна вважати одним з найпопулярніших видів класифікаторів. Машини опорних векторів особливо корисні для числового прогнозування, класифікації та розпізнавання закономірностей.

Машини опорних векторів працюють шляхом побудови рішень меж між даними точками, спрямованих на те, щоб рішення межа була якнайкраще розділяла дані точки на класи (або була найбільш загальною). Метою використання машини опорних векторів є те, щоб рішення межа між точками була якнайбільша, щоб відстань між будь-якою даною точкою та межею була максимальною. Це коротке пояснення того, як працюють машини опорних векторів, але давайте глибше розглянемо, як працюють машини опорних векторів та зрозуміємо логіку їхньої роботи.

Мета машини опорних векторів

Представіть собі графік з великою кількістю даних точок, заснованих на функціях,指定ених осями X і Y. Дані точки на графіку можна приблизно розділити на два різні кластери, а кластер, до якого належить дана точка, вказує на клас цієї точки. Тепер припустимо, що ми хочемо провести лінію через графік, яка розділить два класи один від одного, причому всі дані точки одного класу знаходяться на одному боці лінії, а всі дані точки іншого класу знаходяться на іншому боці лінії. Ця роздільна лінія називається гіперплощиною.

Ви можете вважати машину опорних векторів як створення “доріг” по всьому місту, розділяючи місто на райони по обидві сторони від дороги. Усі будівлі (дані точки), розташовані на одному боці дороги, належать до одного району.

Метою машини опорних векторів є не тільки побудова гіперплощин та розділення даних точок, а й побудова гіперплощини, яка розділяє дані точки з найбільшою межею, тобто з найбільшою відстанню між роздільною лінією та будь-якою даною точкою. Повернувшись до метафори “доріг”, якщо міський планувальник створює плани для шосе, він не хоче, щоб шосе було занадто близько до будинків або інших будівель. Чим більша межа між шосе та будівлями по обидві сторони, тим краще. Чим більша ця межа, тим більш “впевнені” класифікатори можуть бути щодо своїх прогнозів. У випадку бінарної класифікації проведення правильної гіперплощини означає вибір гіперплощини, яка знаходиться точно посередині двох різних класів. Якщо рішення межа/гіперплощина знаходиться далі від одного класу, вона буде ближче до іншого. Тому гіперплощина повинна балансувати межу між двома класами.

Розрахунок роздільної гіперплощини

Як машини опорних векторів визначають найкращу роздільну гіперплощину/рішення межу? Це досягається шляхом розрахунку можливих гіперплощин за допомогою математичної формули. Ми не будемо розглядаті формулу розрахунку гіперплощин у великих деталях, але лінія розраховується за допомогою відомої формули лінії:

Y = ax + b

Тим часом, лінії складаються з точок, що означає, що будь-яка гіперплощина може бути описана як: набір точок, які проходять паралельно запропонованій гіперплощині, визначеній вагами моделі, помноженими на набір функцій, змінених певним зсувом/біасом (“d”).

Машини опорних векторів проводять багато гіперплощин. Наприклад, межа лінії є однією гіперплощиною, але дані точки, які класифікатор вважає, також знаходяться на гіперплощинах. Значення для x визначаються на основі функцій у наборі даних. Наприклад, якщо у вас є набір даних з висотами та вагами багатьох людей, “висота” та “вага” будуть функціями, які використовуються для розрахунку “X”. Межі між запропонованою гіперплощиною та різними “опорними векторами” (даними точками), знайденими по обидві сторони від роздільної гіперплощини, розраховуються за допомогою наступної формули:

W * X – b

Хоча ви можете прочитати більше про математику машини опорних векторів, якщо ви шукаєте більш інтуїтивне розуміння їх, просто знайте, що метою є максимізація відстані між запропонованою роздільною гіперплощиною/межею лінії та іншими гіперплощинами, які проходять паралельно їй (і на яких знаходяться дані точки).

Фото: ZackWeinberg via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Мультікласифікація

Процес, описаний вище, застосовується до бінарних завдань класифікації. Однак класифікатори машини опорних векторів також можна використовувати для не-бінарних завдань класифікації. Коли проводиться класифікація за допомогою машини опорних векторів на наборі даних з трьома або більше класами, використовуються додаткові межові лінії. Наприклад, якщо завдання класифікації має три класи замість двох, будуть використовуватися дві роздільні лінії для розділення даних точок на класи, а область, яка складається з одного класу, буде знаходитися між двома роздільними лініями замість однієї. Замість розрахунку відстані лише між двома класами та рішенням межі класифікатор повинен тепер враховувати межі між рішеннями межами та多 класами у наборі даних.

Нелінійні розділення

Процес, описаний вище, застосовується до випадків, коли дані лінійно роздільні. Зверніть увагу, що на практиці набори даних майже ніколи не є повністю лінійно роздільними, що означає, що при використанні класифікатора машини опорних векторів часто потрібно використовувати дві різні техніки: м’яку межу та трюки ядра. Розгляньте ситуацію, в якій дані точки різних класів змішані, причому деякі екземпляри належать до одного класу в “кластері” іншого класу. Як можна змусити класифікатор обробляти ці екземпляри?

Одним із тактик, які можна використовувати для обробки не лінійно роздільних наборів даних, є застосування класифікатора машини опорних векторів з м’якою межею. Класифікатор з м’якою межею працює шляхом прийняття декількох неправильно класифікованих даних точок. Він спробує провести лінію, яка найкраще розділить кластери даних точок один від одного, оскільки вони містять більшість екземплярів, що належать до їхніх відповідних класів. Класифікатор машини опорних векторів з м’якою межею спробує створити роздільну лінію, яка балансуватиме два вимоги класифікатора: точність та межу. Він спробує мінімізувати неправильну класифікацію, а також максимізувати межу.

Толерантність класифікатора до помилок можна регулювати шляхом маніпулювання гіперпараметром “C”. Значення C контролює кількість опорних векторів, які класифікатор розглядає при проведенні рішень меж. Значення C є штрафом, застосованим до неправильної класифікації, тобто чим більше значення C, тим менше опорних векторів класифікатор розглядає і тим вужча межа.

Трюк ядра перетворює дані в нелінійному порядку. Фото: Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Трюк ядра працює шляхом застосування нелінійних перетворень до функцій у наборі даних. Трюк ядра бере існуючі функції у наборі даних та створює нові функції шляхом застосування нелінійних математичних функцій. Результатом застосування цих нелінійних перетворень є нелінійна рішення межа. Оскільки класифікатор машини опорних векторів більше не обмежений проведенням лінійних рішень меж, він може проводити нелінійні рішення межі, які краще охоплюють справжнє розподілення опорних векторів та зменшують кількість неправильної класифікації до мінімуму. Два найпопулярніших нелінійних ядер машини опорних векторів – радіальний базис функції та поліном. Поліном створює поліноміальні комбінації всіх існуючих функцій, тоді як радіальний базис функції генерує нові функції шляхом вимірювання відстані між центральною точкою/точками та всіма іншими точками.

Блогер і програміст з спеціалізацією у темах Machine Learning і Deep Learning. Даніель сподівається допомогти іншим використовувати силу штучного інтелекту для соціальної добробути.