Bonjour et bienvenue sur ce modèle, c'est horreur.
Très bien, nous venons de mettre à jour la mémoire après avoir atteint le nouvel état.
Et maintenant, occupons-nous du lendemain.
Selon vous, quelle sera la prochaine mise à jour?
En gros, nous en avons fini avec une transition, nous avons daté le dernier élément de la transition, à savoir le
nouvel état.
Alors maintenant, c'est comme si on recommençait.
Et quand on recommençait tout.
C'est comme si vous saviez que nous sommes dans ce nouvel état de l'environnement et que devons-nous faire maintenant naturellement?
Bien sûr, c'est pour jouer une action parce que nous avons déjà eu l'observation des nouveaux États.
Maintenant, ce que nous devons faire, c'est jouer une action. Nous devons donc bien sûr utiliser
la fonction de sélection de l'action pour jouer l'action.
Faisons-le, créons une nouvelle action Voivode et jouons-la avec l'action select pour que je le
fasse.
Bien d'abord, auto pour spécifier que la fonction d'action de sélection est une méthode de l'objet de la classe qui
sera créée.
Donc, un moi qui choisit l'action.
Et c'est parti.
C'est donc l'action suivante.
Et bien sûr, puisque la fonction d’action select prend l’état en entrée car bien entendu, la fonction
d’action select renvoie la sortie du réseau de neurones lorsque l’état d’entrée actuel est entré dans le réseau
de neurones.
Nous devons donc entrer ici l’étape d’entrée et, puisque c’est l’état que nous venons d’atteindre dans l’environnement
actuel. Vous indiquez bien l’état d’entrée, car cet état que nous venons d’atteindre au moment
où nous en sommes est Newstead.
Donc, dans cette fonction d'action choisie, je veux dire mettre de nouveaux bâtons.
Très bien, avec cette ligne de code, nous jouons simplement la nouvelle action après avoir atteint le nouvel état.
OK et maintenant que nous avons joué une action Eh bien, nous obtenons la récompense et nous recevons donc un retour d’information avec la récompense.
Et donc si nous avons plus de 100 éléments en mémoire, il serait temps d'apprendre.
Et par conséquent, ce que nous devons faire maintenant, c’est ce qui vient logiquement après le choix d’une action visant à
réduire le besoin en intelligence artificielle de commencer à apprendre.
S'il fait les choses comme il faut.
Et maintenant qu’il joue bien, nous allons faire en sorte que l’IA tire les leçons de ses actions lors
des 100 derniers événements.
Mais avant d'appliquer cette fonction apprise, nous devons créer cette condition pour nous assurer que nous avons déjà atteint plus
de 100 événements, car vous savez que nous apprenons à partir d'échantillons aléatoires de la mémoire.
Vous savez que nous avons cette énorme mémoire de 10000 éléments.
Nous prenons des échantillons aléatoires de la mémoire de 100 éléments et l'IA apprend à partir des informations
contenues dans cet échantillon de 100 transitions aléatoires.
Faisons donc cette condition si pour nous assurer que le nombre d’éléments de la mémoire de cette mémoire, puis faites attention,
juste un petit truc ici, la mémoire autodidacte est l’objet de votre classe de
mémoire de répétition mais la classe de mémoire de répétition a un attribut qui est la mémoire.
Donc, en fait, nous devons utiliser une partie de la mémoire. La première mémoire est l’objet de la classe de mémoire
de réexécution et la deuxième mémoire est l’attribut qui est ici la mémoire.
Donc, si le nombre d’éléments dans la mémoire est correct, nous voulons qu’il soit supérieur à 100, puis
Cullin.
Nous pouvons bien apprendre, mais pour apprendre, nous devons obtenir cet échantillon aléatoire de 100 transitions, ce que nous
pouvons obtenir avec la simple fonction.
Et puisque la fonction simple renvoie les différents lots à des états au temps t, ces données 20 plus un des actions
du temps t et nous étions à 20.
Ce que nous devons faire maintenant, c’est créer de nouvelles relances qui vont constituer le
lot des états au moment du lot des dates suivantes le lot des mots et le
lot des actions et nous pouvons simplement donner les mêmes noms comme nous avons donné pour les arguments ici et ils sont ici.
Et ces variables seront égales à ce que la fonction simple retourne, car elle renvoie exactement ces lots et le
prochain état prend des mots et des actions.
Donc, ce que nous devons simplement faire maintenant, c’est d’obtenir d’abord notre objet de mémoire, puis à partir de cet objet
de mémoire, nous allons utiliser la méthode simple qui prendra comme entrées.
Le nombre de transitions que nous voulons que notre intelligence artificielle apprenne est de 100.
C'est pourquoi nous nous sommes assurés d'avoir plus de cent transitions.
Donc, il va apprendre de 100 transitions de la mémoire.
Donc, l'apprentissage sera bien meilleur.
Et maintenant, faisons en sorte que cela se produise vraiment.
Bien puisque la méthode d'apprentissage est une méthode de notre en classe.
Nous avons besoin d'accéder à cette méthode d'apprentissage à partir des futurs objets qui seront créés à partir d'une
classe différente. Par conséquent, nous devons prendre soi-même.
Self se réfère à cet objectif à faire en classe puis à apprendre en tant que méthode apprise,
méthode à laquelle, bien entendu, ces gars-là représentent le mauvais état, l’état belge, le monde naturel et
l’action Bachche.
Ce sont nos lots échantillonnés de notre mémoire et nous en avons cent car nous avons 100 transitions
de ces 100 transitions nous prenons 100 États 100 États prochains 100 récompenses et 100 actions soyons confrontés
ici et là nous allons maintenant apprendre.
Cela se produira à partir de tous ces lots aléatoires.
Parfait.
Et maintenant, ce que nous devons faire, ce sont les toutes dernières mises à jour après que vous sachiez atteindre un nouvel état et jouer
en action.
En fait, nous vous avons amené à jouer mais nous n’avons toujours pas eu cette réaction.
C’est notre moi que la dernière action est le voïvode.
Alors, assurons-nous de ne pas l'oublier.
Faisons-le maintenant.
Nous mettrons à jour la dernière action qui correspond à la dernière action et, bien sûr, l'action que nous restons ici
avec cette fonction d'action sélectionnée.
Bien maintenant la dernière section est mise à jour alors.
Même chose pour le nouvel état.
Nous avons atteint le nouvel état mais nous n'avons pas encore mis à jour la dernière date car bien sûr, la dernière date était antérieure à
l'état au moment t.
Mais depuis lors, nous avons atteint le nouvel excédent d'État lorsqu'il est temps d'en passer un.
Eh bien la dernière chose devient ce que vous avez dit ici.
Par conséquent, nous avons également besoin de mises à jour.
Soi ce dernier état est égal à notre nouvel état.
Nous y voilà.
Et maintenant, de quoi avons-nous besoin pour sortir avec nous?
Eh bien, il ne reste plus qu’une chose.
C'est bien sûr le mot et le mot est exactement le mot que nous obtenons dans la réalité.
Donc, ce sera l’argument de cette fonction qui, si nous établissons la connexion avec notre carte, sera le
dernier mot.
C'est le mot que nous entendons bien après avoir joué l'action dans ce nouvel état atteint.
Donc, si nous passons à quelque chose de son, ce dernier mot sera celui de moins un. Si nous avançons plus loin, nous
aurons un mot un peu mauvais, moins 0. 2 si on se rapproche du but.
Nous aurons une récompense légèrement bonne 0. 1.
Et si nous nous approchons trop du bord de la carte, ce sera une punition.
Nous aurons moins un pour chacun.
C'est donc le dernier mot que nous recevons.
En réalité, c'est quand cela se produit réellement sur la carte.
Et ce sera l'argument de la fonction.
Le dernier mot ici.
C'est exactement celui-ci.
Et puisque c’est bien l’argument de la fonction de mise à
jour qui correspond à cela, nous n’étions pas ici et, par conséquent, notre variable de mot initialisée au début de cette
fonction devient le nouveau mot que nous obtenons en réalité, c’est le mot ou c’est le même dernier mot.
D'accord.
Maintenant nous avons mis à jour notre dernier mot.
Et maintenant, puisque nous venons d'avoir notre dernier mot.
Eh bien, nous pouvons maintenant sortir avec le monde.
Vous vous souvenez de la guerre quand ils ont été initialisés ici comme l’une des variables de l’objet de notre classe.
C'est la fenêtre qui permettra de suivre l'évolution de ce train en prenant la moyenne
des 100 dernières récompenses.
Vous savez donc que ce sera comme une fenêtre coulissante nous montrant comment la moyenne du monde évolue.
Et donc depuis que nous venons d'avoir notre dernier mot.
Eh bien, nous pouvons mettre à jour la fenêtre où nous nous trouvons pour savoir comment le mettre à jour.
Bien, nous devons simplement ajouter ce dernier mot à la fenêtre et par conséquent, ce que je
vais faire, c'est prendre ma fenêtre de guerre comme nous le disons quand ils entendent cela et je vais utiliser la fonction append.
Et à l’intérieur de la fonction open, nous devons saisir l’élément que nous voulons ajouter à
ce que nous voulions bien faire.
Très bien parfait.
Et puis, puisque cette fenêtre de guerre aura une taille fixe, vous savez que ce ne sera pas une fenêtre en
croissance, mais une fenêtre de taille fixe glissant avec le temps pour montrer l'évolution du monde.
Et maintenant, nous devons décider de la taille de cet hiver.
Et c'est simplement le nombre de moyens de la récompense que nous aurons dans cette fenêtre.
Ainsi, par exemple, connaissons les 1000 derniers moyens des 100 derniers mots.
Et donc pour en être sûr, nous allons ajouter si ensuite planifier, nous prenons notre fenêtre de travail et nous
ajoutons simplement ici si le nombre d'éléments dans la fenêtre est supérieur à 1000.
Eh bien, ce que nous voulons faire est de supprimer le premier élément de notre fenêtre et le
premier élément de cette fenêtre doivent indexer zéro.
D'accord.
Nous nous assurons maintenant que cette fenêtre de guerre ne contiendra jamais plus de 1000 éléments.
Il y a mille moyens des 100 derniers mots qui sont parfaits, ce sera une fenêtre de taille fixe pour que
nous puissions voir si la moyenne du mot augmente.
Et donc, si la formation se déroule bien, le tribunal fait ce que nous voulons.
Parfait.
Et maintenant, il reste une toute petite chose à faire selon vous.
N'oubliez pas que cette fonction de mise à jour non seulement met à jour les différents éléments de la transition dans
la fenêtre de guerre, mais renvoie également l'action qui a été exécutée lorsque ce nouvel état a été atteint.
C'est pourquoi nous avons et alors que l'action équivaut à indiquer à cette date que nous sommes moins signalés et qu'il est
donc censé retourner quelque chose et que ce qui est censé revenir est bien sûr l'action.
La dernière chose que nous devons faire ici est donc simplement de revenir à l’action qui vient d’être jouée pour atteindre
la nouvelle étape.
Et c'est notre fonction de mise à jour est prête.
Il va faire toutes les mises à jour requises et va transformer l'action lorsque vous atteignez la nouvelle étape.
C'est parfait.
Ce fut la dernière action difficile pour faire de tout cela un processus.
Maintenant, le reste sera bon.
Nous allons simplement créer une fonction de base pour renvoyer les moyens que nous voulons dans la fenêtre.
Ensuite, nous créerons une fonction sécurisée pour sauver le cerveau de la voiture chaque fois que vous voudrez quitter
l’application et y revenir.
Et bien sûr, puisque vous voulez pouvoir charger le cerveau de votre voiture lorsque vous y retournerez,
revenez à l'application.
Nous allons finir par créer une fonction de chargement qui chargera votre modèle après l’avoir sauvegardé avec
la même fonction.
Donc, trois fonctions pour le faire, mais ça va être simple.
Et puis nous aurons la section la plus excitante de ce premier module qui est la démo nous verrons
si l’air fonctionne.
Nous verrons si la voiture atteindra les objectifs et comment nous pouvons l’améliorer, puis vous
devrez éventuellement construire votre première IA.
J'ai donc hâte de commencer la démo.
Faisons en premier ces trois fonctions et jusque-là moi.