Harry Potter et l’expérience d’apprentissage en profondeur

Il y a trois ans (à l’époque où enseigner aux RNN à générer du texte était cool), j’ai eu cette idée de former un modèle TensorFlow avec les livres de Harry Potter. Ce projet était sur ma liste et il me chassait.
Ce week-end, je l’ai finalement fait et j’ai aussi fait un simple Streamlit application pour jouer avec le modèle: https://harry-dl.uc.r.appspot.com/
Harry s’assit à côté de l’est allé voir quand Harry lisait les escaliers.
« Tellement désolé, votre sang, M. Baron, la classe de Snape sur votre joue, Potter, ou je ne serais pas tous les deux bien pire que même Dudley. Dudley avait fait partie de la bibliothèque; il a avalé beaucoup de nouvelles questions qui venaient juste de se terminer.
Alors mets-moi! N’ayez pas peur! Et n’entrez pas dans notre première semaine. À plus. »
Fred et George Weasley étaient responsables d’avoir essayé d’arrêter Gryffondor pour la première fois quelque chose qui l’inquiétait beaucoup comme Oncle Vernon. Il a eu beaucoup de mal à tenir sa lettre. Il rendit silencieusement. Il ne doit pas vouloir le dire à Harry? «
Harry entendit les petites pièces de bronze, et le hibou entra et laissa tomber le journal sur Hagrid, qui plongea dessus et réussit à passer ses examens quand il s’attendait à moitié à ce que Voldemort revienne.
« Qu’est-ce qu’un duel de sorcier? » dit Harry et Ron.
Comme vous pouvez le voir, la plupart des phrases n’ont pas de sens, mais toutes ont été générées par un ordinateur et c’est la partie impressionnante.
Nan. Voyons un exemple du processus d’apprentissage pour comprendre pourquoi.
Voici quelques-uns des textes générés par le modèle.
Époque 1: à la première époque (passage complet de l’entraînement sur l’ensemble des données), nous voyons ce qu’il semble être juste des lettres et des caractères aléatoires.
sngns yiiy I rad yit se ke sery Ro, "udGct touveid. samtd ccift, the. fpe gincy lindos ys Towe feeng beunat
)X h so-int rines Hufons nsmtheis anmin f oideyhend wrratt hit le therf arerre he fo ke thomecAg voutud unfed fow suk rond thet
macughilg wares thirstof hy youMl hed folh,
Époque 2: presque le même qu’avant.
"Mald sined ro fastrong orryfe frourd hot'dilg trimt wa thin ware ne bamly oue ntho feringseps thag catkirgen tu hime baicf sait yoveece way yonerbyedene nomt thaney an'thing ve fuba carpouflit Serofy," saided one whizciof Harr wiole, I it the pie pevainigrofle pors
Époque 5: ici, nous voyons des progrès. Il apprend comment créer des paragraphes et il a appris à épeler Ron correctement et il l’a presque fait Hermione. Un autre fait intéressant est qu’il a appris que chaque paragraphe doit se terminer par un point.
daven lack a grivert He mad eets plaiced. The inares, ruther Inard in brigt tuffing a to kinares." "Haw do get brousl purny to seize whis with hem looking by. We's if ge.
"Haryy, you, wande -- recatbladred got Herwione, and Harry ando, him some wich nover Durn Ron. Ho said abeary own exard to ke to nextsen, mowned megrmings.
Époque 10: Il appris à épeler Snape, Harry, Dudley et Hermione!
Harry fast roy winged and same forward that Snape heard fat looked at all. Small not about is but he didn't makber, wh they furged him. "It's going to lim, I'll never thought that Curse for dong tone ach ins other, could poney. Harry flocked Dudley this if he soll that Hermione had be before wouldn't meville. 'veryto his rrom -- and he stop its head. I've reed Lonnem. Snape was gonew like Harry's gettid himmered in elor without hair.
Époque 50: notez que dans le deuxième paragraphe, il a appris à utiliser correctement les guillemets (orthographiquement).
Neville had been hand stretching to watch as Harry sped straight at Snape -- she didn't even noticed in tim again. After burning all the letters, he was made difficult by Fathers s had been waiting noise and the sheets a hote there, with right dewild!""But what's only shop."Harry nodded, but stopped quickly, because it made different time was protected wherever he went.
Il essaie donc essentiellement de reproduire J.K. Style et ton d’écriture de Rowling.
Andrej Karpathy est l’une des meilleures ressources pour comprendre comment cela fonctionne. article de blog à partir de 2015. Je prendrai la liberté d’utiliser l’un de ses exemples.
Imaginons que tout notre vocabulaire se compose des quatre lettres: h, e, l, o. Et nous divisons notre texte en morceaux de longueur = 4 et nous voulons entraîner notre RNN sur la séquence «bonjour».
Dans ce cas, notre séquence d’entrée serait «enfer» et la séquence cible «ello». Donc, étant donné le contexte selon lequel il n’y a initialement qu’un «h» solitaire, le modèle devinera que le mot suivant est probablement un «e», puis compte tenu du contexte selon lequel les deux premières lettres sont «h» et «e», le modèle devinera un « L » pour la troisième lettre et ainsi de suite.
La relation entre toutes les lettres précédentes permet de prédire la suivante. Le RNN se souvient de toutes ces relations pour chacune des séquences.
Pour en savoir plus sur les RNN, je recommande vraiment le Karpathy article de blog et si vous voulez construire votre propre Tutoriel TensorFlow 2 est une excellente ressource.
[1]: https://www.tensorflow.org/tutorials/text/text_generation