Modele de bancuri

En tout, c`était amusant de jouer avec les hyperparamètres RNN pour trouver un bon ajustement pour le jeu de données Short blagues en surveillant attentivement la perte de formation et de validation de temps en temps. Il semble si naturel de voir la façon dont RNN apprend à écrire des personnages, des mots et des phrases de formes, ce qui fait sens! Mais il ya encore beaucoup de portée de la recherche dans l`espace RNN, pour les faire écrire de façon créative et d`apprendre à réfléchir étape par étape comme les humains. Maintenant vient la partie amusante! Examinons les échantillons générés par le réseau LSTM que j`ai formés pendant quelques jours sur les jeux de données Short blagues. Après avoir fait une analyse des blagues dans le jeu de données de blagues courtes, j`ai observé que la plupart d`entre eux ont une longueur inférieure à 150. La longueur de séquence du modèle LSTM est également un paramètre crucial. Il se rapporte au nombre d`étapes de temps pour lesquelles LSTM déroule et propage des gradients dans le passage arrière c.-à-d. RNN est capable de modéliser des dépendances seulement jusqu`à ces étapes de temps. Lors de la célébration de la journée des fous d`avril, nous avons demandé à nos anciens élèves de l`Institut des Nations Unies quelles étaient leurs blagues préférées du modèle ONU. Voici le Top 10! Le jeu de données Short blagues a plus de 22 millions jetons. Il est généralement conseillé de conserver un modèle qui a le même ordre de grandeur que le nombre de paramètres. Un modèle LSTM 3 couches avec 1024 unités cachées dans chaque couche satisfait à ce critère car il a environ 22 millions paramètres.

J`ai essayé le modèle avec et sans Dropout, mais dans les deux cas, après certaines itérations, la perte de validation est devenue constante à environ 1,15. Quelles sont vos blagues préférées du modèle des Nations Unies? Partagez-les dans les commentaires ci-dessous, et gardez-le diplomatique! Le programmeur a dit: ”pourquoi ne pas y retourner et voir si c`est reproductible?” Bien sûr, certains des échantillons générés n`ont pas de sens parce que le RNN se confondent entre les contextes de deux blagues. Mais parfois, cette confusion se traduit aussi par des antiblagues! Pour en savoir plus, j`ai compilé les transcriptions de tous les épisodes de la série télévisée F. R. I. E. N. D. S dans un seul fichier texte de 2, 9MB et formé un réseau LSTM de 3 couches avec 512 unités. Il apprend à bien démarrer et fermer un épisode avec des rideaux de fermeture, la façon dont les caractères entrent et partent.

Vous pouvez jeter un oeil au texte généré ici. Dans ce problème, j`ai utilisé un niveau de caractère LSTM pour la production de blagues, c`est-à-dire l`entrée et la sortie de la couche LSTM est juste un seul caractère. Par conséquent, nous ne modélisons aucune sémantique de haut niveau abstrait comme les mots, la langue, etc. Étonnamment, comme nous le remarquons dans d`autres sections, RNN est capable d`apprendre implicitement ces sémantiques sur ses propres. Dans le troisième échantillon ci-dessus, le RNN n`a même pas soin de compléter la blague en venant avec un Punchline! Pour trouver un bon modèle, j`ai essayé différentes architectures de RNNs avec le nombre variable de couches, le nombre d`unités cachées dans chaque couche, la longueur de séquence et la taille de lot. Tous ces hyperparamètres doivent être réglés intelligemment en fonction du jeu de données sinon un surajustement ou un sous-ajustement peut se produire. Les réseaux neuronaux récurrents (RNNs) sont utiles pour modéliser des données séquentielles, ce qui implique un modèle temporel comme le texte, le sous-titrage d`image, les données du patient ICU, etc. Il s`agit d`un réseau neuronal d`avance simple avec rétroaction. À chaque TimeStep, basé sur l`entrée actuelle et la sortie passée, il génère une nouvelle sortie. Une architecture de réseau neuronal récurrent simple ressemble à: les rnns sont beaucoup plus flexibles qu`un simple réseau neuronal de anticipatif. Nous pouvons passer des entrées de taille variable aux RNNs et même obtenir une sortie de taille variable.

Par exemple, un RNN peut être modélisé pour apprendre l`addition binaire bit par bit. Il apprend le diagramme de machine d`état d`un Adder binaire.