Machine Learning

L’équation de Bellman

Liens_Web:

L’équation de Bellman est à la base de l’apprentissage par renforcement.

Concept / définission

  • \(s\) - State (l’état) : Il s’agit de l’état dans lequel l’environnement est.

  • \(s'\) : l’état dans le quel on va arriver

  • \(a\) - Action : Les actions que peut prendre l’agent

  • \(R\) - Reward (Récompense) : Récompense obtenu par l’agent pour rentrez dans un certain état (+1, 0 ou -1)

  • \(\gamma\) (Gamma) - Discount (Réduction): il s’agit du facteur de réduction (compris entre 0 et 1). Plus cette valeur est proche de 0, plus ont s’éloigne du résultat et / ou de la solution.

  • \(V\) : La valeur d’un certain état

Equation simplifiée

Sous cette forme simplifié, l’équation est déterministe. Elle ne tien pas compte des éléments aléatoires (Stochastique).

\[V(s) = \underset {a} {max} \left (R(s, a) + \gamma V(s') \right)\]

Pénalité de vie

La pénalité est une valeur négative (à définir soit même) affectée à chaque action. Cela permet de forcer l’IA à trouver une solution le plus vite possible.

Plus la récompense \(R\) est proche de 0, moins le risque pris par l’IA sont important. Plus la récompense \(R\) est éloigné, plus les risques pris part l’IA seront important.

Il faut trouver une valeur qui pousse l’IA à trouver une solution tout en ne prenant que des risques modérés.

Exemples:

Pour une Récompense Final de 1 si nous affectons une Récompense d’Action de 0, -0.3, -0.5 ou -2

  • Si RA= \(0\) : L’IA n’optimisera pas la recherche de solution.

  • Si RA= \(-0.3\) : L’IA optimisera légèrement sa recherche de solution mais aucuns risque ne sera pris dans le choix de l’action.

  • Si RA= \(-0.5\) : l’IA optimisera beaucoup sa recherche de solution, mais ne prendra que des risques modérés.

  • Si RA= \(-2\) : l’IA prendra tous les risques possibles pour parvenir à une solution le plus vite possible.

Chaine de Markov et Processus de Décision Markovien (MDP)

Liens_Web:
Définissions:
  • \(P\) - Processus de Décision Markovien (MDP) : Moyenne de la somme des états possibles (\(s'\)). Il s’agit de l’introduction d’un facteur aléatoire dans un environnement déterministe.

Equation de Belman augmentée du MDP

  • Le processus de Markov : Il va définir la façon dont l’environnement est construit.

  • Le MDP : Il va décrire la façon dont l’agent prend une décision.

\[V(s) = \underset {a} {max} \left (R(s, a) + \gamma \underset {s'} {\sum} P(s, a, s')V(s') \right)\]

Q-Learning : Intuittion

Définissions:
  • \(Q\) - Qualité : définit la qualité de l’action à venir \(Q(s, a)\) par opposition à \(V\) qui définit la valeur de l’état \(V(s)\).

Définission de l’équation de Bellman en Q-Learning

On peut définir que \(V(s)\) considère la meilleure action possible. Par opposition, avec \(Q(s, a)\) on calcule une valeur pour chaque action, qu’elle soit la meilleure ou non.

  1. Définition de base

    \[Q(s, a) = R(s, a) + \gamma \underset {s'} {\sum} P(s, a, s')V(s')\]

On constate que l’équation correspond à ce qui est contenu entre les parenthèses dans l’équation de Bellman.

  1. Définition de l’équation en mode récursif (avec \(V(s')\) remplacer par \(Q(s', a')\))

    \[Q(s, a) = R(s, a) + \gamma \underset {s'} {\sum} \left (P(s, a, s') \underset {a'} {max} Q(s', a') \right)\]

Différence temporelle

Définissions:
  • \(Q_{t-1} (s, a)\) - Avant : C’est l’état précédent de l’action

  • \(Q_t (s, a)\) - Après : C’est le nouvel état de l’action

  • \(TD_t (a, s)\) - Différence temporelle : C’est l’apport d’information pour une action entre Après et Avant.

  • \(\alpha\) - Alpha : c’est un coefficient multiplicateur pour \(TD_t (a, s)\) ce coefficient est compris entre O et 1. La nouvelle valeur obtenue, sera ajouté à \(Q_{t-1} (s, a)\) pour devenir le nouveau \(Q_t (s, a)\).

    Attention :

    • Pour \(\alpha = 0\), on aura \(Q_t (s, a) = Q_{t-1} (s, a)\). L’IA n’apprendra donc rien.

    • Pour \(\alpha = 1\), on aura \(Q_t (s, a) = R(s,a) + \gamma \underset {a'} {max} Q(s', a')\). L’IA prendra donc toujours la valeur de la nouvelle action, y compris si cette action est erronée (comportement aléatoire).

    La valeur de \(\alpha\) doit donc être réajuster pour que la différence temporelle soit égale à \(0\).

Calcul de la Différence temporelle

\[TD_t (a, s) = \underset {après} {R(s,a) + \gamma \underset {a'} {max} Q(s', a')} - \underset {avant} {Q_{t-1} (s, a)}\]

Calcul de la Qualité d’une action avec la correction de la différence temporelle

Version condensée :

\[Q_t (s, a) = Q_{t-1}(s, a) + \alpha TD_t (a, s)\]

Version étendue, avec \(TD_t (a, s)\) remplacée par son expression :

\[Q_t (s, a) = Q_{t-1}(s, a) + \alpha \left (R(s,a) + \gamma \underset {a'} {max} Q(s', a') - Q_{t-1} (s, a) \right)\]

Artificial Neural Networks (ANN)

Liens_Web:

À faire

  • dans l’annexe, revoir la vidéo « Le Neurone »

  • Faire le schéma d’un neurone (voir la vidéo à 14m23) en ajoutant les termes : Synapses, poid et fonction d’activation


scikit-learn

Installer toute la suite scientifique (avec scikit-learn)

pip install numpy scipy matplotlib ipython scikit-learn pandas pillow

# pour pouvoir utiliser les codes du livre "Machine Learning avec scikit-learn"
pip install mglearn

# Pour pouvoir utiliser jupyter
pip install jupyter

## Pour lancer jupyter
jupyter notebook

Import systèmatique pour tout les code

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import mglearn
from IPython.display import display

Apprentissage supervisé

L’aprentissage supervisé:

Il est utiliser lorsque nous voulons prédire une certaine sortie à partir d’une entrée connue et que nous connaissons des paires d’entrée/sortie. Ces paires d’entrée/sortie constitue le jeu d’apprentissage.

La classification et la régression sont les deux types majeurs de problèmes de l’apprentissage supperviser.

Classification:

Dans le cas de la classification, le but est de prédire une étiquette de classe, qui est un choixpossible parmi une liste de possibilités.

ex:
prédire la variété d'un iris en fonction de ces carractéristique (taille des pétals, forme,
etc...)
On distingue parfois de type de classification :
  • La classification binaire, dans laquelle le problème comporte exactement deux classes.

  • La classification multiclasse, dans laquelle il y a plus de deux classes.

Régression:

Dans le cas de tâches dite de régression, le but est de prédire une valeur continue, c’est à dire un nombre en virgule flottante en termes de programmation, ou un nombre réel en termes de mathématiques.

ex:
Prédire un salaire annuel en fonction de l'éducation, de l'âge, du sexe et du lieu de vie.

Algorithms

Les k plus proches voisins