⚾ Класифікатор подач — метод опорних векторів наживо
Спостерігайте, як справжня ядрова машина опорних векторів вивчає межу максимального відступу між симульованими типами подач наживо, на основі справжніх ознак швидкості обертання та швидкості м'яча.
Про цю симуляцію
Кожна подача, яку записує скаут, супроводжується швидкістю вильоту та швидкістю обертання прямо з радара відстеження. Цей симулятор перетворює цю пару чисел на справжню задачу класифікації машинного навчання: чи може машина опорних векторів провести межу, що розділяє фастбол, керв-бол і — за бажанням — слайдер? Замість того, щоб підробляти відповідь, сторінка запускає справжній спрощений розв'язувач послідовної мінімальної оптимізації (SMO) на подачах, наявних у навчальному наборі, і перерозв'язує його з нуля щоразу, коли ви додаєте подачу або змінюєте ядро, силу регуляризації C чи ширину ядра γ.
🔬 Що показано
3D-графік поверхні, де горизонтальна площина — це швидкість × швидкість обертання, а висота — це сире значення функції рішення SVM f(x) = Σ αᵢyᵢK(xᵢ,x) + b. Перетин поверхні з площиною z = 0 — це фактична межа рішення; площини z = ±1 позначають справжній відступ. Навчальні подачі — це сфери, забарвлені за типом подачі, з опорними векторами, обведеними білим — і межа, і набір опорних векторів перераховуються наживо з поточних даних, ніколи не зашиті наперед.
🎮 Як користуватися
Оберіть ядро (лінійне, поліноміальне або гаусове RBF), потім перетягніть C, щоб обміняти ширину відступу на точність навчання, і γ / degree, щоб змінити гнучкість ядра. Увімкніть слайдер-подачу, щоб перетворити це на задачу з 3 класів «один проти решти». Натисніть «Нова подача», щоб отримати потоково нову позначену подачу, і подивіться, як межа миттєво перепідганяється, або увімкніть автопотік, щоб постійно подавати дані. Перетягуйте для обертання 3D-вигляду, прокручуйте для масштабування.
💡 Чи знали ви?
Оскільки швидкість і обертання слайдера справді перетинаються як з фастболами, так і з керв-болами в реальних даних Statcast, жодна пряма лінія не може ідеально розділити всі три типи подач. Перехід від лінійного ядра до RBF-ядра з достатньо високим γ дозволяє межі вигинатися навколо кластеру, що перетинається, — жива демонстрація того, навіщо взагалі існує ядровий трюк.
Часті запитання
Що таке машина опорних векторів (SVM)?
Машина опорних векторів — це класифікатор з учителем, який знаходить гіперплощину, що розділяє два класи з найбільшим можливим відступом — найширшим порожнім коридором між найближчими точками кожного класу. Ці найближчі точки називаються опорними векторами, оскільки саме вони визначають, де проходить межа; будь-яку іншу навчальну точку можна було б видалити, не змінивши розв'язок. Максимізація відступу, а не просто пошук будь-якої розділяючої лінії, зазвичай краще узагальнюється на нові дані, оскільки залишає найбільше простору для шуму, перш ніж точка перейде до неправильного класу.
Як ядровий трюк дозволяє SVM малювати вигнуті межі?
Подвійна форма задачі оптимізації SVM потребує лише скалярних добутків між парами навчальних точок, ніколи не самих вихідних координат. Ядровий трюк замінює цей скалярний добуток x·z функцією ядра K(x,z), яка обчислює скалярний добуток так, ніби точки спочатку були відображені в набагато вищовимірний простір ознак — без явного побудови цього простору. Лінійне ядро дає пряму межу; поліноміальне ядро дає вигнуті поліноміальні межі; гаусове RBF-ядро K(x,z) = exp(−γ‖x−z‖²) дає гладкі, гнучкі межі, що можуть огортати кластери, що перетинаються.
Що контролює параметр регуляризації C?
C — це регулятор компромісу в цільовій функції SVM з м'яким відступом: мінімізувати ½‖w‖² + C·Σξᵢ, де ξᵢ — це змінні нежорсткості, які дозволяють окремим точкам перебувати всередині відступу або на неправильному боці. Мале C допускає більше порушень відступу заради ширшого, гладкішого відступу — надаючи перевагу узагальненню. Велике C сильно штрафує порушення, змушуючи до жорсткішого підганяння, що ризикує перенавчанням на конкретних побачених досі подачах.
Що таке опорні вектори і чому мають значення лише деякі точки?
Після навчання кожна точка i має множник Лагранжа αᵢ. Точки, що впевнено перебувають на правильному боці відступу, отримують αᵢ = 0 і не роблять жодного внеску у функцію рішення; лише точки на межі відступу або всередині нього — опорні вектори — мають αᵢ > 0. Функція рішення f(x) = Σ αᵢyᵢK(xᵢ,x) + b підсумовує лише за цими опорними векторами, тож навчена SVM може бути надзвичайно компактною навіть при більшому наборі даних.
Як насправді розв'язується SVM — це справжній оптимізатор?
Так. Ця симуляція реалізує спрощену процедуру послідовної мінімальної оптимізації (SMO) — ідею подвійного координатного сходження, яку Джон Платт запропонував у 1998 році і яка лежить в основі бібліотек на кшталт libsvm. Кожен прохід обирає пару множників Лагранжа, що порушують умови, аналітично розв'язує їхню двозмінну квадратичну підзадачу за умови обмеження-рамки 0 ≤ αᵢ ≤ C та Σ αᵢyᵢ = 0, оновлює зсув із умов KKT, і повторює, доки не залишиться порушень у межах допуску.
Як працює схема «один проти решти» для трьох типів подач?
Стандартна SVM за своєю суттю бінарна. Щоб обробити фастбол, керв-бол і слайдер разом, симуляція навчає три окремі бінарні SVM, кожна з яких розглядає один тип подачі як позитивний, а два інші, об'єднані разом, як негативний. Для нової подачі обчислюються всі три функції рішення, і перемагає клас із найбільшим позитивним показником — один із найпростіших способів розширити бінарний класифікатор на кілька класів.
Спрощений розв'язувач подвійного координатного сходження SMO підганяє ядрову SVM з м'яким відступом до живих даних швидкості обертання та швидкості м'яча щоразу, коли надходить нова подача чи змінюється гіперпараметр; 3D-поверхня, площини відступу та опорні вектори завжди справді перераховуються, а не заскриптовані.
3D · рушій Three.js / WebGL · ціль 60 FPS · працює повністю на клієнті, без встановлення