Support Vector Machines
Оновлено: 31.07.2023
Що таке SVM?
- Support Vector Machines = SVM - швидка та надійна система класифікації при роботі з обмеженими даними
Щоб відокремити групи даних, машина опорних векторів SVM використовує поле або площину, які є настільки точними, наскільки це можливо, щоб гарантувати, що вона буде добре узагальнювати випадки, з якими вона ніколи не стикалася раніше. Використання полів або ліній для розділення зразків у наборі даних з двома ознаками є ефективним способом розділення навчальних даних. Опорні вектори - це зразки в навчальних даних, які розташовані близько до лінії, площини або гіперплощини.
Для розділення наборів даних можна використовувати різні поля, площини та гіперплощини. Намагаючись максимізувати ортогональну відстань між площиною та опорним вектором у кожному класі, процес SVM намагається мінімізувати ортогональну відстань між двома площинами.
Коли в характеристиках двох груп є значення, які мають тенденцію групуватися навколо різних значень, наприклад, прогнозування значень, пов'язаних зі ступенем пухлини, або класифікація різних тканин зі змінним ослабленням і представленими текстурами, SVM-модель може функціонувати (тобто знаходити корисну межу або гіперплощину).
- СВМ-технології були використані для успішного вирішення декількох задач сегментації та класифікації зображень
Вони мають дві ключові переваги над такими алгоритмами, як нейронні мережі:
- більша швидкість
- краща продуктивність з тисячами зразків
Це робить машинну класифікацію на основі опорних векторів особливо придатною для класифікації текстів, де зазвичай є доступ лише до кількох тисяч тегованих зразків.
Як використовувати SVM
Простий приклад - це найпростіший спосіб зрозуміти основи машин опорних векторів і те, як вони працюють. Розглянемо наступний сценарій: у нас є дві мітки: кішка і собака, і наші дані мають дві характеристики: a і b. Маючи пару координат, ми хочемо отримати класифікатор, який скаже нам, чи це кішка, чи собака.
Гіперплощина (яка у двовимірному просторі є, по суті, лінією), що оптимально розділяє мітки, створюється за допомогою опорно-векторного машинного навчання на основі цих точок даних. Ця лінія слугує межею прийняття рішення: все, що падає з одного боку, буде класифіковано як кішка, тоді як все, що падає з іншого боку, буде класифіковано як собака.
Однак, що таке найкраща гіперплощина? Це та, яка оптимізує відступи від обох тегів, згідно з SVM. Іншими словами, гіперплощина (в даному випадку лінія) з найбільшою відстанню до найближчого елемента кожного тегу.
Цей приклад був простим, оскільки дані, очевидно, лінійно розділялися - все, що нам потрібно було зробити, це намалювати пряму лінію, щоб розділити кота і собаку. На жаль, речі рідко бувають настільки простими.
Коли немає лінійної межі рішення, потрібен третій вимір.
Досі у нас було лише два виміри: a та b. Вам потрібно побудувати новий вимір c і вказати, щоб він обчислювався певним зручним для вас способом: c = a2 + b2.
Це створить тривимірне середовище. Розумно перевівши простір у вищий вимір, ви зможете класифікувати нелінійні дані.
Функція ядра
При обчисленні цього перетворення потрібно враховувати багато нових вимірів, і кожен з них може потребувати тривалих обчислень. Тим не менш, було б фантастично, якби ми змогли знайти дешевший спосіб зробити це для кожного вектора в наборі даних.
Для роботи магії SVM не потрібні вектори, достатньо точкових добутків між векторами. Нові розмірності не потрібно обчислювати, що економить нам гроші.
- Використовуйте новий точковий продукт, щоб вказати SVM виконувати свою роботу - це те, що ми називаємо функцією ядра.
Це метод ядра, який дозволяє уникнути кількох дорогих обчислень. Коли ядро лінійне, ми отримуємо лінійний класифікатор. Однак, використовуючи нелінійне ядро, ми можемо отримати нелінійний класифікатор, не змінюючи дані взагалі: ми просто змінюємо точковий добуток на добуток потрібного простору, і SVM веселим кроком йде далі.
- Трюк з ядром насправді не є частиною SVM
Його можна використовувати разом з іншими лінійними класифікаторами, такими як логістична регресія. Машина опорних векторів займається лише визначенням межі прийняття рішень.
Все, що вам залишилося - це навчити машину опорних векторів! Візьміть ваші марковані тексти, перетворіть їх на вектори, використовуючи частоти слів, а потім введіть їх в алгоритм - функцію ядра - щоб він міг згенерувати модель. Щоб класифікувати новий текст, ми перетворюємо його на вектор і вводимо в модель. Після цього модель генерує тег тексту.