Для лінійних даних це, звичайно, не корисно, але для нелінійних даних це здається завжди корисним. Використовувати лінійні класифікатори набагато простіше, ніж нелінійні з точки зору часу навчання та масштабованості.
@BartoszKP вже пояснив, чому корисна хитрість ядра. Однак я хотів би повністю зазначити ваше питання, що кернелізація - не єдиний варіант роботи з нелінійно відокремленими даними.
Існують щонайменше три хороших, загальних альтернативи для розмежування моделі:
- Нейтальні методи, засновані на мережі, де ви додаєте один (або більше) шарів процесорних одиниць, здатних перетворити ваші дані в лінійно роздільний регістр. У найпростішому випадку це шар на основі сигмоїдів, який додає процесу нелінійність. Після випадкової ініціалізації вони отримують оновлення під час градієнтної оптимізації верхнього шару (що фактично вирішує лінійну задачу).
- Зокрема, тут можна використовувати методи глибокого навчання для підготовки даних для подальшої лінійної класифікації. Це дуже схожа ідея з попередньою, але тут ви спочатку тренуєте свої шари обробки, щоб знайти гарну відправну точку для подальшої точної настройки на основі підготовки якоїсь лінійної моделі.
- Випадкові проекції - ви можете вибирати (нелінійні) проекції з певного заздалегідь заданого простору та тренувати лінійний класифікатор над ними. Ця ідея широко використовується в так званому екстремальному машинному навчанні , де дуже ефективні лінійні розв'язувачі використовуються для навчання простого класифікатора на випадкових проекціях та досягнення дуже хорошої продуктивності (щодо нелінійних задач як в класифікації, так і в регресії, перевірте, наприклад, екстремальне навчання машини ).
Підводячи підсумок - кернелізація - це чудова техніка розмежування, і ви можете використовувати її, коли проблема не є лінійною, але це не повинно бути сліпим "якщо тоді" для програми. Це лише один із принаймні небагатьох цікавих методів, який може призвести до різних результатів, залежно від проблеми та вимог. Зокрема, ELM прагне знайти дуже схожі рішення з рішеннями, що даються ядрами SVM, в той же час можна швидше тренувати рядки на величину (тому вона збільшується набагато краще, ніж кернелізовані SVM).