Tutti gli algoritmi di machine learning separano i dati in modo lineare?


22

Sono un appassionato di programmazione e apprendimento automatico. Solo pochi mesi fa ho iniziato a conoscere la programmazione dell'apprendimento automatico. Come molti che non hanno un background scientifico quantitativo, ho anche iniziato a imparare a parlare di ML armeggiando con gli algoritmi e i set di dati nel pacchetto ML ampiamente usato (caret R).

Qualche tempo fa ho letto un blog in cui l'autore parla dell'uso della regressione lineare in ML. Se ricordo bene, ha parlato di come tutto l'apprendimento automatico alla fine utilizzi una sorta di "regressione lineare" (non sono sicuro se abbia usato questo termine esatto) anche per problemi lineari o non lineari. Quella volta non ho capito cosa intendesse con quello.

La mia comprensione dell'utilizzo dell'apprendimento automatico per dati non lineari è di utilizzare un algoritmo non lineare per separare i dati.

Questo era il mio pensiero

Diciamo che per classificare i dati lineari abbiamo usato l'equazione lineare e per i dati non lineari usiamo l'equazione non lineare diciamoy=mX+cy=Sion(X)

inserisci qui la descrizione dell'immagine

Questa immagine è tratta da Sikit Learn sito Web di supporto macchina vettoriale. In SVM abbiamo usato kernel diversi per scopi ML. Quindi il mio pensiero iniziale era che il kernel lineare separa i dati usando una funzione lineare e il kernel RBF usa una funzione non lineare per separare i dati.

Ma poi ho visto questo blog in cui l'autore parla delle reti neurali.

Per classificare il problema non lineare nella sottotrama di sinistra, la rete neurale trasforma i dati in modo tale che alla fine possiamo usare una semplice separazione lineare con i dati trasformati nel sottoprogetto giusto

inserisci qui la descrizione dell'immagine

La mia domanda è se tutti gli algoritmi di apprendimento automatico alla fine utilizzino una separazione lineare rispetto alla classificazione (set di dati lineare / non lineare)?



3
peccato(X)S=peccato(X)y=θ0+θ1S

Mi piace la risposta di mbq anche su questo thread, Aiutami a capire le macchine vettoriali di supporto .
Andy W,

Risposte:


26

La risposta è No. user20160 ha una risposta perfetta, aggiungerò 3 esempi con visualizzazione per illustrare l'idea. Nota, questi grafici potrebbero non essere utili per vedere se la "decisione finale" è in forma lineare, ma ti danno un senso su albero, potenziamento e KNN.

Inizieremo con alberi decisionali. Con molte divisioni, è un limite di decisione non lineare. E non possiamo pensare che tutte le divisioni precedenti siano "trasformazioni di caratteristiche" e alla fine ci sia una linea decisionale finale.

Un altro esempio è il modello di potenziamento, che aggrega molti "classificatori deboli" e il limite di decisione finale non è lineare. Puoi pensarci che è un codice / algoritmo complicato per fare la previsione finale.

Infine, pensa a K Neighbours più vicini (KNN). Inoltre, non è una funzione di decisione lineare al livello finale. inoltre, non ci sono "trasformazioni di caratteristiche" in KNN.

Ecco tre visualizzazioni nello spazio 2D (Tree, Boosting e KNN dall'alto verso il basso). La verità fondamentale è che 2 spirali rappresentano due classi, e la sottotrama sinistra è la previsione del modello e la sottotrama destra è i confini della decisione dal modello.

Confine decisionale dell'albero

Aumentare il confine decisionale

Confine decisionale KNN


EDIT: la risposta di @ ssdecontrol in questo post offre un'altra prospettiva.

Dipende da come definiamo la "trasformazione" .

Qualsiasi funzione che suddivide i dati in due parti può essere trasformata in un modello lineare di questa forma, con un'intercettazione e un singolo input (un indicatore di quale "lato" della partizione è il punto dati). È importante prendere nota della differenza tra una funzione decisionale e un limite di decisione.


Non voglio criticare, ma il potenziamento sembra un po 'approssimativo, no? Non è possibile ottenere un risultato più uniforme con parametri diversi? Mi dispiace essere pernicioso, perché trovo che tutte le spiegazioni siano molto buone.
YCR

@YCR Penso che sia il punto di aumentare dove hai un limite decisionale approssimativo. La rugosità è causata dall'aggregazione di molti classificatori deboli (in questo esempio sono alberi). Ma sono d'accordo con te sul fatto che il secondo esempio non è un buon modello ed è troppo adatto :)
Haitao Du

1
(+1) Ottima visualizzazione (utilizzo spiralsmolto anche nelle mie sperimentazioni). Un suggerimento: tracciare i confini delle decisioni come image, e forse aggiungere livelli di probabilità (se si utilizzano output probabilistici) con contour.
Firebug,

@Firebug ottimo suggerimento! questi grafici sono generati in una griglia e possono solo dirti l'etichetta finale. Il contorno è molto meglio.
Haitao Du,

Guarda la mia risposta qui: stats.stackexchange.com/a/218578/60613
Firebug

21

Alcuni algoritmi utilizzano un iperpiano (cioè una funzione lineare) per separare i dati. Un esempio importante è la regressione logistica. Altri usano un iperpiano per separare i dati dopo una trasformazione non lineare (ad es. Reti neurali e supportare macchine vettoriali con kernel non lineari). In questo caso, il limite di decisione non è lineare nello spazio dati originale, ma lineare nello spazio delle caratteristiche in cui sono mappati i dati. Nel caso degli SVM, la formulazione del kernel definisce implicitamente questa mappatura. Altri algoritmi utilizzano iperpiani a suddivisione multipla nelle regioni locali dello spazio dati (ad es. Alberi delle decisioni). In questo caso, il limite della decisione è lineare a tratti (ma nel complesso non lineare).

Tuttavia, altri algoritmi hanno limiti di decisione non lineari e non sono formulati in termini di iperpiani. Un esempio importante è la classificazione dei vicini più vicini k. I classificatori di ensemble (ad esempio prodotti potenziando o insaccando altri classificatori) sono generalmente non lineari.


La rete neurale non è un buon esempio di classe di modello che utilizza iperpiani dopo trasformazione non lineare. Il layer di output può essere (in molti casi) un'attivazione sigmoid, dato che si presuppone che i layer precedenti siano una trasformazione non lineare in uno spazio di caratteristiche.
Cagdas Ozgenc,

1
@CagdasOzgenc Consideriamo il caso della classificazione binaria e di una rete con output sigmoidal, come stai suggerendo. Ciò equivale alla regressione logistica sulle attivazioni del livello precedente (l'utilizzo delle uscite softmax sarebbe equivalente alla regressione logistica multinomiale). Quindi, il limite di decisione è un iperpiano nello spazio delle caratteristiche. L'immagine nella domanda originale mostra un bell'esempio di questo.
user20160

Capisco che quando f (Ax) = 0 e f è uno a uno puoi semplicemente fare f ^ -1 di (Ax) = f ^ -1 (0) => Ax = 0 (o una costante c). Quindi, in caso di sigmoide, si ottiene un limite di decisione lineare. Fondamentalmente stiamo parlando di casi in cui f non è invertibile?
Cagdas Ozgenc,

F è la funzione di attivazione del neurone di output e x l'output del layer precedente? Non sono sicuro di aver capito cosa stai chiedendo.
user20160,

x è un vettore proveniente dai neuroni del livello precedente e f è la funzione di attivazione dell'output.
Cagdas Ozgenc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.