Reti neurali artificiali in evoluzione per la risoluzione dei problemi NP


10

Di recente ho letto un post di blog davvero interessante dal blog di ricerca di Google che parla della rete neurale. Fondamentalmente usano queste reti neurali per risolvere vari problemi come il riconoscimento delle immagini. Usano algoritmi genetici per "evolvere" i pesi degli assoni.

Quindi sostanzialmente la mia idea è la seguente. Se dovessi scrivere un programma che riconosca i numeri non saprei come iniziare (potrei avere qualche vaga idea ma il mio punto è: non è banale, né facile.) Ma usando la rete neurale non è necessario. Creando il giusto contesto per far evolvere la rete neurale, la mia rete neurale "troverà l'algoritmo corretto". In basso ho citato una parte davvero interessante dell'articolo in cui spiegano come ogni strato abbia un ruolo diverso nel processo di riconoscimento delle immagini.

Una delle sfide delle reti neurali è capire cosa succede esattamente ad ogni livello. Sappiamo che dopo l'allenamento, ogni strato estrae progressivamente caratteristiche di livello superiore e superiore dell'immagine, fino a quando il livello finale non prende sostanzialmente una decisione su ciò che l'immagine mostra. Ad esempio, il primo strato potrebbe cercare bordi o angoli. I livelli intermedi interpretano le caratteristiche di base per cercare forme o componenti complessivi, come una porta o un'anta. Gli ultimi pochi strati assemblano quelli in interpretazioni complete: questi neuroni si attivano in risposta a cose molto complesse come interi edifici o alberi.

Quindi sostanzialmente la mia domanda è la seguente: non potremmo usare algoritmi genetici + reti neurali per risolvere ogni problema NP? Creiamo semplicemente il giusto contesto evolutivo e lasciamo che la "natura" trovi una soluzione.

Inceptionism: approfondire le reti neurali

EDIT: So che possiamo usare Brute-Force o trovare una soluzione non efficiente in molti casi. Ecco perché provo a evidenziare le reti neurali artificiali in evoluzione . Come ho detto in un commento: dato il tempo sufficiente e un tasso di mutazione adeguato, siamo riusciti a trovare la soluzione ottimale (o almeno è quello che penso).

Concetto


1
Non dobbiamo. Possiamo semplicemente usare la forza bruta. Qual è il tuo obiettivo, esattamente?
Pål GD,

2
Non sono un esperto di reti neurali, quindi non so se possono essere addestrati per risolvere correttamente i problemi NP. Ma non penso che tu stia facendo la domanda giusta. Trovare un algoritmo che risolva un problema contenuto in NP di solito non è difficile, basta controllare ogni possibile soluzione. Tuttavia, trovare un algoritmo che risolva un problema NP-difficile in tempi polinomiali è una storia diversa e la sua esistenza è altamente improbabile. Poiché le reti neurali possono essere simulate da una macchina da trending, hanno ancora bisogno di un tempo super polinomiale a meno che P = NP e non sarà di grande aiuto.
Dennis Kraft,

sì, le reti neurali sono state usate contro i problemi completi di NP, ad esempio il commesso viaggiatore e molti altri e sul soggetto c'è ricerca / letteratura. possono avere alcune proprietà utili ma non si allontanano dai vincoli temporali della teoria della complessità come sottolinea DK.
vzn,

Il mio punto è: usare un tasso di mutazione appropriato e un tempo sufficiente potremmo (almeno teoricamente) trovare la soluzione ottimale. (O almeno un massimo locale) Immagine: Concept
NMO

2
Gli algoritmi genetici (e il resto del lotto di tecniche di "AI") sono essenzialmente randomizzati "prova un campione dello spazio della soluzione" con alcune intelligenze (euristiche) introdotte per renderlo non completamente casuale. No, non è meglio di "provare tutte le possibili soluzioni", il più delle volte molto peggio (in quanto non vi è alcuna garanzia di non ricontrollare lo stesso caso scartato). Certo, trovano soluzioni "decenti". Ma vogliamo trovare il meglio .
vonbrand,

Risposte:


21

No. È improbabile che questa direzione sia utile, per due motivi:

  1. La maggior parte degli informatici ritiene che P NP. Supponendo P NP, ciò significa che non esiste alcun algoritmo del tempo polinomiale per risolvere qualsiasi problema NP-completo. Se vuoi che la tua rete neurale risolva il problema in un ragionevole lasso di tempo, allora non può essere troppo grande, e quindi la rete neurale sarà essa stessa un algoritmo a tempo polinomiale. Ne consegue che se P NP, le reti neurali non sono in grado di risolvere in modo efficiente alcun problema NP-completo.

  2. Le reti neurali non sono "magiche". Sono un modo per cercare di trovare schemi. Per alcuni problemi in cui vi sono modelli abbastanza forti da trovare, e i modelli possono essere appresi da un numero ragionevole di esempi, potrebbero essere efficaci. Ma non sono magici polvere di fata. Solo perché puoi configurare una rete neurale non significa che la backpropagazione troverà necessariamente un buon modo per risolvere il tuo problema. È possibile che non ci siano modelli da trovare, che i modelli possano essere scoperti solo con un numero imprecisabile di esempi o che esistano modelli ma la procedura di addestramento della rete neurale non è in grado di trovarli.

Le reti neurali sono solo un'altra forma di apprendimento automatico. Potremmo fare le stesse osservazioni sugli SVM o sulle foreste casuali o sulla regressione lineare di qualsiasi altra forma di apprendimento automatico. Le reti neurali non sono una sorta di magico proiettile d'argento che risolve tutti i problemi di apprendimento automatico. Sono efficaci quanto gli altri metodi di apprendimento automatico o per alcuni tipi di problemi, forse un po 'più efficaci, ma non sono magici.

A volte incontro persone che hanno sentito solo un po 'di reti neurali e se ne vanno pensando che le reti neurali siano la risposta a tutto, forse perché hanno sentito che "il tuo cervello usa anche le reti neurali" o ne hanno viste bella applicazione (riconoscimento vocale o qualcosa del genere). Ma non lasciarti ingannare. Non credere all'hype. Le reti neurali sono una tecnica utile, ma non permetteranno ai computer di risolvere i problemi NP-completi, o di battere il test di Turing, portare via tutti i nostri lavori e sostituire gli umani con i computer. Non presto, comunque. Questa è solo fantascienza.


1
Davvero una buona risposta. Algoritmi genetici + reti neurali sembrano molto potenti ma forse non è abbastanza per risolvere ogni problema np. Immagino di lasciare queste reti neurali + algoritmi genetici allo stato selvatico alla ricerca di queste soluzioni p. Come piccoli scout ahah.
NMO,

1
Vale anche la pena notare che le reti neurali in genere forniscono alcune probabilità di trovare la risposta corretta, non una garanzia. Quando si rilassano i requisiti del problema per consentire soluzioni non ottimali, ci sono spesso soluzioni pratiche ai problemi NP-completi, nonostante la loro intrattabilità nel caso peggiore.
Dan Bryant,

9

Sembra che altre risposte mentre informazioni / utili non stiano effettivamente capendo esattamente la tua domanda e ci stiano leggendo un po 'troppo. Non hai chiesto se le reti neurali avrebbero sovraperformato altri metodi, hai solo chiesto se potevano essere applicate a problemi NP completi. La risposta è sì, con un certo successo e questo è noto da decenni e c'è una grande varietà di ricerche su questo, e continua. Ciò ha a che fare con la flessibilità dell'apprendimento automatico. Si noti che anche se non trovano soluzioni esatte o ottimali, le soluzioni che hanno possono avere altre proprietà desiderabili. alcuni documenti di esempio:


4

Le reti neurali in realtà non risolvono i problemi NP-completi. Quello che fanno è risolvere i problemi che sono notevolmente vicini ai problemi NP-completi.

Una grande caratteristica delle reti neurali è che non sono obbligate a trovare la risposta "giusta" ogni volta. Possono essere "sbagliati". Ad esempio, potresti risolvere un problema di impacchettamento e arrivare a una soluzione che è dell'1% di sconto rispetto alla soluzione ideale ed essere totalmente soddisfatto di quella risposta.

Se rimuovi il requisito di essere sempre al 100% giusto, altri approcci per la risoluzione dei problemi funzionano molto bene. Ad esempio, molti algoritmi di pianificazione del percorso (come la Google Maps) devono essere NP-completi, ma è abbastanza banale trovare un algoritmo che trovi un percorso nell'1% del 99,9% ottimale del tempo. Sta cercando di individuare i risultati in quell'ultimo 0,1% dei casi che spingono gli sforzi compiuti da NP a essere così incredibilmente costosi.

Come succede, quando proviamo a usare equazioni NP complete nella vita reale, spesso non abbiamo bisogno della risposta effettiva . Spesso ci sentiamo molto a nostro agio con una risposta "stretta", anche se spesso non abbiamo una formulazione per spiegare quale metrica "stretta" stiamo usando. Queste sono le situazioni in cui una rete neurale può rispondere all'effettiva domanda che volevi porre, piuttosto che dover effettivamente risolvere il problema NP-completo che hai chiesto invece.


1

È noto che le reti neurali sono in grado di approssimare la funzione universale , ma ciò richiede di addestrarle sul problema (ottimizzazione) che è un problema NP completo in sé e per sé , motivo per cui si ha un allenamento evolutivo e SGD con backpropagation e così via.

Pertanto, anche se non è probabile che risolvano i problemi NP-completi, possono essere addestrati per approssimare ad un grado arbitrario di precisione una funzione che modella il problema. Inoltre, anche se ti capita di risolvere in modo ottimale un problema NP-completo usando una rete neurale, non hai ancora modo di dimostrare che la soluzione trovata sia in realtà l'ottimale globale senza forzare brutalmente la soluzione (questo ovviamente non è fattibile per quasi tutti gli aspetti pratici caso d'uso di reti neurali).

La tua visualizzazione è accurata nel senso che gli algoritmi evolutivi (vedi come l' algoritmo pulito impedisce a una singola specie di impadronirsi della popolazione con una struttura inizialmente altamente performante utilizzando la forma fisica condivisa) sono meno adatti di SGD e altre tecniche di apprendimento automatico da intrappolare ottimum locali ma non forniscono alcuna prova che la soluzione che trovano sia in realtà la soluzione globale ottimale.


Potresti aggiungere alcuni riferimenti alla tua risposta? Inoltre, prova a migliorare la formattazione (ad esempio, usa NP, SGD, backpropagation e così via, e forse aggiungi alcune interruzioni di riga).
Yuval Filmus,

Bene, alcune modifiche mi hanno fatto sapere se avrei dovuto approfondire dovunque
Nickw

Penso che dovresti fornire una giustificazione per l'affermazione secondo cui "gli algoritmi evolutivi ... sono meno adatti di SGD e altre tecniche di apprendimento automatico da intrappolare negli ottimum locali". Non credo sia giusto, soprattutto per il compito particolare di formare reti neurali.
DW

Questa risposta ha un po 'di confusione sulla definizione di completezza NP. Contrariamente a quanto si sostiene, se risolviamo un problema NP-completo, siamo in grado di verificare se abbiamo la soluzione giusta. C'è una differenza tra un problema di ricerca NP-completo e un problema di ottimizzazione NP-hard; per il primo, possiamo effettivamente verificare in modo efficiente se la soluzione è corretta, ma per il secondo potremmo non essere in grado di farlo.
DW

Mi sono qualificato che non siamo riusciti a verificare che sia la soluzione ottimale senza la brutale forzatura prima della soluzione veramente ottimale, non è corretto? Ho fornito la giustificazione per il mio ragionamento sul fatto che la neuroevoluzione è meno adatta a rimanere bloccata negli ottimum locali con il collegamento di riferimento all'algoritmo pulito e alla forma fisica condivisa, penso che la suscettibilità delle discendenze graduali all'essere bloccati negli ottimum locali sia piuttosto evidente e mentre una sintonizzazione dell'iperparametro il quadro può aiutare ad alleviare questo non accrediterei che come avversione sgd possiede per rimanere bloccato.
Nickw
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.