Sto cercando di capire l'architettura degli RNN. Ho trovato questo tutorial molto utile: http://colah.github.io/posts/2015-08-Understanding-LSTMs/
Come si inserisce in una rete feed-forward? Questa immagine è solo un altro nodo in ogni livello?
Sto cercando di capire l'architettura degli RNN. Ho trovato questo tutorial molto utile: http://colah.github.io/posts/2015-08-Understanding-LSTMs/
Come si inserisce in una rete feed-forward? Questa immagine è solo un altro nodo in ogni livello?
Risposte:
Nella tua immagine A è un singolo livello nascosto con un singolo neurone nascosto. Da sinistra a destra c'è l'asse del tempo e in fondo ricevi un input in ogni momento. Nella parte superiore la rete potrebbe essere ulteriormente espansa aggiungendo livelli.
Se aprissi questa rete in tempo, come mostrato visivamente nella tua immagine (da sinistra a destra l'asse del tempo è aperto), otterrai una rete feedforward con T (quantità totale di fasi temporali) livelli nascosti ciascuno contenente un nodo singolo (neurone) come viene disegnato nel blocco A centrale.
Spero che questo risponda alla tua domanda.
Vorrei spiegare quel semplice diagramma in un contesto relativamente complicato: meccanismo di attenzione nel decodificatore del modello seq2seq.
. Illustro il tuo problema usando questo perché tutti gli stati del timestep vengono salvati per il meccanismo di attenzione piuttosto che scartati solo per ottenere l'ultimo. È solo un neuronale ed è visto come uno strato (è possibile sovrapporre più strati per formare ad esempio un codificatore bidirezionale in alcuni modelli seq2seq per estrarre più informazioni astratte negli strati più alti).
Quindi codifica la frase (con le parole L e ognuna rappresentata come vettore della forma: embedding_dimention * 1) in un elenco di L tensori (ciascuna della forma: num_hidden / num_units * 1). E lo stato passato al decodificatore è solo l'ultimo vettore come incorporamento della frase della stessa forma di ciascun elemento nell'elenco.
Fonte immagine: meccanismo di attenzione