Я любитель програмування та машинного навчання. Лише кілька місяців тому я почав вивчати програмування машинного навчання. Як і багато хто, хто не має кількісного наукового досвіду, я також почав дізнаватися про ML, познайомившись з алгоритмами та наборами даних у широко використовуваному пакеті ML (caret R).
Ще деякий час я читав блог, в якому автор розповідає про використання лінійної регресії в ML. Якщо я добре пам’ятаю, він говорив про те, як все машинне навчання врешті-решт використовує якусь «лінійну регресію» (не впевнений, чи використовував він цей точний термін) навіть для лінійних чи нелінійних проблем. Тоді я не зрозумів, що він мав на увазі під цим.
Моє розуміння використання машинного навчання для нелінійних даних полягає у використанні нелінійного алгоритму для розділення даних.
Це було моє мислення
Скажімо, для класифікації лінійних даних ми використовували лінійне рівняння а для нелінійних даних використовуємо нелінійне рівняння скажімо y = s i n ( x )
Це зображення взято з веб-сайту sikit Learn на машині підтримки вектора. У SVM ми використовували різні ядра для ML. Таким чином, моє первинне мислення - лінійне ядро розділяє дані за допомогою лінійної функції, а ядро RBF використовує нелінійну функцію для поділу даних.
Але потім я побачив цей блог, де автор розповідає про нейронні мережі.
Для класифікації нелінійної задачі в лівій подплоти нейронна мережа перетворює дані таким чином, що врешті-решт ми можемо використовувати просте лінійне розділення на перетворені дані в правому піддіаграмі.
Моє питання полягає в тому, чи всі алгоритми машинного навчання в кінцевому підсумку використовують лінійне розділення для класифікації (лінійний / нелінійний набір даних)?