Quali sono alcune buone risorse per conoscere le reti neurali artificiali? [chiuso]


109

Sono davvero interessato alle reti neurali artificiali, ma sto cercando un punto di partenza.

Quali sono le risorse disponibili e qual è un buon progetto di partenza?


Presumo, reti neurali artificiali? A quale area sei interessato (a cosa lo applicheresti: scrittura a mano, classificazione, logica)?
polarizzazione

Immagino, logica: stavo pensando a un robot in un labirinto o qualcosa del genere e provando diversi algoritmi, ma facendo in modo che la rete decidesse qual è il migliore, ecc.
cbrulak

3
C'è davvero un ottimo corso sul corso di Geoffrey Hinton sulle reti neurali. Inizia con le basi e finisce con approcci all'avanguardia e anche di più.
alfa

4
Il corso Machine Learning di Andrew Ng è quello che consiglio per i principianti, prima di fare il corso di Geoffrey Hinton che affronta reti neurali più avanzate e aspetti teorici.
gaborous

Risposte:


17

Ecco alcuni esempi di programmazione della rete neurale. http://www.codeproject.com/KB/recipes/neural_dot_net.aspx

puoi iniziare a leggere qui: http://web.archive.org/web/20071025010456/http://www.geocities.com/CapeCanaveral/Lab/3765/neural.html

Da parte mia ho visitato un corso sull'argomento e ho lavorato su un po 'di letteratura.


2
Geocities è andato giù pochi giorni fa ma c'è una versione archiviata su web.archive.org/web/20071025010456/http://www.geocities.com/… (almeno per ora ...)
RCIX

33

Prima di tutto, rinuncia a qualsiasi idea che le reti neurali artificiali abbiano qualcosa a che fare con il cervello, ma per una somiglianza passeggera con le reti di neuroni biologici. L'apprendimento della biologia non ti aiuterà ad applicare efficacemente le reti neurali; imparare l'algebra lineare, il calcolo e la teoria della probabilità. Dovresti almeno familiarizzare con l'idea della differenziazione di base delle funzioni, la regola della catena, le derivate parziali (il gradiente, lo Jacobiano e l'Assia) e comprendere la moltiplicazione e diagonalizzazione di matrici.

In realtà quello che stai facendo quando alleni una rete è ottimizzare una grande funzione multidimensionale (riducendo al minimo la misura dell'errore rispetto a ciascuno dei pesi nella rete), e quindi un'indagine sulle tecniche per l'ottimizzazione numerica non lineare può rivelarsi istruttiva. Questo è un problema ampiamente studiato con un'ampia base di letteratura al di fuori delle reti neurali, e sul web sono disponibili molte dispense sull'ottimizzazione numerica. Per iniziare, la maggior parte delle persone usa la semplice discesa del gradiente , ma può essere molto più lenta e meno efficace di metodi più sfumati come

Una volta apprese le idee di base, puoi iniziare a sperimentare con diverse funzioni di "schiacciamento" nel tuo livello nascosto, aggiungendo vari tipi di regolarizzazione e varie modifiche per velocizzare l'apprendimento. Vedere questo documento per un elenco completo delle "migliori pratiche".

Uno dei migliori libri sull'argomento è Neural Networks for Pattern Recognition di Chris Bishop . È abbastanza vecchio in questa fase, ma è ancora una risorsa eccellente e spesso puoi trovare copie usate online per circa $ 30. Anche il capitolo sulla rete neurale nel suo libro più recente, Pattern Recognition and Machine Learning , è abbastanza completo. Per un tutorial incentrato sull'implementazione particolarmente buono, guarda questo su CodeProject.com che implementa un tipo intelligente di rete chiamato rete convoluzionale, che limita la connettività in modo tale da renderlo molto bravo nell'apprendimento della classificazione dei modelli visivi.

Le macchine vettoriali di supporto e altri metodi del kernel sono diventati molto popolari perché puoi applicarli senza sapere cosa diavolo stai facendo e spesso ottenere risultati accettabili. Le reti neurali, d'altra parte, sono enormi problemi di ottimizzazione che richiedono un'attenta messa a punto, sebbene siano ancora preferibili per molti problemi, in particolare problemi su larga scala in domini come la visione artificiale.


Buon punto. Un neurone è solo un'unità logistica che deriva dalla regressione logistica. Quindi vengono create unità di regressione multifase e chiamate reti neurali perché "assomigliano" a reti neurali. Non è ispirato dal cervello o simili.
ozgur

Non è proprio corretto affermare che studiare le neuroscienze reali non sarebbe di aiuto per la ricerca in questo campo. Jeff Hawkins e la sua ricerca hanno tentato di incorporare più conoscenze sulla neurobiologia nel suo lavoro sugli HTM. HTM funziona abbastanza bene. Alla fine, lo studio della neurobiologia può essere utile se intendi provare a ricercare nuove topologie di rete e tecniche di interazione che imitano esempi biologici reali. Se intendi semplicemente utilizzare ciò che gli altri hanno già studiato, piuttosto che fare la tua ricerca, allora sì, la ricerca sulle neuroscienze potrebbe essere inutile.
SmugDoodleBug


11

Le reti neurali sono una specie di declassamento in questi giorni. Le macchine vettoriali di supporto ei metodi del kernel sono migliori per più classi di problemi rispetto alla backpropagation. Le reti neurali e gli algoritmi genetici catturano l'immaginazione di persone che non sanno molto sull'apprendimento automatico moderno ma non sono allo stato dell'arte.

Se vuoi saperne di più sull'intelligenza artificiale e sull'apprendimento automatico, ti consiglio di leggere Intelligenza artificiale di Peter Norvig : un approccio moderno . È un'ampia indagine sull'intelligenza artificiale e molte tecnologie moderne. Ripercorre la storia e anche le tecniche più vecchie e ti fornirà una base più completa sulle basi dell'IA e dell'apprendimento automatico.

Tuttavia, le reti neurali sono piuttosto semplici. Soprattutto se usi un algoritmo genetico per determinare i pesi, piuttosto che una corretta backpropagation.


1
La rete neurale non consiste solo di backpropagation; ci sono tantissime altre reti: memorie associative, SOFM di Kohonen, reti basate sulla risonanza adattiva e così via ... MLP e backpropagation sono le reti più popolari, ma non le più performanti ...
lmsasu

3
"Le reti neurali sono una specie di declassamento in questi giorni" - beh, non più. Le tecniche di "apprendimento profondo" per l'addestramento di NN multistrato e l'architettura ad hoc NN sembrano essere tra le cose più interessanti del ML in questo momento. Solo un esempio tra i tanti, googleresearch.blogspot.co.uk/2015/03/…
John Donn

5

Secondo la raccomandazione dwf di Neural Networks for Pattern Recognition di Chris Bishop. Anche se forse non è un testo iniziale. Norvig o un tutorial online (con codice in Matlab!) Sarebbero probabilmente un'introduzione più delicata.

Un buon progetto iniziale sarebbe OCR (Optical Character Recognition). È possibile eseguire la scansione di pagine di testo e alimentare ogni carattere attraverso la rete per eseguire la classificazione. (Dovresti addestrare prima la rete ovviamente!).



4

Posso consigliare da dove non iniziare. Ho acquistato An Introduction to Neural Networks di Kevin Gurney che ha buone recensioni su Amazon e afferma di essere "un'introduzione altamente accessibile a uno degli argomenti più importanti della scienza cognitiva e informatica". Personalmente, non consiglierei questo libro come inizio. Riesco a comprenderne solo il 10% circa, ma forse sono solo io (l'inglese non è la mia lingua madre). Esaminerò altre opzioni da questo thread.


3

http://www.ai-junkie.com/ann/evolved/nnt1.html è una chiara introduzione al perceptron multistrato, sebbene non descriva l'algoritmo di backpropagation

puoi anche dare un'occhiata a generation5.org che fornisce molti articoli sull'intelligenza artificiale in generale e ha alcuni ottimi testi sulla rete neurale


2

Se non ti dispiace spendere soldi, The Handbook of Brain Theory and Neural Networks è molto buono. Contiene 287 articoli che coprono la ricerca in molte discipline. Inizia con un'introduzione e una teoria e poi evidenzia i percorsi attraverso gli articoli per coprire al meglio i tuoi interessi.

Per quanto riguarda un primo progetto, le mappe di Kohonen sono interessanti per la categorizzazione : trova relazioni nascoste nella tua raccolta musicale, costruisci un robot intelligente o risolvi il premio Netflix .


1

Penso che un buon punto di partenza sarebbe sempre Wikipedia . Lì troverai alcuni link utili a documentazioni e progetti che utilizzano anche reti neurali.




1

Ho trovato il libro di testo "Computational Intelligence" incredibilmente utile.



1

Sono d'accordo con le altre persone che hanno detto che studiare biologia non è un buon punto di partenza ... perché ci sono molte informazioni irrilevanti in biologia. Non è necessario capire come funziona un neurone per ricreare la sua funzionalità: è sufficiente simulare le sue azioni. Raccomando "How To Create A Mind" di Ray Kurzweil - entra nell'aspetto della biologia che è rilevante per i modelli computazionali, (creando un neurone simulato combinando diversi input e attivando una volta raggiunta una soglia) ma ignora le cose irrilevanti come il modo in cui il neurone aggiunge effettivamente gli input al cambiamento. (Utilizzerai solo + e una disuguaglianza per confrontare una soglia, ad esempio)

Vorrei anche sottolineare che il libro non parla realmente di "creare una mente", ma si concentra solo sul riconoscimento di schemi gerarchici / la neocorteccia. Il tema generale è stato discusso sin dagli anni '80, credo, quindi ci sono molti libri più vecchi che probabilmente contengono forme leggermente datate delle stesse informazioni. Ho letto documenti meno recenti che affermano che il sistema di visione, ad esempio, è un riconoscimento di pattern a più livelli. Sostiene che questo vale per l'intera neocorteccia. Inoltre, prendi le sue "previsioni" con le pinze: le sue stime hardware sono probabilmente piuttosto accurate, ma penso che sottovaluti quanto possano essere complicate le attività semplici (es: guidare un'auto). Certo, ha visto molti progressi (e ne ha fatto parte), ma penso ancora che sia troppo ottimista. C'è una grande differenza tra un'auto con intelligenza artificiale in grado di guidare per un miglio con successo il 90% delle volte, rispetto al 99,9% che un essere umano può fare. Non mi aspetto che nessuna intelligenza artificiale sia veramente fuori a guidarmi per almeno 20 anni ... (non conto le auto BMW che devono essere `` addestrate '' sul percorso effettivo, poiché non stanno giocando allo stesso modo gioco)

Se hai già un'idea di base di cosa sia l'IA e di come possa essere modellata, potrebbe essere meglio saltare a qualcosa di più tecnico.


0

Se vuoi imparare rapidamente le applicazioni di alcuni concetti di rete neurale su un vero simulatore, c'è un ottimo libro online (ora wiki) chiamato "Neuroscienze cognitive computazionali" su http://grey.colorado.edu/CompCogNeuro/index. php / CCNBook / Main

Il libro viene utilizzato nelle scuole come un libro di testo e ti porta attraverso molte aree cerebrali diverse, dai singoli neuroni fino al funzionamento esecutivo di ordine superiore.

Inoltre, ogni sezione è aumentata con i "progetti" dei compiti che sono già disponibili per te. Basta scaricare, seguire i passaggi e simulare tutto ciò di cui ha parlato il capitolo. Il software che usano, Emergent, è un po 'schizzinoso ma incredibilmente robusto: credo sia il prodotto di più di 10 anni di lavoro.

L'ho affrontato in un corso di laurea lo scorso semestre ed è stato fantastico. Ti accompagna passo dopo passo attraverso tutto

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.