Bonjour et bienvenue dans l'histoire.
Après avoir fait ces quatre convolutions et le LCN, nous avons maintenant un état codé qui va être l’entrée de
ces deux réseaux de neurones que nous allons créer pour l’acteur et le critique.
Et en parlant d'eux, la seule chose que nous devons faire maintenant est simplement de créer des outils dans nos relations complètes.
Un pour l'acteur et un pour le critique.
Mais avant cela, nous devons connaître le nombre d'actions possibles.
Et donc je vais vous appeler variable ici qui ne sera pas une variable de l'objet.
Donc, je ne vais pas utiliser moi-même ici, mais je vais créer des sorties non viables qui représenteront un certain
nombre d’actions possibles et pour les obtenir.
Eh bien, nous pouvons l'obtenir à partir de l'espace d'action.
Nous prenons donc notre espace d’action qui sera l’entrée de la fonction lorsque nous créerons l’objet.
Et puis nous ajoutons cela et pour obtenir ce nombre d'actions possibles.
Et maintenant, l'acteur et le critique prendront séparément la même contribution qui est la sortie de tout
ce processus avec les convolutions et GLSEN.
Donc, cela prendra la même entrée qui est un état encodé, mais ensuite, ils auront deux connexions linéaires différentes de sorte
que nous aurons finalement finalement deux réseaux de neurones, un pour les deux et un pour un critique.
Faisons donc ces deux réseaux de neurones distincts.
Mais puisque nous avons déjà fait le gros travail avec l’encodage ici, nous devons simplement créer
deux objets, l’un dans la connexion complète pour l’acteur et l’autre pour le critique.
Et c'est exactement ce que je vais faire.
Je vais maintenant créer deux objets, un premier objet pour la connexion linéaire du critique que je
vais appeler critique et la partition que sont Linnie et pour créer cette connexion linéaire.
Vous savez comment faire, nous devons simplement prendre le module moteur, puis la classe linéaire dans laquelle nous avons
deux entrées.
Eh bien, les neurones d'entrée qui sont les sorties de tout cela, y compris ici avec les
convolutions et le GM qui est à 256 neurones.
Donc, quand je mets ici deux cent cinquante six et ensuite nous allons avoir une sortie parce que souvenez-vous que la sortie
du réseau de neurones pour le critique est la valeur de la fonction appliquée à l'état d'entrée aux
états d'entrée encodés que nous avons créés ici.
Donc si nous appelons l’état d’entrée s qui est la sortie de tout cela, la sortie du réseau de neurones
de la critique sera VS et aura donc une dimension.
C'est juste une valeur.
Et donc ici nous en mettons un.
Et rappelez-vous que c’est ce qui est partagé entre les acteurs afin qu’ils puissent obtenir des informations communes qu’ils
peuvent utiliser pour jouer leur action de manière plus pertinente.
OK, donc c'est pour le réseau de neurones de la critique.
Et maintenant faisons le nouveau réseau de l'acteur et donc je suis ici acteur autodidacte linéaire et même nous
avons déjà les entrées états encodés.
Donc maintenant nous devons simplement ajouter une connexion linéaire et donc dire que nous
prenons le module puis la classe linéaire et que maintenant ce nouveau réseau de l’acteur prendra l’état codé
qui a la taille de 256 donc 256 ici.
Mais alors, la sortie va être différente car bien sûr, vous savez que la sortie du réseau
de neurones pour l'acteur, autre clé, implique les valeurs clés des états d'entrée.
Celui que l'on pouvait entendre et la plaque d'action.
Donc encore une fois si nous appelons cet état codé que nous entendons ici comme une action jouée à la sortie de ce
réseau de neurones, il y aura effectivement q comme a.
Et puisque vous savez que nous avons une valeur énorme pour chaque action, nous n’avons donc aucun résultat.
Les valeurs Q et donc la sortie ici seront non sorties car aucune sortie n'est en réalité
le nombre d'humains.
Ok parfait.
Donc, si vous voulez, je peux écrire pour vous la sortie ici.
La critique est la même chose que l’état encodé et pour l’acteur, la sortie est mignonne.
Il est donc très important de comprendre cette distinction ici et de comprendre que nous avons donc deux
réseaux de nouvelles distincts.
Un pour le critique et un pour l'acteur Okay perfect.
Nous en avons presque fini avec cette fonction.
Maintenant, la chose la plus importante est faite.
La seule chose qui nous reste à faire est d’initialiser tous les poids de ces deux réseaux de neurones et
tous les biais.
Et bien sûr, pour ce faire, nous allons utiliser les deux fonctions que nous avons créées précédemment, à savoir
l’initialisation des colonnes normalisées et les poids qu’il contient.
Alors faisons ça rapidement.
Ça va être assez facile et assez rapide.
Nous allons donc d'abord initialiser des poids aléatoires et pour ce faire, nous allons appliquer les
poids qu'il contient à notre objet.
Donc ici nous devons nous prendre pour obtenir notre objet et pour objecter.
Nous appliquons le poids dans sa fonction.
Par conséquent, à l'intérieur, nous devons simplement mettre les poids dans cette fonction et nous obtenons ensuite que cette fonction sera
appliquée à notre objet. Ce faisant, nous initialisons simplement des poids aléatoires pour obtenir un apprentissage optimal
futur de ces poids.
Et maintenant, nous devons faire une normalisation spéciale pour l'acteur et le critique.
Mais rappelez-vous que je pense avoir dit ceci dans les tutoriels précédents, nous n'allons pas définir le même écart
pour le X en acrylique yakked. Vous obtiendrez un écart faible de petite déviation standard.
Et les critiques en auront un gros.
Et pourquoi faisons-nous cela.
Quel est le but de donner un petit écart-type des poids pour l'acteur et le grand écart-type de
la voie pour le critique.
Eh bien, cela permet de gérer l’exploration vs l’exploitation.
C’est précisément le but recherché en donnant une petite variance à l’acteur dans un public plus large
à critiquer.
Nous aurons une bonne gestion de l'exploration vs l'exploitation.
Alors faisons ceci, prenons d'abord soin de l'acteur.
Alors on se prend soi-même ou objet puis on va prendre le réseau de neurones de notre acteur qui est l'acteur
Linnea on va ensuite accéder aux poids de ce nouveau réseau de l'acteur et se rappeler d'accéder aux données
des poids dont on a besoin ces données.
D'accord.
Donc, avec cela, nous obtenons les poids et nous allons maintenant utiliser notre initialiseur à peigne normalisé.
Donc, je copie ce collage ici et nous allons entrer dans une dispute.
La déviation standard que nous voulons que ces poids aient.
Mais rappelez-vous d'abord que cette fonction prend deux arguments.
Tout d'abord, la façon dont nous voulons initialiser.
Nous devons donc simplement reprendre cela et le baser ici.
Et le deuxième argument est l’écart type.
Nous voulons que ces poids aient.
Donc, comme nous l'avons dit, nous voulons un petit écart-type par rapport à l'acteur dans un petit, il sera égal à 0. 01 parfait.
C'est donc là que pèse le poids du réseau de neurones de l'acteur.
Maintenant, prenons soin de la partialité du nouveau travail de l'acteur.
Et donc ici nous allons faire presque la même chose que nous allons copier cette pâte ci-dessous.
Remplacer le poids par les acheteurs pour accéder aux acheteurs et après les données, nous allons simplement ajouter un remplissage et nous rappeler à l’intérieur de zéro,
car nous voulons que tous les dispositifs soient initialisés avec zéro.
Donc, en réalité, je ne pense pas que cette ligne soit nécessaire car, comme vous vous en souvenez, les acheteurs sont déjà
initialisés à zéro avec cette fonction de remplissage dans la fonction d'attente.
Vous savez donc que nous faisons cela simplement pour nous assurer que les acheteurs sont réellement initialisés à zéro.
Mais je pense que c'est déjà fait ici.
Mais de toute façon, nous en sommes sûrs à 100%.
Très bien maintenant, nous allons faire la même chose pour le critique.
Alors soyons efficaces et couvrons ces deux lignes.
Faisons-les face ici et ici, nous allons simplement remplacer acteur par critique.
Pareil ici.
Et maintenant, la seule chose que nous devons changer est simplement l'écart-type que nous voulons que le critique ait
sur le poids du réseau de neurones.
Et comme vous vous en souvenez une fois cette fois, un écart type important au lieu d’ouvert ou nous en saisirons un,
nous avons donc un petit écart type pour les poids du nouveau travail de l’acteur et un écart
type important pour les poids.
Et puis quand on arrive à la critique.
Et bien sûr, nous pouvons remplacer actif ici par un crédit.
Tout va bien maintenant nous sommes cool.
Il nous reste donc deux choses à faire: initialiser également le parti pris de l’équipe. Pour ce faire, nous prenons notre objet en tant qu’objet car le LACMA appartient
à notre objet et nous dirions ou en tant que T. N. ensuite, nous obtiendrons les
deux types d’acheteur figurant dans le dernier.
Ce biais et le score par âge et l'autre est basé sur l'âge du score.
Ce sont les deux types de biais dans le CME et le même il va être initialisé à zéro.
Nous accédons donc d'abord aux données, puis nous utilisons la fonction de soulignement de remplissage pour renseigner tous ces acheteurs avec des
zéros et les initialiser avec les vôtres.
Droite.
Et maintenant, pour le deuxième groupe d’acheteurs, nous sommes les mêmes.
D'accord.
Cela initialise le biais des zéros et la dernière chose à faire est d’utiliser une méthode héritée de la fin
et ce module qui est la méthode du train.
Et fondamentalement, il y a juste une méthode qui met le module en traitement.
Alors, à quoi sert-il?
Eh bien, l’utilisation est que cela permet de s’activer s’il ya une chute dans la ligature de la salle de bain
Et donc pour l'utiliser, nous ajoutons simplement un train de réflexion personnel et cela met le module dans un environnement parfait.
Nous en avons donc terminé avec la fonction init.
Nous avons nos convolutions, nous avons le CME, nous avons nos deux réseaux de neurones distincts pour le
critique et l'acteur et tous les poids et biais sont bien initialisés.
Donc c'est tout bon.
Nous sommes prêts à passer à l’étape suivante, qui consiste à faire en sorte que la fonction
avant transmette le signal dès le début avec les images d’entrée originales dans tout le cerveau jusqu’à ce que
nous obtenions la sortie.
Faisons cela dans le prochain tutoriel.
Et jusque-là, profitez de l'IA.