Quando dovrei usare algoritmi genetici rispetto alle reti neurali? [chiuso]


139

Esiste una regola empirica (o una serie di esempi) per determinare quando utilizzare gli algoritmi genetici rispetto alle reti neurali (e viceversa) per risolvere un problema?

So che ci sono casi in cui è possibile combinare entrambi i metodi, ma sto cercando un confronto di alto livello tra i due metodi.


3
Vale la pena sottolineare che esistono due tipi di reti neurali: supervisionate e non supervisionate. La supervisione ottiene dati di formazione da un feedback umano e non supervisionato in se stessi e sono più simili alle GA in questo senso.
Chris S,

3
Non penso che sia "list-y". Le risposte mettono a confronto due metodi e chiariscono quando usare l'uno contro l'altro.
Neil N,

Risposta breve: utilizzare GA quando la funzione da modellare non è continua / discreta o quando il set di dati è astronomicamente alto-dimensionale. Usa le reti neurali o GA (o un altro modello) per il resto a seconda di ciò che ti dà i migliori risultati. Per maggiori informazioni, vedere la mia risposta qui: stackoverflow.com/a/49684833/1121352
gaborous

Risposte:


130

Da Wikipedia:

Un algoritmo genetico (GA) è una tecnica di ricerca utilizzata nell'informatica per trovare soluzioni esatte o approssimative a problemi di ottimizzazione e ricerca.

e:

Le reti neurali sono strumenti di modellazione di dati statistici non lineari. Possono essere utilizzati per modellare relazioni complesse tra input e output o per trovare modelli nei dati.

Se si riscontra un problema in cui è possibile quantificare il valore di una soluzione, un algoritmo genetico può eseguire una ricerca diretta dello spazio della soluzione. (Ad esempio, trova il percorso più breve tra due punti)

Quando hai un numero di oggetti in classi diverse, una rete neurale può "imparare" a classificare oggetti che non ha "visto" prima. (Ad esempio riconoscimento facciale, riconoscimento vocale)

Anche i tempi di esecuzione devono essere considerati. Un algoritmo genetico richiede molto tempo per trovare una soluzione accettabile. Una rete neurale impiega molto tempo per "apprendere", ma può quasi immediatamente classificare nuovi input.


13
Voglio solo aggiungere un po 'alla definizione di GA. A volte le persone pensano allo spazio della soluzione di un problema GA come un insieme di stati o valori. Ad esempio "Trova tutti i modi in cui un set di quattro pezzi degli scacchi potrebbe essere disposto su una scacchiera per creare un scacco matto". Tuttavia, lo spazio della soluzione può anche essere un insieme di algoritmi. È qui che entra in gioco il vero potere degli algoritmi genetici. Ti aiutano a rispondere a una domanda del tipo "Trova una sequenza di mosse con un determinato set di pezzi degli scacchi che si tradurranno in uno scacco matto".
lfalin,

44

Un algoritmo genetico (nonostante il suo nome sexy) è, per la maggior parte degli scopi, una tecnica di ottimizzazione . Si riduce principalmente a te che hai un numero di variabili e che vuoi trovare la migliore combinazione di valori per queste variabili. Prende in prestito solo tecniche dall'evoluzione naturale per arrivarci.

Le reti neurali sono utili per riconoscere i modelli . Seguono un modello semplicistico del cervello e, modificando un numero di pesi tra di loro, tentano di prevedere gli output in base agli input.

Sono due entità fondamentalmente diverse, ma a volte i problemi che sono in grado di risolvere si sovrappongono.


22
Le reti neurali sono solo una tecnica di interpolazione, in realtà. :)
Don Reba,

3
+1 per algoritmi genetici (ottimizzazione) e reti neurali (apprendimento supervisionato) non hanno quasi nulla in comune.
alfa,

2
L'unico elemento comune è che si riorganizzano dinamicamente mentre si avvicinano a un obiettivo.
lfalin,

1
Non sono sicuro che ci siano sovrapposizioni, davvero. Le reti neurali sono un modello con una funzione di costo, GA sono una tecnica di ottimizzazione che può essere utilizzata per minimizzare questa funzione di costo, come ha detto @zenna.
Matthieu Brucher,

37

I GA generano nuovi modelli in una struttura definita dall'utente.

Gli NN classificano (o riconoscono) i modelli esistenti in base ai dati di addestramento forniti.

I GA si comportano bene nella ricerca efficiente di un ampio spazio statale di soluzioni e nella convergenza su una o più soluzioni valide, ma non necessariamente la soluzione "migliore".

Le NN possono imparare a riconoscere i modelli (attraverso l'addestramento), ma è notoriamente difficile capire cosa hanno imparato, cioè estrarre la conoscenza da loro una volta addestrata e riutilizzare la conoscenza in qualche altro (non-NN).


26

Stai confrontando due cose totalmente diverse qui.

Le reti neurali sono utilizzate per la regressione / classificazione - dato un insieme di esempi (x, y), si desidera regredire l'ignoto y per un dato x.

Gli algoritmi genetici sono una tecnica di ottimizzazione. Data una funzione f (x), si desidera determinare la x che minimizza / massimizza f (x).


10
Infatti. Sono davvero tecniche "ortogonali". È possibile utilizzare un GA per trovare pesi e / o architettura di reti neurali.
redcalx,

23

Ci sono molte somiglianze tra loro, quindi cercherò solo di delineare le loro differenze .

Reti neurali

Sono in grado di analizzare modelli online (quelli che cambiano nel tempo). In generale, questo è un campione che varia nel tempo e che deve essere abbinato e previsto.

Esempi :

  • Estrapolazione del grafico
  • Riconoscimento facciale

Algoritmi genetici

Utilizzato quando è possibile codificare gli attributi che si ritiene possano contribuire a un problema specifico e non modificabile. L'enfasi è sulla capacità di codificare questi attributi (a volte sai cosa sono) e che il problema è in larga misura immutabile (altrimenti le evoluzioni non convergono).

Esempi :

  • Pianificazione di aerei / spedizioni
  • Orari.
  • Trovare le migliori caratteristiche per un agente semplice in un ambiente artificiale
  • Rendering di un'approssimazione di un'immagine con poligoni casuali


8

Gli algoritmi genetici (di solito) funzionano su dati discreti (enumerazioni, intervalli di numeri interi, ecc.). Un'applicazione tipica per GA è la ricerca in uno spazio discreto di una soluzione "abbastanza buona" quando l'unica alternativa disponibile è una ricerca di forza bruta (che valuta tutte le combinazioni).

Le reti neurali, d'altra parte, (di solito) lavorano su dati continui (float, ecc.). Un'applicazione tipica per NN è l'approssimazione di funzioni, in cui hai un set X di input e un set Y di output correlati, ma la funzione analitica f: X → Y.

Naturalmente, ci sono migliaia di varianti di entrambi, quindi la linea tra loro è piuttosto sfocata.


5

Non esiste una regola empirica. In molti casi è possibile formulare il problema per farne uso. L'apprendimento automatico è ancora un'area attiva di ricerca e quale modello di apprendimento da utilizzare può essere discutibile.

I GA prendono linguaggi sexy dall'evoluzione, ma stai aspettando che il tuo computer si imbatta in una soluzione attraverso un processo casuale. Studia i tuoi dati, fai buone assunzioni, prova a sapere cosa vuoi e scegli un approccio che possa farne buon uso. Se la tua prima scelta dà scarsi risultati, sappi perché è stato così e migliora l'algoritmo stesso o scegline uno migliore.

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.