Для линейных данных это, конечно, не полезно, но для нелинейных данных это всегда полезно. Использование линейных классификаторов намного проще, чем нелинейных, с точки зрения времени обучения и масштабируемости.
@BartoszKP уже объяснил, почему уловка ядра полезна. Однако, чтобы полностью ответить на ваш вопрос, я хотел бы отметить, что ядро не единственная возможность иметь дело с нелинейно разделяемыми данными.
Существует как минимум три хороших, общих варианта для разграничения модели:
- Нейтральные сетевые методы, в которых вы добавляете один (или несколько) слоев блоков обработки, способных преобразовать ваши данные в линейно разделимый случай. В простейшем случае это слой на основе сигмоида, который добавляет нелинейность процессу. После случайной инициализации они получают обновления во время градиентной оптимизации верхнего уровня (что фактически решает линейную задачу).
- В частности, здесь можно использовать методы глубокого обучения для подготовки данных для дальнейшей линейной классификации. Эта идея очень похожа на предыдущую, но здесь вы сначала тренируете свои слои обработки, чтобы найти хорошую отправную точку для дальнейшей тонкой настройки на основе обучения некоторой линейной модели.
- Случайные проекции - вы можете выбирать (нелинейные) проекции из некоторого предопределенного пространства и обучать линейный классификатор поверх них. Эта идея активно используется в так называемом экстремальном машинном обучении , где очень эффективные линейные решатели используются для обучения простого классификатора на случайных проекциях и достижения очень хороших результатов (по нелинейным задачам в классификации и регрессии, посмотрите, например, экстремальное обучение). машины ).
Подводя итог, можно сказать, что ядро - это отличный метод делинеаризации, и вы можете использовать его, когда проблема не является линейной, но это не должно быть слепой оценкой «если тогда». Это всего лишь один из немногих интересных методов, которые могут привести к различным результатам в зависимости от проблемы и требований. В частности, ELM имеет тенденцию находить решения, очень похожие на те, которые предоставляются SVM с ядрами, и в то же время можно обучать ряды быстрее (поэтому он масштабируется гораздо лучше, чем SVM с ядрами).
Я постараюсь дать нетехнический ответ на ваш вопрос.
Действительно, линейный должен быть предпочтительным и должен быть первым выбором по причинам, которые вы упомянули, время обучения, масштабируемость, плюс простота интерпретации окончательной модели, выбор работы над первичным или двойным, большая устойчивость к переобучению и т. Д.
Если линейная модель не приводит к удовлетворительной производительности, то вы можете попробовать нелинейные решения. Некоторые компромиссы для рассмотрения включают в себя:
источник