El Alem Dy : Application de techniques de l'IA pour une exécution intelligente de DSLs

De Ensiwiki
Aller à : navigation, rechercher
Cornues.png
Titre du projet Application de techniques de l'IA pour une exécution intelligente de DSLs
Cadre IRL

Labo LIG
Équipe Vasco
Encadrants akram.idani@univ-grenoble-alpes.fr,nicolas.hili@univ-grenoble-alpes.fr


Introduction

Les techniques de l’IA sont souvent appliquées au niveau logiciel (ou programme) et très peu au niveau de modéles de domaines. L’objectif de ce projet est de voir comment on peut intégrer des techniques de l’IA lors de la conception de langages dédiés domaines (DSL). L’outil Meeduse permet de concevoir des langages dédiés domaines et d’exprimer le mécanisme d’exécution de ces langages. Aujourd’hui cette exécution se fait de manière manuelle : l’utilisateur choisit les opérations qu’il veut exécuter et l’outil permet de les animer au niveau du mod`ele. On aimerait que l’outil puisse apprendre (au travers de techniques de machine learning) à partir des scénarios d’exécution manuels et reproduire (voire prédire) par lui-même des scénarios d’exécution automatisés.

Principe de l'apprentissage par renforcement et du Qlearning

L'apprentissage par renforcement consiste, pour un agent autonome (robot, etc.), à apprendre les actions à prendre, à partir d'expériences, de façon à optimiser une récompense quantitative au cours du temps. L'agent est plongé au sein d'un environnement, et prend ses décisions en fonction de son état courant. En retour, l'environnement procure à l'agent une récompense, qui peut être positive ou négative. L'agent cherche, au travers d'expériences itérées, un comportement décisionnel (appelé stratégie ou politique, et qui est une fonction associant à l'état courant l'action à exécuter) optimal, en ce sens qu'il maximise la somme des récompenses au cours du temps.

Le Q-learning est une technique d'apprentissage par renforcement. Cette technique ne nécessite aucun modèle initial de l'environnement. La lettre 'Q' désigne la fonction qui mesure la qualité d'une action exécutée dans un état donné du système. Cette méthode d'apprentissage permet d'apprendre une politique, qui indique quelle action effectuer dans chaque état du système. Cela fonctionne par l'apprentissage d'une fonction de valeur état-action notée Q qui permet de déterminer le gain potentiel, c'est-à-dire la récompense sur le long terme, Q(s,a) apporté par le fait d'effectuer une certaine action a dans un certain état s en suivant une politique optimale. Lorsque cette fonction de valeur d'action-état est connue/apprise par l'agent, la politique optimale peut être construite en sélectionnant l'action à valeur maximale pour chaque état, c'est-à-dire en sélectionnant l'action a qui maximise la valeur Q(s,a) quand l'agent se trouve dans l'état s.

Application aux DSLs

Etapes:

- Génération des différents états et transitions du DSL par le logiciel Meeduse sous forme de fichier DOT.

- Récupération de ses information par un parser de DOT.

- L'application de l'algorithme de Qlearning suivant pour générer la table de transition entre les états.

L'algorithme de QLearning

La situation consiste en un agent, un ensemble d'états S et d'actions A. En réalisant une action a∈A, l'agent passe d'un état s à un nouvel état s'et reçoit une récompense r (c'est une valeur numérique).

L'algorithme calcule une fonction de valeur action-état :

Q: S x A -> R

Q[s, a] := (1-alpha)Q[s, a] + alpha(r + gamma x max(Q[s', a'])) 


References

[1] http://vasco.imag.fr/tools/meeduse/

[2] https://deeplearning4j.org/

[3] https://www.learndatasci.com/tutorials/reinforcement-q-learning-scratch-python-openai-gym/