Qu'est-ce que LSTM, BiLSTM et quand les utiliser?

11

Je suis très nouveau dans le Deep Learning et je suis particulièrement intéressé à savoir ce que sont LSTM et BiLSTM et quand les utiliser (principaux domaines d'application). Pourquoi LSTM et BILSTM sont-ils plus populaires que RNN?

Pouvons-nous utiliser ces architectures d'apprentissage en profondeur dans des problèmes non supervisés?

Volka
la source
2
BiLSTM signifie LSTM bidirectionnel, ce qui signifie que le signal se propage aussi bien en arrière qu'en avant dans le temps. Vous pouvez également appliquer cette architecture à d'autres RNN. Pour plus de détails, veuillez lire en.wikipedia.org/wiki/Bidirectional_recurrent_neural_networks et colah.github.io/posts/2015-08-Understanding-LSTMs Bienvenue sur le site!
Emre
Voici un article , la différence entre RNN et LSTM et voici un blog pour démontrer la différence entre LSTM et Bidirectional-LTSM
Benyamin Jafari

Réponses:

7

RNNdes architectures comme LSTMet BiLSTMsont utilisées dans des occasions où le problème d'apprentissage est séquentiel, par exemple vous avez une vidéo et vous voulez savoir de quoi il s'agit ou vous voulez qu'un agent vous lise une ligne de document qui est une image de texte et qui est pas au format texte. Je vous encourage fortement à jeter un œil ici .

LSTMset leurs variantes bidirectionnelles sont populaires car elles ont essayé d'apprendre comment et quand oublier et quand ne pas utiliser de portes dans leur architecture. Dans les RNNarchitectures précédentes , la disparition des gradients était un gros problème et empêchait ces réseaux d'apprendre autant.

En utilisant Bidirectionnel LSTMs, vous alimentez l'algorithme d'apprentissage avec les données d'origine une fois du début à la fin et une fois de la fin au début. Il y a des débats ici, mais cela apprend généralement plus rapidement qu'une approche unidirectionnelle bien que cela dépende de la tâche.

Oui, vous pouvez également les utiliser dans un apprentissage non supervisé en fonction de votre tâche. jetez un oeil ici et ici .

Médias
la source
1
Merci beaucoup pour la merveilleuse réponse. Pouvons-nous utiliser lstm pour l'extraction de mots clés en PNL?
Volka
en fait, il y a beaucoup de papiers à leur sujet, par exemple vous pouvez voir ici et ici .
Media
Merci beaucoup. Je me demande simplement s'il existe une approche d'apprentissage en profondeur d'extraction de mots clés que nous pouvons utiliser?
Volka
en fait je ne l' ai pas vu, peut - être son mieux lui demander :)
médias
4

Les humains ne commencent pas leur réflexion à partir de zéro à chaque seconde. En lisant cet essai, vous comprenez chaque mot en fonction de votre compréhension des mots précédents. Vous ne jetez pas tout et recommencez à penser à partir de zéro. Vos pensées sont persistantes.

Les réseaux de neurones traditionnels ne peuvent pas faire cela, et cela semble être une lacune majeure. Par exemple, imaginez que vous souhaitez classer le type d'événement qui se produit à chaque étape d'un film. On ne sait pas comment un réseau de neurones traditionnel pourrait utiliser son raisonnement sur les événements précédents du film pour informer les événements ultérieurs.

Les réseaux de neurones récurrents résolvent ce problème. Ce sont des réseaux avec des boucles, permettant à l'information de persister.

Pour en savoir plus, consultez le blog de Cohen

Abhishek Sharma
la source
2

Par rapport à LSTM, BLSTMou BiLSTMpossède deux réseaux, un accès aux pastinformations dans le forwardsens et un autre accès futuredans le reversesens. WIKI

Une nouvelle classe Bidirectionalest ajoutée selon le document officiel ici :

model = Sequential()
model.add(Bidirectional(LSTM(num_channels, 
        implementation = 2, recurrent_activation = 'sigmoid'),
        input_shape=(input_length, input_dim)))

Un exemple complet utilisant des données IMDB sera comme ceci

ParthaSen
la source