Bonjour et bienvenue dans ce tutoriel sur Python.
D'accord.
Dans cette huile, nous allons créer la fonction qui sélectionnera la bonne action et à chaque fois.
Donc, fondamentalement, nous allons implémenter la partie qui fera de la voiture le bon choix.
Et chaque fois que cela va à gauche, aller droit ou aller à droite pour atteindre le but
et éviter les obstacles qui descendent.
Alors faisons ceci maintenant.
Nous allons commencer comme d'habitude avec les sourds pour définir une fonction, puis nous
allons donner un nom à notre fonction. Nous allons appeler l'action select plutôt qu'une parenthèse et cette fonction select prendra
deux arguments.
Le premier est soi-même au fur et à mesure que vous grandissez pour faire référence à l'objet et le second
argument qui, selon vous, sera lequel.
Eh bien qu'est-ce que ça pourrait être?
Si vous y réfléchissez, l'action que nous avons sélectionnée provient de la sortie du réseau de neurones, car la sortie
du réseau de neurones ou les valeurs q pour chacune des trois actions possibles et, par conséquent, l'action
que nous jouons l'action qui sera la sortie de le réseau de neurones dépend de l'état d'entrée et les
états d'entrée sont exactement le deuxième argument dont nous avons besoin avec la fonction d'action select.
C'est parce que nous allons littéralement prendre la sortie du réseau de neurones.
Et bien sûr, la sortie du réseau de neurones dépend directement de l’entrée du réseau de neurones.
Donc, ça va être notre argument.
Et maintenant, nous pouvons lui attribuer n'importe quel nom. Nous l'appellerons état car les réseaux de neurones sont
les états d'entrée codés par un vecteur de cinq dimensions à trois signaux d'orientation
et moins d'orientation.
Et maintenant, les choses vont être faciles.
Nous allons introduire l’état d’entrée dans le réseau de neurones, celui que nous construisons juste au-dessus
ici avec la classe suivante, puis nous obtiendrons les sorties qui sont les valeurs clés de chacune des trois
actions possibles, puis en utilisant la méthode douce Max que je vais expliquer dans
ce tutoriel.
Nous allons avoir l'action finale à jouer.
Faisons cela, allons dans la fonction et implémentons tout cela.
Donc, la première chose à faire est de parler de ce que je viens de dire. Max a eu l'idée
du soft Max, c'est que nous allons essayer d'obtenir la meilleure action à jouer à chaque fois.
Mais en même temps, nous explorerons les différentes actions.
Et comment faisons-nous cela.
Comment pouvons-nous obtenir la meilleure action à jouer tout en explorant les autres actions.
Nous avons bien utilisé cette idée de matériel qui consiste à générer une distribution de probabilités pour chacune des
valeurs q.
Q États action.
Maintenant, nous avons une valeur Q pour chaque action aller à gauche aller tout droit ou aller à droite.
Mais cette valeur q dépend également de l'état de l'entrée.
C'est exactement l'utilisation de la fonction Q dans les conférences sur l'intuition.
Cette fonction Q est une fonction de l'état et de l'action.
Donc, puisque nous avons ici un état d'entrée qui est l'état ici et trois actions
possibles, nous avons trois nouvelles valeurs Q. Etat action 1 Q action à l'action 2 et action à
deux états 3 et nous allons générer une distribution de probabilités concernant ces trois valeurs clés.
C'est-à-dire que nous allons avoir une probabilité pour la première valeur Q une des probabilités pour la
deuxième valeur Q et une troisième probabilité pour le troisième Q et les trois probabilités se résument à 1.
Et donc nous allons faire tout cela avec Max soughed et Max soughed attribuera une probabilité élevée au Q
le plus élevé.
C'est pourquoi une alternative à soft Max est un simple RMX non prenant directement le maximum des valeurs q, mais
dans ce cas, nous n'explorons pas les autres actions.
Grâce à ces probabilités, nous pouvons explorer ailleurs en utilisant un paramètre de température que nous
allons voir très rapidement.
Nous pouvons toujours les explorer en configurant ce paramètre de température.
C'est pourquoi, en général, pour la sécurité, je recommande fortement d'utiliser un soft x plutôt qu'un simple RMX.
Très bien, implémentons X et donc comme vous l'avez compris.
Depuis soughed, Max renvoie les probabilités de chacune des trois valeurs Q pour les trois actions possibles.
La première variable que nous allons créer se réfère probablement bien sûr à ces probabilités.
Donc, les accessoires sont égaux et maintenant nous allons prendre notre prochaine fonction et selon vous d'où
nous allons partir.
Bien sûr, rappelez-vous que nous avons importé le.
Et puis le sous-module fonctionnel que je rappelle est le module qui contient la plupart des actions pour mettre en
œuvre un réseau de neurones.
Nous lui avons donné le raccourci F et c'est donc à partir de ce sous-module fonctionnel que nous
allons passer à notre prochaine fonction.
Mais depuis que nous lui avons donné un raccourci, nous commençons ici avec un Neph représentant fonctionnel à partir duquel
nous prenons notre prochaine fonction.
C'est ici.
C'est le premier et la parenthèse.
D'accord.
Maintenant, que faut-il entrer dans la fonction suivante.
Eh bien, ce sont bien sûr les entités pour lesquelles nous voulons générer une distribution de probabilité.
Et quelles sont ces entités.
Bien, ce sont bien sûr les valeurs clés.
Alors maintenant, la question est de savoir comment pouvons-nous obtenir les valeurs q.
Bien sûr, les valeurs q sont la sortie du réseau de neurones et permettent d’obtenir ces sorties du réseau
de neurones.
Bien on y va.
Nous devons prendre notre nouveau réseau.
Mais en fait, nous l’avons déjà car c’est ce qui initialise sa fonction.
Sachez que nous avons créé un modèle autodidacte qui n’est rien d’autre qui ne fonctionnera pas car c’est un nouvel objet
de la classe réseau.
Et c'est parfait.
Nous pouvons simplement prendre notre modèle ici et appliquer ensuite ce modèle à l'état d'entrée qui est l'argument
présenté ici et qui retournera les résultats que nous recherchons.
Ce sont les valeurs clés.
Et maintenant, votre intuition pour laquelle nous devions prendre le modèle ici pour l’introduire dans la fonction pourrait
s’améliorer.
Ceux d’entre vous qui débutent avec la programmation orientée objet, vous verrez que tout cela deviendra alors
naturel, ensuite, si doux.
Nous prenons donc notre modèle comme modèle parce que ce doit être le modèle de l'objet que nous avons créé ici.
Mais nous devons ensuite obtenir la sortie de notre modèle de réseau neuronal et par conséquent, nous
allons entendre une parenthèse dans laquelle nous allons entrer bien l’état d’entrée nommé state.
Donc, ce que nous voulons faire en premier lieu, c’est entrer dans l’état, mais maintenant, nous devons faire attention à ce que cet état ressemble à un simple ensemble
pour le moment.
Mais rappelez-vous que cet état sera en réalité un capteur de torche car plus tard, nous utiliserons cette
cellule dans un état moins pour le définir comme argument de la fonction d'action Select.
L'argument de l'État qui est ici va réellement devenir plus tard cet état moins autodidacte.
Et puisqu'il s'agit d'un monde de réponses torturé, le modèle l'acceptera.
Alors c'est bon.
Mais maintenant, nous pouvons améliorer l’algorithme.
Donc, dès que l'état est un capteur de torche et comme nous l'avons dit précédemment, la plupart des capteurs sont enveloppés dans
le voïvode.
Cela contiendra également un dégradé.
Donc, pour le moment, ce que nous allons faire en premier lieu est de condenser très bien cet état
d'entrée qui est un tenseur, mais puisqu'il s'agit des états d'entrée, il n'y aura pas de différence.
Nous n'utiliserons pas le gradient de ce voïvode de torche d'état et il
peut s'agir de stations. Nous allons donc maintenant convertir cet état de capteur de torche en une variable de torche comme celle-ci.
Mais ensuite, spécifier que nous ne voulons pas du tout que les gradients dans le graphique puissent prédater à la
fin de Mudgal.
Eh bien, nous allons à ce moment-là, être volatiles et égaux.
Nous avons donc maintenant très bien notre capteur d'état enflammé dans une lampe de poche, mais grâce à ce Votel équivaut à un
vrai baromètre.
Nous allons inclure les gradients associés à ces états d’entrée dans le graphique de toutes les conditions de la fin
de ce modèle.
C'est donc un autre truc technique.
Cela nous permettra d'économiser de la mémoire et donc d'améliorer les performances.
Je recommande donc fortement de faire cela et nous allons maintenant ajouter quelque chose de plus amusant.
C'est à propos de ce paramètre de température que je viens de mentionner.
Ce paramètre de température est donc le paramètre qui nous permettrait de moduler la manière dont
le réseau de neurones sera sûr de l’action à décider.
Donc, ce paramètre de température sera un nombre positif et plus il sera proche de zéro moins le réseau de neurones sera
sûr lorsqu'il jouera en action et plus le paramètre de température sera élevé, plus le réseau de neurones
sera sûr de l'action qu'il décide de jouer .
Et pour ajouter ce paramètre, je vais multiplier les sorties qui sont le Kugan utilisé par ce paramètre de
température.
Commençons par exemple avec 7 et je vais préciser ici que le petit commentaire T est égal à 7.
C'est donc le paramètre de température.
Je suis désolé aller à 7.
Nous allons en essayer d'autres, mais je veux juste commencer par un petit, parce que vous
allez le voir avec un petit.
Notre voiture se comportera toujours comme une sorte d'insecte, mais en augmentant le paramètre de
température, notre code ressemblera davantage à une voiture et décidera de vendre la conduite sera beaucoup mieux.
Et cela a donc du sens car plus ce paramètre de température est élevé, plus
la probabilité de gagner le Juval me sera élevée, par exemple si nous avons un maximum doux des q valeurs.
Prenons quelques nombres simples un deux trois si bourrés de un à trois égaux.
Par exemple 0. 04 0. 11 et ouvrir quatre vingt cinq.
Puis en augmentant la température en prenant une température plus élevée.
À l’heure actuelle, la température est égale à un en prenant une température élevée, comme par exemple Tussaud
soustrait la copie et la multiplions par exemple par deux ou trois, afin d’avoir les mêmes valeurs mais multipliées par le
paramètre de température trois.
Eh bien, nous obtiendrons quelque chose comme zéro pour la première valeur Q car il y avait une très faible
probabilité que quelque chose autour de zéro puis très peu pour la deuxième probabilité parce que c'était encore
une faible probabilité.
Alors disons par exemple ou le point 0 2.
Mais alors cette troisième probabilité puisque c’était la plus grande et une assez haute.
En augmentant bien la température, cette probabilité sera encore plus grande car nous serons encore
plus sûrs que c’est la bonne valeur Q correspondant à l’action que nous devons jouer et qu’elle va donc être
quelque chose comme 0. 2 98.
Maintenant, en augmentant le paramètre de température Eh bien, nous sommes maintenant encore plus sûrs que la troisième action ici
devrait être l'action à jouer car la probabilité pour la valeur q de cette action est non seulement la
plus grande, mais également très élevée.
C'est donc ce que ce paramètre de température est tout au sujet.
Il s'agit de la certitude de la direction dans laquelle nous devrions décider de jouer.
D'accord.
Je vais donc supprimer ce commentaire.
C'était juste pour expliquer.
Et maintenant passons à l'action.
Alors, comment vas-tu faire ça?
Eh bien, le principe de la méthode suivante consiste non seulement à générer une distribution de probabilité pour chacune
des valeurs de clé, mais également à la deuxième étape de la méthode logicielle suivante.
Nous prenons un tirage au sort parmi cette distribution pour obtenir notre action finale.
Et bien sûr, nous aurons une grande chance d'obtenir l'action qui correspond à la valeur Q ayant
la probabilité la plus élevée, car c'est exactement ainsi que fonctionne la distribution.
Alors on y va.
Passons à l'action.
Nous allons donc introduire un nouveau code voivode: nous allons appeler action et cette action va permettre
de tirer au hasard la distribution de probabilité que nous venons de créer auparavant.
Et alors, comment pouvons-nous obtenir un tel tirage au sort.
Eh bien, nous allons prendre les probabilités de nos accessoires pour chacune des valeurs clés
que nous prenons, puis nous allons utiliser la fonction multi Gnomeo, ce qui nous tirera au hasard de
ce processus de distribution.
Donc, c'est tout ce qui va provoquer sa réaction.
Parfait.
Et maintenant, bien sûr, nous allons retourner l'action.
Il y a un petit truc ici.
Quel est le fait que cela Propst que multinomial renvoie le PI vers viable via un faux badge.
Vous connaissez ces faux diamants et correspondant au lot et donc d'obtenir le bon résultat que
nous voulons c'est l'action dans 0 1 ou 2.
Nous devons simplement ajouter ici des données, puis quelques crochets et les actions ici sont une ou deux actions
que nous recherchons soit le contenu et l’indice est 0 et 0.
D'accord.
Et c'est parti.
Nous avons maintenant notre action grâce à cette fonction de sélection, l’intelligence artificielle sait maintenant quelle action exécuter.
Et à chaque fois.
Terrifiant.
Nous pouvons maintenant passer à la fonction suivante qui sera la fonction d’apprentissage.
Et c’est là que nous allons former l’ensemble du réseau de neurones que vous connaissez avec toute la propagation
en aval, puis la propagation en arrière consiste à catégoriser dans le sens.
Eh bien, fondamentalement, nous allons mettre en œuvre toute la formation du modèle d’apprentissage en profondeur qui est au
cœur de notre intelligence artificielle.
Donc j'ai hâte de faire ça.
Ce tutoriel sera passionnant et je vous verrai donc dans le prochain Statoil.
Jusque-là profiter.
JE.