Contexte
Le Machine Learning (ML) est devenu un outil clé pour la régression, visant à prédire une variable continue (ex. température d'une pièce métallique) à partir de plusieurs entrées (ex. altitude, pression, humidité...). Bien que précis, les modèles classiques comme les réseaux de neurones profonds restent des boîtes noires, rendant l'interprétation difficile, un défi majeur pour les industries à haute exigence de sécurité, comme l'aérospatiale.
La régression symbolique (SR) offre une alternative en apprenant une fonction mathématique explicite reliant entrées et sorties. L'approche standard repose sur les algorithmes génétiques, où des expressions mathématiques évoluent via croisements et mutations pour optimiser un compromis entre précision et complexité.
SafranTech développe actuellement un algorithme propriétaire de régression symbolique en Python, fondé sur ces principes.
Objectifs
L'objectif principal de ce stage est de contribuer au développement continu de notre package algorithmique de régression symbolique (SR), à la fois sur les aspects programmation logicielle et conception algorithmique. Le périmètre du travail est flexible et sera adapté au profil du candidat. Les tâches possibles incluent (liste non exhaustive) :
Améliorer la qualité et la robustesse globales du code : concevoir et implémenter des tests unitaires adéquats, s'assurer que tout le code est bien documenté, respecte les bonnes pratiques de programmation, est aussi exempt de bugs que possible et que l'architecture du package est logique et cohérente.
Accélérer l'algorithme : concevoir et implémenter des schémas de programmation parallèle efficace afin de réduire le coût computationnel du processus évolutif ; analyser chaque étape du pipeline SR pour identifier les goulets d'étranglement et proposer des solutions pour les éviter.
Proposer et implémenter de nouvelles améliorations pour le processus évolutif : modifier le schéma de reproduction afin de générer de meilleures expressions mathématiques, développer des techniques intelligentes pour gérer les contraintes dans le processus évolutif.
Construire un benchmark rigoureux et étendu des algorithmes de régression symbolique existants afin de comparer les performances de notre package avec celles d'autres solutions disponibles.
Déroulement du stage
Le stage se déroulera en plusieurs phases :
- Se familiariser avec les algorithmes génétiques et la régression symbolique en consultant la littérature scientifique et en explorant la base de code existante.
- Selon les affinités du candidat, choisir parmi les objectifs proposés et travailler à l'amélioration de l'algorithme et du code pour atteindre ces objectifs.
- Évaluer l'impact des contributions en comparant la qualité du package (robustesse, précision de la régression, rapidité...) avant et après les modifications.
- Rédiger un rapport et présenter les résultats.
- formation en développement de code informatique
- notions de mathématiques applqiuées, plus particulièrement le machine ealnring et les statistiques
Ces entreprises recrutent aussi au poste de “Développement de logiciels et de sites Web”.