Come iniziare con le reti neurali


32

Sono completamente nuovo alle reti neurali ma sono molto interessato a capirle. Tuttavia, non è affatto facile iniziare.
Qualcuno potrebbe raccomandare un buon libro o qualsiasi altro tipo di risorsa? C'è un must da leggere?
Sono grato per qualsiasi tipo di suggerimento.


11
C'è anche un corso che Goeff Hinton sta insegnando tramite Coursera su Neural Networks che inizierà la prossima settimana: coursera.org/course/neuralnets
Marc Shivers,

Questo corso sembra interessante, ma dal video e dalla pagina web, immagino che non sia progettato come un'introduzione.
Douglas Zare,

@DouglasZare: sto finendo il corso di Hinton e in alcune parti sono stato contento di aver seguito per la prima volta il corso ML di Andrew Ng.
Andrew,

1
Sì, l'ho preso anch'io. È stato un ottimo corso e nessuna presentazione.
Douglas Zare,

Blog e tutorial sulle reti neurali per principianti learn-neural-networks.com
Фаиль Гафаров

Risposte:


33

Le reti neurali sono in circolazione da un po 'e sono cambiate radicalmente nel corso degli anni. Se cerchi solo sul web, potresti finire con l'impressione che "rete neurale" significhi una rete feedforward multistrato addestrata con la propagazione all'indietro. Oppure potresti imbatterti in una qualsiasi delle dozzine di modelli usati raramente e dai nomi bizzarri e concludere che le reti neurali sono più uno zoo che un progetto di ricerca. O che sono una novità. O...

Potrei andare avanti. Se vuoi una spiegazione chiara, ascolterei Geoffrey Hinton . È in circolazione da sempre e (quindi?) Fa un ottimo lavoro intrecciando tutti i modelli disparati su cui ha lavorato in una narrativa storica coerente, intuitiva (e talvolta teorica). Sulla sua home page, ci sono collegamenti a Google Tech Talks e alle lezioni di Videolectures.net che ha tenuto (su RBM e Deep Learning , tra gli altri).

Da come la vedo io, ecco una road map storica e pedagogica per comprendere le reti neurali, dal loro inizio allo stato dell'arte:

  • perceptrons
    • Facile da capire
    • Gravemente limitato
  • Multistrato, addestrato da back-propogation
    • Molte risorse per impararle
    • Generalmente non fare così come SVM
  • Macchine Boltzmann
    • Modo interessante di pensare alla stabilità di una rete ricorrente in termini di "energia"
    • Guarda le reti Hopfield se vuoi un esempio facile da capire (ma non molto pratico) di reti ricorrenti con "energia".
    • Teoricamente interessante, inutile nella pratica (allenamento alla stessa velocità della deriva continentale)
  • Macchine Boltzmann limitate
    • Utile!
    • Sviluppa la teoria delle macchine Boltzmann
    • Alcune buone introduzioni sul web
  • Reti di credenze profonde
    • Per quanto ne so, questa è una classe di meccanismi multi-layer per l'apprendimento semi-supervisionato.
    • Alcune risorse

1
Grazie mille per questa visione d'insieme e per quelle tante risorse!
Claudio Albertin,

2
Nessun problema. Buona fortuna per i tuoi sforzi nella rete neurale.
Stumpy Joe Pete,

8

Consiglio vivamente di guardare queste lezioni e di usarlo come materiale di lettura . Queste lezioni sono sull'apprendimento automatico in generale di Andrew Ng che parla a lungo delle reti neurali e si sforza di renderlo accessibile ai principianti.


Potresti indicare i titoli? I collegamenti potrebbero diventare morti in futuro ...
Richard Hardy

5

Questi sono, secondo me, dei libri molto buoni.

  • R. Rojas: reti neurali
  • CM Bishop: reti neurali per il riconoscimento di pattern

I libri hanno alcune somiglianze: sono lunghi circa 500 pagine e sono piuttosto vecchi, dal 1995. Tuttavia, rimangono molto utili. Entrambi i libri iniziano da zero, spiegando cosa sono le reti neurali. Forniscono spiegazioni chiare, buoni esempi e buoni grafici per facilitare la comprensione. Spiegano in dettaglio le problematiche della formazione delle reti neurali, nelle loro molte forme e forme, e cosa possono e non possono fare. I due libri si completano a vicenda molto bene, per quello che uno non riesce a capire con un libro, uno tende a trovarsi nell'altro.

Rojas ha una sezione, che mi piace particolarmente, sull'implementazione della retro-propagazione su molti strati in forma di matrice. Ha anche una bella sezione sulla logica fuzzy e una sulla teoria della complessità. Ma poi Bishop ha molte altre belle sezioni.

Rojas è, direi, il più accessibile. Bishop è più matematico e forse più sofisticato. In entrambi i libri, la matematica è per lo più algebra lineare e calcolo delle funzioni di più variabili (derivate parziali e così via). Senza alcuna conoscenza di questi argomenti, probabilmente non troverete nessuno di questi libri molto illuminante.

Consiglierei di leggere prima Rojas.

Entrambi i libri, ovviamente, hanno molto da dire sugli algoritmi, ma nessuno dei due dice molto su implementazioni specifiche nel codice.

Per me, questi libri forniscono lo sfondo, che rende comprensibile un corso online (come quello di Hinton, a Coursera). I libri coprono anche molto più terreno, e in modo molto più dettagliato, di quanto si possa fare online.

Spero che questo aiuti, e sono felice di rispondere a qualsiasi domanda sui libri.


3
Benvenuto nel sito, @Old_Mortality. Puoi dire qualcosa su quei libri? Cosa c'è di buono in loro? Sono appropriati per le persone con un certo livello di sofisticazione matematica e / o di codice? Quale consiglieresti che l'OP leggesse per primo? Ecc.
Gung - Ripristina Monica

1
Grazie per il suggerimento Ho modificato la mia risposta sopra.
Old_Mortality,

3

Come altri hanno sottolineato, ci sono molte (buone) risorse online e ne ho fatte personalmente alcune:

  • Intro alla classe ML di Ng su Coursera
  • Classe di reti neurali di Hinton su Coursera
  • Tutorial di deep learning di Ng
  • leggere i capitoli pertinenti nell'elaborazione distribuita parallela originale

Voglio attirare l'attenzione sul fatto che queste esposizioni hanno seguito per lo più il trattamento classico in cui gli strati (somma e non linearità insieme) sono le unità di base. Il trattamento più popolare e flessibile implementato nella maggior parte delle biblioteche come torch-nn e tensorflow, ora utilizza un grafico di calcolo con auto-differenziazione per ottenere un'elevata modularità. Concettualmente è più semplice e più liberatorio. Consiglio vivamente l'eccellente corso aperto Stanford CS231n per questo trattamento.

Per un trattamento rigoroso e teorico dell'apprendimento, potresti voler consultare Neural Networks di Anthony e Bartlett.



0

Ho creato un'applicazione web che supporta il tuo processo di apprendimento nel campo delle reti neurali.

https://blueneurons.ch/nn

Puoi giocare con le impostazioni (architettura, funzioni di attivazione, impostazioni di allenamento) e osservare come le impostazioni influenzano le previsioni. Tutti i set di dati hanno valori preconfigurati che possono essere adottati. È anche possibile creare set di dati personalizzati.

Istruzioni e spiegazioni agli elementi implementati:

Guida utente

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.