1 strato nascosto con 1000 neuroni contro 10 strati nascosti con 100 neuroni


13

Questi tipi di domande possono dipendere dal problema, ma ho cercato di trovare una ricerca che risolva la questione se il numero di strati nascosti e la loro dimensione (numero di neuroni in ogni strato) contano davvero o meno.

Quindi la mia domanda è: importa davvero se ad esempio abbiamo 1 grande strato nascosto di 1000 neuroni contro 10 strati nascosti con 100 neuroni ciascuno?

Risposte:


12

Fondamentalmente, avere più livelli (aka una rete profonda) rende la tua rete più desiderosa di riconoscere alcuni aspetti dei dati di input. Ad esempio, se si dispone dei dettagli di una casa (dimensioni, dimensioni del prato, posizione ecc.) Come input e si desidera prevedere il prezzo. Il primo strato può prevedere:

  • Grande area, prezzo più alto
  • Piccola quantità di camere da letto, prezzo più basso

Il secondo strato potrebbe concludere:

  • Grande area + piccola quantità di camere da letto = ampie camere da letto = + - effetto

Sì, uno strato può anche "rilevare" le statistiche, tuttavia richiederà più neuroni in quanto non può fare affidamento su altri neuroni per fare "parti" del calcolo totale richiesto per rilevare tale stat.

Dai un'occhiata a questa risposta


Grazie mille per la tua risposta Giusto per chiarire, quando scrivi "rende la tua rete [...]", ti riferisci al caso in cui ho molti strati nascosti con meno neuroni ciascuno piuttosto che avere più neuroni in meno strati?
Stephen Johnson,

@StephenJohnson oops, ho modificato la domanda. Mi riferisco alla rete profonda (più livelli).
Thomas W,

Bella risposta, grazie ancora. Forse dovrei continuare questo in un altro thread, ma pensi che lo stesso tipo di ragionamento si applichi alle reti neurali ricorrenti come GRU o LSTM?
Stephen Johnson,

@StephenJohnson intendi una rete ricorrente a più livelli contro una rete ricorrente a più livelli o intendi a causa delle loro connessioni ricorrenti?
Thomas W,

Voglio dire in generale, a causa della presenza di connessioni ricorrenti che consentono loro di mappare contesti su distanze più lunghe, tali reti traggono vantaggio dall'essere profonde allo stesso modo di una normale rete feedforward? Forse non possono essere paragonati in questo modo poiché le reti ricorrenti vengono generalmente utilizzate quando si utilizzano dati sequenziali, come l'audio.
Stephen Johnson,

4

Ci sono così tanti aspetti.

1. Addestramento: l' addestramento delle reti profonde è un duro lavoro a causa del problema del gradiente che sta scomparendo (che esplode dietro). Pertanto non è consigliabile costruire una rete neurale 10x100.

2. Prestazioni di rete addestrate:

  • Perdita di informazioni: l'uso classico delle reti neurali è il problema della classificazione . Ciò significa che vogliamo ottenere alcune informazioni ben definite dai dati. (Es. C'è un volto nell'immagine o no.) Di solito il problema di classificazione ha un sacco di input, e pochi output, per di più le dimensioni dei layer nascosti scendono da input a output. Tuttavia, perdiamo informazioni usando meno neuroni strato per strato. (Vale a dire. Non possiamo riprodurre l'immagine originale in base al fatto che ci sia o meno un volto). Quindi devi sapere che perdi informazioni usando 100 neuroni se la dimensione dell'input è (diciamo) 1000.
  • Complessità delle informazioni: tuttavia le reti più profonde (come menzionato da Tomas W) possono recuperare informazioni più complesse dai dati di input. Nonostante ciò, non è consigliabile utilizzare 10 livelli completamente collegati. Si consiglia di utilizzare passaggi convoluzionali / relu / max o altri tipi di livelli. I livelli più Firest possono comprimere la parte essenziale degli input. (Ad esempio c'è una linea in una parte specifica dell'immagine) I secondi livelli possono dire: C'è una forma specifica in questo posto nella foto. Ecc. Ecc.

Le reti più profonde sono più "intelligenti" ma la struttura netta 10x100 è una buona scelta.


1

Se il problema che stai risolvendo è separabile linearmente, uno strato di 1000 neuroni può fare un lavoro migliore di 10 strati con ciascuno di 100 neuroni. Se il problema non è lineare e non convesso, sono necessarie reti neurali profonde.


2
Se il problema è linearmente separabile non hai bisogno di strati nascosti
Amedeo Baragiola,

0

Penso che tu abbia una confusione nelle basi delle reti neurali. Ogni strato ha una funzione di attivazione separata e pesi di connessione input / output.

L'output del primo livello nascosto verrà moltiplicato per un peso, elaborato da una funzione di attivazione nel livello successivo e così via. Le reti neurali a strato singolo sono molto limitate per compiti semplici, NN più profondo può funzionare molto meglio di un singolo strato.

Tuttavia, non utilizzare più di layer se l'applicazione non è abbastanza complessa. In conclusione, uno strato di 100 neuroni non significa una migliore rete neurale di 10 strati x 10 neuroni, ma 10 strati sono qualcosa di immaginario a meno che tu non stia facendo un apprendimento profondo. inizia con 10 neuroni nel livello nascosto e prova ad aggiungere livelli o aggiungi altri neuroni allo stesso livello per vedere la differenza. l'apprendimento con più livelli sarà più semplice ma è necessario più tempo di formazione.

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.