Чи всі алгоритми машинного навчання розділяють дані лінійно?


22

Я любитель програмування та машинного навчання. Лише кілька місяців тому я почав вивчати програмування машинного навчання. Як і багато хто, хто не має кількісного наукового досвіду, я також почав дізнаватися про ML, познайомившись з алгоритмами та наборами даних у широко використовуваному пакеті ML (caret R).

Ще деякий час я читав блог, в якому автор розповідає про використання лінійної регресії в ML. Якщо я добре пам’ятаю, він говорив про те, як все машинне навчання врешті-решт використовує якусь «лінійну регресію» (не впевнений, чи використовував він цей точний термін) навіть для лінійних чи нелінійних проблем. Тоді я не зрозумів, що він мав на увазі під цим.

Моє розуміння використання машинного навчання для нелінійних даних полягає у використанні нелінійного алгоритму для розділення даних.

Це було моє мислення

Скажімо, для класифікації лінійних даних ми використовували лінійне рівняння а для нелінійних даних використовуємо нелінійне рівняння скажімо y = s i n ( x )у=мх+cу=сiн(х)

введіть тут опис зображення

Це зображення взято з веб-сайту sikit Learn на машині підтримки вектора. У SVM ми використовували різні ядра для ML. Таким чином, моє первинне мислення - лінійне ядро ​​розділяє дані за допомогою лінійної функції, а ядро ​​RBF використовує нелінійну функцію для поділу даних.

Але потім я побачив цей блог, де автор розповідає про нейронні мережі.

Для класифікації нелінійної задачі в лівій подплоти нейронна мережа перетворює дані таким чином, що врешті-решт ми можемо використовувати просте лінійне розділення на перетворені дані в правому піддіаграмі.

введіть тут опис зображення

Моє питання полягає в тому, чи всі алгоритми машинного навчання в кінцевому підсумку використовують лінійне розділення для класифікації (лінійний / нелінійний набір даних)?



3
гріх(х)с=гріх(х)у=θ0+θ1с

Відповіді:


26

Відповідь - ні. User20160 має ідеальну відповідь, я додам 3 приклади з візуалізацією, щоб проілюструвати ідею. Зауважте, ці сюжети можуть не допомогти вам зрозуміти, чи є "остаточне рішення" в лінійній формі, але дадуть певний сенс щодо дерева, розширення та KNN.

Почнемо з дерев рішень. З багатьма розколами це межа нелінійного рішення. І ми не можемо думати, що всі попередні розщеплення - це "перетворення функції", і в кінці є остаточний рядок рішення.

Інший приклад - прискорююча модель, яка об'єднує багато "слабких класифікаторів", і межа остаточного рішення не є лінійною. Ви можете подумати, що це складний код / ​​алгоритм, щоб зробити остаточний прогноз.

Нарешті, подумайте про K Найближчих сусідів (KNN). Це також не є лінійною функцією рішення на кінцевому шарі. крім того, у КНН немає жодних "перетворень ознак".

Ось три візуалізації у двовимірному просторі (Дерево, Підвищення та KNN зверху вниз). Основна істина 2 спіралі являють собою два класи, а лівий субпліт - це передбачення з моделі, а правий субпліт - межі рішення від моделі.

Дерево межі рішення

Підвищення межі прийняття рішень

Межа рішення КНН


EDIT: Відповідь @ ssdecontrol у цьому дописі дає ще одну перспективу.

Це залежить від того, як ми визначаємо "перетворення" .

Будь-яка функція, яка розділяє дані на дві частини, може бути перетворена в лінійну модель такої форми з перехопленням і єдиним входом (індикатор, на якій стороні розділу знаходиться точка даних). Важливо врахувати різницю між функцією прийняття рішення та межею рішення.


Я не хочу критикувати, але прискорення здається трохи грубим, ні? Чи не можливо отримати більш плавний результат з різними параметрами? Вибачте за вибагливість, бо я вважаю, що всі пояснення дуже хороші.
YCR

@YCR Я думаю, що це сенс стимулювання, коли у вас є обмежена межа прийняття рішення. Шорсткість зумовлена ​​агрегуванням багатьох слабких класифікаторів (у цьому прикладі це дерева). Але я згоден з вами, що другий приклад - це не дуже хороша модель, і він витончений :)
Haitao Du

1
(+1) Чудова візуалізація (я також spiralsбагато використовую в своїх експериментах). Пропозиція: побудуйте межі рішення як imageі, можливо, додайте рівні ймовірності (якщо ви використовуєте ймовірнісні результати) за допомогою contour.
Firebug

@Firebug чудова пропозиція! ці сюжети генеруються в сітці і лише вони можуть повідомити вам остаточну мітку. Контур набагато краще.
Haitao Du

Подивіться мою відповідь тут: stats.stackexchange.com/a/218578/60613
Firebug

21

Деякі алгоритми використовують гіперплан (тобто лінійну функцію) для поділу даних. Яскравим прикладом є логістична регресія. Інші використовують гіперплан для розділення даних після нелінійного перетворення (наприклад, нейронні мережі та підтримуючі векторні машини з нелінійними ядрами). У цьому випадку межа прийняття рішення є нелінійною у вихідному просторі даних, але лінійною у просторі функцій, у який відображаються дані. У випадку SVM, формулювання ядра визначає це відображення неявно. Інші алгоритми використовують кілька площинних гіперпланів у місцевих регіонах простору даних (наприклад, дерева рішень). У цьому випадку межа рішення є кусочно лінійною (але загалом нелінійною).

Однак інші алгоритми мають нелінійні межі рішення і не формулюються в плані гіперпланів. Яскравим прикладом є k класифікація найближчих сусідів. Класифікатори ансамблю (наприклад, вироблені прискоренням або пакетуванням інших класифікаторів), як правило, нелінійні.


Нейронна мережа не є хорошим прикладом модельного класу, який використовує гіперплани після нелінійного перетворення. Вихідний шар може бути (у багатьох випадках) активацією сигмоїдів, якщо ви вважаєте, що попередні шари є нелінійним перетворенням у простір ознак.
Cagdas Ozgenc

1
@CagdasOzgenc Розглянемо випадок двійкової класифікації та мережевого w / сигмоїдального виведення, як ви пропонуєте. Це еквівалентно логістичній регресії при активації попереднього шару (використання виходів softmax було б еквівалентно багаточленній логістичній регресії). Отже, межа рішення - це гіперплан у просторі функцій. Малюнок в оригінальному питанні показує приємний приклад цього.
користувач20160

Я розумію, що коли f (Ax) = 0, а f - один на один, ви можете просто зробити f ^ -1 of (Ax) = f ^ -1 (0) => Ax = 0 (або деяка константа c). Отже, у випадку сигмоїди, ви отримуєте межу лінійного рішення. В основному ми говоримо про випадки, коли f не обернено?
Cagdas Ozgenc

Чи f активізує функцію активації вихідного нейрона і x вихід попереднього шару? Не впевнений, я розумію, про що ви просите.
користувач20160

x - вектор, що надходить від нейронів попереднього шару, а f - функція активації виходу.
Cagdas Ozgenc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.