···1818- Un _agent_: c'est le programme que l'on souhaite créer
1919- Des _actions_ que l'agent peut choisir d'effectuer ou pas
2020- Un _environnement_, que les actions viennent modifier
2121-- Un _coût_ (ou _récompense_) qui dépend de l'environnement
2121+- Un _score_ (_coût_ s'il doit être minimisé, _récompense_ inversement) qui dépend de l'état pré- et post-action de l'environnement ainsi que de l'action qui a été effectuée #footnote[Le Q-learning consiste en la définition d'une fonction coût qui ne dépend que de l'état actuel de l'environnement]
22222323La phase d'apprentissage consiste à trouver, par des cycles d'essai/erreur, quelles sont les meilleures actions à prendre en fonction de l'environnement actuel, avec meilleur définit comme "qui minimise le coût" (ou maximise la récompense):
2424···2727 edge((0, 0), (1, 0), "->")[Action],
2828 node((1, 0))[Environnement],
2929 edge((1, 0), (2, 0), "-->")[Fonction coût],
3030- node((2, 0))[Coût],
3030+ node((2, 0))[Score],
3131 edge((2, 0), (0, 0), "->", bend: 45deg)[Mise à jour]
3232))
3333···7676$
77777878avec $E$ l'ensemble des états possibles de l'environnement, et $S$ un ensemble muni d'un ordre total (on utilise souvent $[0, 1]$)
7979-8080-Quand on parle de "coût d'une action", on parle du coût de l'état résultant de l'application de l'action en question à l'état actuel//: $ L: E times A -> S = (e, a) |-> L(a(e))$
81798280On remplit la colonne "Action à effectuer" avec l'action au coût le plus bas:
8381···183181==== Bullet avec Featherstone
184182185183L'algorithme de Featherstone @featherstone, servant d'implémentation alternative à Bullet @bullet-featherstone
184184+185185+=== Fonctions coût en robotique
186186+187187+==== _Proximal Policy Optimization_
188188+189189+186190187191188192== Le H1v2 d'_Unitree_