‫Dans cette conférence, je vais expliquer le prochain exercice que nous allons faire.
‫Ceci est l'invite de l'exercice du débutant, ce qui signifie que si vous n'êtes pas un débutant, vous pouvez
‫faire l'exercice complet, qui vient ensuite.
‫La principale différence est que pour les débutants, vous allez faire un exercice de remplissage des blancs pour les
‫non-débutants.
‫Vous allez faire l'exercice complet, qui consiste à concevoir le programme entier à partir de zéro.
‫Donc, si vous n'êtes pas un débutant, vous pouvez sauter cette conférence et passer à l'exercice complet.
‫Si vous êtes débutant, écoutez attentivement au fur et à mesure que nous progressons tout au long du cours, il y
‫aura de moins en moins de prise en main si tôt, bien qu'il puisse y avoir des exercices simples, ce ne sera pas comme ça
‫tout au long du cours.
‫Au fur et à mesure que vous progresserez, vous améliorerez vos compétences et, en tant que tel, vous devrez faire de plus en
‫plus le gros du travail par vous-même.
‫Donc la mise en page du programme à venir est comme ça, il y a trois sections principales.
‫Tout d'abord, nous allons définir la classe de bandit, qui fait office de machine à sous.
‫Si vous voulez aller avec cette analogie, il va avoir une méthode de traction, qui équivaut à tirer le bras de
‫la machine à sous et à obtenir une récompense.
‫Mais contrairement à une vraie machine à sous, elle va également stocker une estimation du taux de victoire de ce bandit.
‫N'oubliez pas qu'en tant que concepteur d'algorithmes, vous ne connaissez pas le vrai gagnant dans cette situation.
‫Techniquement, nous le faisons, car c'est une simulation, mais nous devons agir comme si cette information nous était
‫connue.
‫Le deuxième composant majeur du programme est la boucle dans laquelle nous exécutons l'algorithme Epsilon Grealy, le troisième composant consiste
‫à imprimer les résultats et à tracer un graphique du taux de victoire au fil du temps.
‫Ce code est un code que j'ai écrit pour vous, donc votre travail consiste principalement à terminer l'implémentation d'Epsilon
‫Greedy.
‫Alors regardons le code.
‫Donc, le feu avec lequel vous allez travailler s'appelle le démarreur DCPI d'Epsilon Greeley au sommet,
‫nous avons notre classe bendek et l'initialisation prend-on une valeur p qui représente le vrai taux de victoire pour cela?
‫Bendit Nous allons faire semblant de ne pas connaître cette valeur.
‫Ensuite, nous avons des variables instanciées pour représenter notre estimation de P ainsi que n le nombre d'échantillons.
‫Notez que ceux-ci ont été laissés comme deux nouvelles.
‫C'est donc à vous de les initialiser correctement.
‫Ensuite, nous avons la fonction de sondage, qui a été complétée pour vous, elle renvoie une avec probabilité
‫P.
‫Ensuite, nous avons la fonction de mise à jour, qui prend une valeur d'échantillon X et l'utilise pour mettre à jour l'estimation.
‫Encore une fois, il y a quelques choses à faire ici que c'est votre travail de remplir.
‫Ensuite, nous avons notre fonction d'expérimentation, qui va exécuter notre algorithme gourmand epsilon à l'intérieur de cette
‫fonction.
‫Nous allons initialiser une liste d'objets bandés avec des taux de victoire égaux à la bande de probabilités
‫constante.
‫Ensuite, nous allons initialiser quelques variables qui garderont une trace des données que nous collectons
‫pendant l'expérience.
‫Vous n'avez pas à vous soucier de ce que sont ces derniers à moins que vous ne vouliez essayer de les comprendre par vous-même.
‫Il n'est pas nécessaire de les comprendre pour mener à bien votre tâche.
‫Ensuite, nous entrons dans une boucle qui exécute des temps d'essais à l'intérieur de la boucle, nous utilisons la stratégie Epsilon Greedy
‫pour sélectionner une bande à l'Index J.
‫J sera un entier compris entre zéro et le nombre de bande.
‫C'est moins un.
‫Et bien sûr, il servira à indexer la liste des bandits, comme vous pouvez le voir dans les dernières lignes
‫de code.
‫Comme vous pouvez le voir, il y a plus de DOS ici, et c'est votre travail de remplir ces blancs.
‫Après avoir sélectionné une bande en J, nous appelons la fonction de sondage pour obtenir une récompense X, nous mettons à jour nos récompenses, enregistrons avec la
‫valeur X puis mettons à jour notre bande son estimation moyenne en la passant dans la fonction de mise à jour.
‫Enfin, lorsque la boucle est terminée, nous imprimons et traçons les informations que nous avons collectées.
‫Cela inclut l'estimation moyenne de l'augmentation de la récompense totale gagnée, le taux de victoire final, le nombre de fois
‫que nous avons exploré et exploité et le nombre de fois que nous avons sélectionné le bandit optimal, nous
‫tracerons également la récompense cumulative.
‫D'accord, donc juste pour récapituler, votre travail consiste à remplir toutes les lignes de code qui disent à faire, et lorsque
‫vous avez terminé, ce script devrait s'exécuter et il devrait sélectionner le bandit optimal en fonction des probabilités décrites
‫dans la théorie conférence.