Machine Learning¶
L’équation de Bellman¶
- Liens_Web:
- https://www.rand.org/content/dam/rand/pubs/papers/2008/P550.pdf
# Richard Bellman, 1954, The Theory of Dynamic Programming
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:
- https://pdfs.semanticscholar.org/968b/ab782e52faf0f7957ca0f38b9e9078454afe.pdf
# Martijn van Otterlo, 2009, Markov Decision Processes: Concepts and Algorithms
- https://fr.wikipedia.org/wiki/Processus_stochastique
# Définition Wikipédia
- https://fr.wikipedia.org/wiki/Processus_de_Markov
# Définition Wikipédia
- 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.
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.
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:
- http://yann.lecun.com/exdb/publis/pdf/lecun-98d.pdf
Document traitant de l’importance de normaliser l’échelle des données d’entrée des neurones
À 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¶
- Liens_Web:
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.