Découvrez les offres de stages de Quantmetry !

Qui sommes-nous ?

 

Nous pourrions commencer en nous présentant comme l’un des leaders sur le marché international du conseil en data, avec un chiffre d’affaires défiant ceux des G.A.F.A. Mais non. Nous préférons mettre en avant notre cadre de travail, nos réussites et surtout nos consultants. Allez venez, c’est par là…

Quantmetry c’est une centaine de personnes qui travaille de concert pour accompagner nos clients dans leurs réflexions, P.O.C., industrialisation autour de la Data, l’Intelligence Artificielle, le Machine Learning et la Big Data. Nous sommes ce qu’on peut appeler communément un cabinet de conseil pure player en Data.

N’étant pas sectorisés, nous intervenons sur différents sujets (voici une petite liste non-exhaustive) :

– La maintenance prédictive,

– La segmentation clients, le scoring,

– La détection de fraude, de corruption, de blanchiment d’argent,

– Le développement des architectures de plateformes Data,

– L’analyse de textes et d’images dans le cadre de la lutte contre le cancer du sein.

Dans le cadre de notre incessante croissance, nous recherchons des personnes motivées pour nous accompagner et ainsi travailler sur des projets de recherche.

 

Préalable

 

Quantmetry propose ci-dessous le volet R&D d’une offre de stage. Tout stagiaire entrant chez Quantmetry, outre le travail de R&D qui lui est proposé et pour lequel il sera encadré, aura aussi pour objectif de participer à certaines missions de conseil chez des clients variés, lui permettant d’aborder le monde du consulting.

Les offres

Sujets de stages pour les Data Scientists
(H/F)

Active learning

L’active learning est un domaine à part entière du machine learning. En effet, l’apprentissage supervisé nécessite un carburant : les labels. Par exemple, les transactions frauduleuses, les défauts sur les rails de train ou les spams doivent être labellisés (fraude/pas fraude, spam/pas spam) par un opérateur humain avant d’entraîner un modèle d’intelligence artificielle. La qualité des modèles de machine learning est grandement impactée par la quantité de données labellisées disponibles. Or, labelliser des données coûte cher pour plusieurs raisons :

  • Il nécessite des opérateurs humains effectuant un travail long, répétitif, et souvent délocalisé dans des pays à faible coût de main d’œuvre.
  • Pour certains cas d’usage, la labellisation nécessite une expertise rare (par exemple en santé) et peu de temps peut être alloué à cette tâche.

L’active learning est la science qui permet de minimiser le nombre de labels requis pour optimiser la performance d’un algorithme, dans une démarche à la fois éthique et pragmatique [1,2]. C’est aussi un outil d’adaptation à la dérive des modèles, qui permet d’affiner la frontière de décision en fonction des évolutions du signal. Plusieurs outils sont disponibles en accès libre, en particulier :

  • modAL [3,4], développé par l’académie hongroise des sciences
  • libact [5, 6], développé par l’université de Taiwan
  • AliPy [7, 8], développé par l’université de Nanjing (Chine)

La promesse de ces outils est de fournir des outils simples d’utilisation qui permettent d’implémenter des algorithmes d’active leaerning facilement.

Les objectifs de ce stage sont :

  • Prendre en main les 3 outils et les appliquer à des jeux de données simples en accès libre
  • Comparer leurs fonctionnalités, évaluer leur complétude vis-à-vis de l’état de l’art et lister leurs avantages/inconvénients
  • Construire un guide méthodologique et un tutoriel d’active learning avec les outils jugés les plus pertinents
  • Animer une formation en interne sur l’active learning

[1] http://www.charuaggarwal.net/active-survey.pdf

[2] https://towardsdatascience.com/active-learning-tutorial-57c3398e34d

[3] https://github.com/ntucllab/libact

[4] Danka and Horvath 2018, modAL : a modular active learning framework for python

[5] https://github.com/ntucllab/libact

[6] Yang et al. 2017, libact: pool-based active learning in python

[7] https://github.com/NUAA-AL/ALiPy

[8] ALIipy : active learning in python

Imputation de valeurs manquantes au sein des séries temporelles

Contexte

Les séries temporelles sont des suites de valeurs numériques permettant de représenter l’évolution d’un phénomène au cours du temps. Avec l’explosion des moyens numériques l’acquisition et l’exploitation des séries temporelles est une réalité dans tous les domaines. Que ce soit en santé où le taux de glycémie des patients atteint de diabète est monitoré, à l’industrie où l’on mesure l’état des équipements en temps réel en passant par la finance où le niveau de risque d’un portefeuille d’actions est surveillé, le traitement des séries temporelles représente un enjeu business important.

 

L’analyse des séries temporelles, aussi bien univariées que multivariées, représente un domaine de recherche scientifique très riche. Aussi bien dans le domaine des statistiques ou plus récemment du machine learning et du deep learning, l’exploitation des séries temporelles permet d’accomplir des tâches aussi variées que la prédiction, la détection d’anomalies ou encore du clustering. 

En condition réelle, les séries temporelles présentent très souvent des problèmes de qualité de données comme la présence de valeurs aberrantes, de valeurs manquantes ou encore de bruit. Les causes de ces problèmes de qualité de données peuvent être très variées: Des valeurs peuvent n’être jamais mesurées par un certain capteur ou bien perdues au moment de leur acheminement ou encore être acheminées mais considérées comme inutilisables. 

 

La présence de valeurs manquantes peut mener à des problèmes de qualité de données rendant difficilement utilisables les méthodes analytiques reposant sur la complétude d’une série temporelle. Dès lors le remplacement de ces “vides” par des valeurs “raisonnables” au sein d’une série temporelle, tâche appelée imputation, devient une nécessité.

 

Description du sujet

L’imputation de valeurs manquantes est un sujet de recherche important qui ne date pas d’hier dont voici quelques exemples de techniques d’imputation populaires: Multiple Imputation [1], Expectation-Maximization [2], Nearest Neighbor [3] ou encore HotDeck [4]. 

 

Toutefois l’imputation de valeurs manquantes au sein des séries temporelles représente un domaine de recherche à part entière. En effet là où les méthodes classiques exploitent la corrélation entre attribut afin d’estimer la valeur manquante, les valeurs d’une série introduisent quant à elles une interdépendance temporelle rendant les méthodes classiques difficilement utilisables. 

De nombreuses méthodes ont émergé [5] afin de prendre en considération la spécificité temporelle de cette typologie de données. On y retrouve aussi bien des études sur des séries temporelles univariées [5] que des séries multivariées [6]. Des méthodes variées sont employées allant des approches statistiques basées sur l’utilisation de modèles de prédiction type ARIMA ou SARIMA [7] aux méthodes bayésiennes [8], à de l’analyse spectrale [9, 10] en passant par l’utilisation de réseaux de neurones artificiels et plus précisément de modèles génératifs profonds allant des auto encodeurs (VAEs) [11] aux réseaux antagonistes génératifs (GANs) [12].

 

Objectifs et livrables

Le candidat aura pour responsabilité de mener une revue de littérature avancée sur le sujet afin d’identifier les approches état de l’art en matière d’imputation de valeurs manquantes sur les séries temporelles. Cette revue de littérature donnera lieu à 4 principaux livrables:

 

  1. L’élaboration d’un petit guide permettant de classifier les méthodes existantes et de dresser le squelette méthodologique de l’utilisation de ces techniques. Ce guide aura pour vocation d’accélérer la phase de revue de littérature sur les missions relatives à l’expertise “Time Series” du cabinet.
  2. L’élaboration d’un démonstrateur sous forme de notebook visant à benchmarker certains méthodes étudiées.
  3. Evangéliser en interne sur les travaux de R&D menés notamment via une présentation auprès des consultants de Quantmetry ou via une intervention ponctuelle sur une mission de conseil rattachée à l’expertise “Time Series” faisant intervenir des problématiques d’imputation de données sur des séries temporelles
  4. La rédaction d’un article dans le blog de Quantmetry visant à vulgariser dans les grandes lignes le travail de R&D qui aura été accompli

 

Références

 

[1] Rubin, D. B. (2004). Multiple imputation for nonresponse in surveys (Vol. 81). John Wiley & Sons.

 

[2] Dempster, A. P., Laird, N. M., & Rubin, D. B. (1977). Maximum likelihood from incomplete data via the EM algorithm. Journal of the Royal Statistical Society: Series B (Methodological), 39(1), 1-22.

 

[3] Vacek, P. M., & Ashikaga, T. (1980). An examination of the nearest neighbor rule for imputing missing values. Proc. Statist. Computing Sect., Amer. Statist. Ass, 326-331.

 

[4] Ford, B. L. (1983). An overview of hot-deck procedures. Incomplete data in sample surveys, 2(Part IV), 185-207.

 

[5] Moritz, S., Sardá, A., Bartz-Beielstein, T., Zaefferer, M., & Stork, J. (2015). Comparison of different methods for univariate time series imputation in R. arXiv preprint arXiv:1510.03924.

 

[6] Spratt, M., Carpenter, J., Sterne, J. A., Carlin, J. B., Heron, J., Henderson, J., & Tilling, K. (2010). Strategies for multiple imputation in longitudinal studies. American journal of epidemiology, 172(4), 478-487.

 

[7] Kihoro, Y. W. O., Athiany, J. M., & Kibunja, K. H. O. (2013). Imputation of incomplete non-stationary seasonal time series. Math. Theory Model, 3, 142154.

 

[8] Arcadinho, S., & Mateus, P. (2019). Time Series Imputation. arXiv preprint arXiv:1903.09732.

 

[9] Golyandina, N., & Osipov, E. (2007). The “Caterpillar”-SSA method for analysis of time series with missing values. Journal of Statistical planning and Inference, 137(8), 2642-2653.

 

[10] Mahmoudvand, R., & Rodrigues, P. C. (2016). Missing value imputation in time series using Singular Spectrum Analysis. International Journal of Energy and Statistics, 4(01), 1650005.

 

[11] Fortuin, V., Rätsch, G., & Mandt, S. (2019). Multivariate time series imputation with variational autoencoders. arXiv preprint arXiv:1907.04155.

 

[12] Luo, Y., Cai, X., Zhang, Y., & Xu, J. (2018). Multivariate time series imputation with generative adversarial networks. In Advances in Neural Information Processing Systems (pp. 1596-1607).

Evaluation d’incertitudes en machine learning

Les modèles prédictifs n’ont pas seulement vocation à fournir des prédictions, mais également à évaluer leurs incertitudes. En effet, par nature, une mesure, et a fortiori une prédiction, est incertaine et possède une variance propre. Cet aspect est peu étudié dans la communauté machine learning car l’attention est rivée sur la performance. Toutefois, lorsqu’il s’agit d’automatiser un processus via un modèle, la notion de risque devient primordiale pour l’adoption de l’intelligence artificielle dans les entreprises. L’absence d’incertitude ou d’estimation de risque est en réalité un frein avéré à l’industrialisation des modèles de machine learning. Pour répondre à cette demande du marché, il est nécessaire de développer et déployer des méthodes intégrant ces notions. Il existe plusieurs méthodes, qui se basent notamment sur des librairies en accès libre. Parmi ces méthodes, on trouve :

  • Statsmodel [1] qui une librairie standard de modèles statistiques, et recoupe à bien des égards les fonctionnalités de scikit-learn
  • Forest-confidence-interval [2, 3], développé par l’université de Washington
  • Les régressions quantiles sur gradient boosting [4, 5, 6]
  • La perturbation de données par bootstrap [7] ou de modèles par dropout [8] ou modification de la graine aléatoire

Ces méthodes ne sont pas unifiées, et sont parfois spécifiques à certains algorithme. Il est donc primordial de bien comprendre les champs d’application de chacune et d’identifier les points méthodologiques communs.

Les objectifs de ce stage sont :

  • Prendre en main les 2 outils statsmodels et forest-confidence-interval
  • Comparer leurs fonctionnalités, évaluer leur complétude vis-à-vis de l’état de l’art et lister leurs avantages/inconvénients
  • Construire un guide méthodologique et un tutoriel d’évaluation des incertitudes avec les outils jugés les plus pertinents
  • Animer une formation en interne sur l’évaluation d’incertitudes

[1] https://github.com/statsmodels/statsmodels

[2] https://github.com/scikit-learn-contrib/forest-confidence-interval

[3] Wager et al. 2014, Confidence Intervals for Random Forests: The Jackknife and the Infinitesimal Jackknife

[4] https://github.com/dmlc/xgboost

[5] https://github.com/microsoft/LightGBM

[6] https://towardsdatascience.com/regression-prediction-intervals-with-xgboost-428e0a018b

[7] https://machinelearningmastery.com/confidence-intervals-for-machine-learning/

[8] https://www.datagenius.fr/post/bayesian-deep-learning-soyez-sur-de-vos-incertitudes

Adaptation de domaine et transport optimal

Le machine learning est bâti sur une hypothèse rarement remise en cause, à savoir : les données sont indépendantes et identiquement distribuées. C’est l’hypothèse implicite et sous-jacente à toutes les techniques de séparation train/test et de validation croisée. Toutefois en pratique, cette hypothèse est rarement vérifiée. En effet, les données sont des signaux envoyés par un monde en constante évolution. A ce titre, les données n’échappent pas à la règle : elles évoluent dans le temps également, plus ou moins rapidement. C’est un vrai problème pour la mise en production de modèles prédictifs, car le jeu d’entraînement est souvent éloigné dans le passé, rendant le modèle obsolète pour prédire aujourd’hui. L’adaptation de domaine est la science qui cherche à résoudre ce problème [1,2] (voir [3] pour une vulgarisation en français) : sachant un jeu de données labellisées (X, Y) et un jeu de prédiction non-labellisé Z, comment transformer X pour qu’il ressemble le plus possible à Z et corriger l’obsolescence du modèle ?

Plusieurs outils implémentent des solutions d’adaptation de domaine, et plus largement de transport optimal. Certaines sont disponibles en accès libre, en particulier :

  • libTLDA [4], développé par l’université de Delft (Pays-Bas)
  • salad [5, 6], développé par l’université de Tubingen (Allemagne)
  • POT [7], développé par l’université Nice Sophia-Antipolis et l’Université Bretagne-Sud

La promesse de ces outils est de fournir une interface type sckit-learn et de démocratiser l’usage de l’adaptation de domaine.

Les objectifs de ce stage sont :

  • Prendre en main les 3 outils et les appliquer à des jeux de données simples en accès libre
  • Comparer leurs fonctionnalités, évaluer leur complétude vis-à-vis de l’état de l’art et lister leurs avantages/inconvénients
  • Construire un guide méthodologique et un tutoriel d’adaptation de domaine avec les outils jugés les plus pertinents
  • Animer une formation en interne sur l’adaptation de domaine

[1] Koow and Loog 2018, an introduction to domain adaptation and transfer learning

[2] Courty et al. 2015, optimal transport for domain adaptation

[3] P. Lemberger 2019, le transport optimal, couteau suisse de la data science

[4] https://github.com/wmkouw/libTLDA

[5] https://github.com/domainadaptation/salad

[6] Schneider et al. 2018, SALAD: A Toolbox for Semi-supervised Adaptive Learning Across Domains

[7] https://github.com/rflamary/POT

Contrôle de processus stochastiques

La surveillance de modèles prédictifs en production nécessite de tracer des indicateurs Data Science, que ce soit sur les données d’entrée du modèle ou sur les prédictions en sortie. Idéalement, il s’agit également de mesurer les performances du modèle, dans les limites imposées par le processus de labellisation. Ces indicateurs prennent la forme de séries temporelles régulièrement mises à jour. Une question fondamentale est alors : comment détecter, sur la base de ces indicateurs, une dérive dans les propriétés des données ou du modèle ? En effet, le modèle est une modélisation statique d’un monde dynamique, et est donc amené à devenir obsolète ou à réagir différemment en cas de changement dans le signal [1]. Le contrôle de processus stochastiques est la science qui permet justement de prévenir les dérives d’un signal temporel et d’émettre des alarmes rapidement. Elle est intimement liée à la détection de ruptures dans les séries temporelles [2].

Plusieurs outils implémentent des solutions de contrôle de processus stochastiques et sont disponibles en accès libre, en particulier :

  • Scikit-mutliflow [3, 4], développé par Telecom ParisTech et l’université de Waikato (Nouvelle-Zélande)
  • Pyspc [5], développé par un ingénieur indépendant,
  • Ruptures [6, 7], développé par l’ENS Cachan et l’université Paris Descartes

Les deux premiers outils se focalisent sur la détection de dérive en temps réel (online) sur des séries temporelles, tandis que le troisième fait appel à des techniques plus coûteuses d’optimisation, et permet la détection de dérive a posteriori, ou en mode offline.

Les objectifs de ce stage sont :

  • Prendre en main les 3 outils et les appliquer à des jeux de données simples en accès libre
  • Comparer leurs fonctionnalités, évaluer leur complétude vis-à-vis de l’état de l’art et lister leurs avantages/inconvénients
  • Construire un guide méthodologique et un tutoriel de contrôle de processus stochastiques avec les outils jugés les plus pertinents
  • Animer une formation en interne sur le contrôle de processus stochastiques

[1] Gama et al. 2013, A Survey on Concept Drift Adaptation

[2] Truong et al. 2019, Selective review of offline change point detection methods

[3] https://github.com/scikit-multiflow/scikit-multiflow

[4] Scikit-Multiflow: A Multi-output Streaming Framework

[5] https://github.com/carlosqsilva/pyspc

[6] https://github.com/deepcharles/ruptures

[7] Truong et al. 2018, ruptures: change point detection in Python

Sélection de variables

La mise en production de modèles de machine learning dans les entreprises se heurte aujourd’hui à plusieurs barrières. Tout d’abord, les modèles sont dits boîtes noires et suscitent la défiance des utilisateurs. Enfin, les modèles sont complexes à mettre à jour car le nombre de variables explicatives est trop élevé et décuple les coûts de maintenance. L’intelligibilité des modèles et leur maintenance en conditions opérationnelles défendent donc la simplicité et le nombre réduit de variables. Les modèles de machine learning sont plus facilement appréhendables par des utilisateurs non-experts, et sont plus faciles à maintenir et mettre à jour, s’ils reposent sur peu de variables. A ce titre, la sélection de variables (feature selection) est un ingrédient primordial de modélisation en machine learning. Il existe beaucoup de méthodes de sélection de variables, mais trop peu sont encore implémentées dans les librairies standard type scikit-learn. D’autres implémentations développées en recherche fondamentale et appliquée existent et sont parfois méconnues de la communauté. Parmi ces implémentations, on trouve en accès libre :

  • Stability-selection [1,2], développé par QuantumBlack, un cabinet de conseil londonien en Data Science
  • MLXtend [3], développé par l’université du Wisconsin-Madison
  • Scikit-feature [4, 5], développé par l’université d’Arizona

La promesse de ces outils est de fournir une interface type scikit-learn pour diffuser et démocratiser les méthodes de sélection de variables.

Les objectifs de ce stage sont :

  • Prendre en main les 3 outils et les appliquer à des jeux de données simples en accès libre
  • Comparer leurs fonctionnalités, évaluer leur complétude vis-à-vis de l’état de l’art et lister leurs avantages/inconvénients
  • Construire un guide méthodologique et un tutoriel de sélection de variables avec les outils jugés les plus pertinents
  • Animer une formation en interne sur la sélection de variables

[1] https://github.com/scikit-learn-contrib/stability-selection

[2] https://thuijskens.github.io/2018/07/25/stability-selection/

[3] https://github.com/rasbt/mlxtend

[4] https://github.com/jundongl/scikit-feature

[5] Li et al. 2018, Feature Selection: A Data Perspective

Speech2Text

Quantmetry se positionne depuis plusieurs années comme pionnier sur des sujets d’Intelligence Artificielle nécessitant une forte composante R&D. Afin de satisfaire au mieux les besoins de ses clients, Quantmetry se structure autour de pôles d’expertises, et en particulier le pôle NLP (Natural Language Processing).

Le Natural Language Processing (NLP) est une branche de l’informatique et de l’intelligence artificielle qui cherche à comprendre et à modéliser le langage. Plus précisément, cette discipline cherche à rendre le langage compréhensible par un ordinateur, de sorte à ce que ledit ordinateur puisse mimer la compréhension et le raisonnement d’un humain, de façon autonome, et plus rapidement.

Le langage oral étant le vecteur privilégié de communication depuis quelques (milliers d’) années, c’est naturellement que sa transcription en texte écrit (ou Speech2Text) occupe aujourd’hui une place de choix au sein des grandes problématiques adressées par le NLP.

Après avoir réalisé avec succès missions et concours R&D sur le sujet, Quantmetry souhaite continuer d’accroître sa connaissance du Speech2Text avec l’ambition de réaliser des sujets aussi divers que le sous-titrage, la transcription de conversations cockpit, la transcription de rapports-terrains, du speech2text offline and on device, … La popularité de cette tâche a largement cru au cours de ces 2 dernières années, notamment avec l’essor d’architectures telles que DeepSpeech ou bien SMLTA. Le stage se propose donc d’internaliser ce type de technologies.

 

Tâches proposées

La ou le stagiaire aura à produire un état de l’art sur les sujets de Speech2Text. La ou le stagiaire aura à entraîner et/ou fine-tuner des architectures à l’état de l’art, sur des données en anglais et en français.

 

Résultats attendus

Les résultats attendus sont le code source documenté accompagné d’une documentation scientifique et technique, comprenant une revue de l’état de l’art sur les sujets Speech2Text. Une ou plusieurs restitutions sous forme de présentation orale à des publics experts ou novices sont également à prévoir.

 

Compétences souhaitées

Nous recherchons quelqu’un.e de dynamique et curieux.se, qui saura s’intégrer et faire progresser notre ambitieuse expertise NLP !

 

Savoir-être

  • Autonome
  • Travail en équipe
  • Proactif

 

Data Science

  • Machine Learning
  • Expérience en Deep Learning (stage, projet et/ou cours)

 

Engineering

  • Python
  • Bonnes pratiques de développement logiciel

Génération de texte : réponse automatique

Quantmetry se positionne depuis plusieurs années comme pionnier sur des sujets d’Intelligence Artificielle nécessitant une forte composante R&D. Afin de satisfaire au mieux les besoins de ses clients, Quantmetry se structure autour de pôles d’expertises, et en particulier le pôle NLP (Natural Language Processing).

Le Natural Language Processing (NLP) est une branche de l’informatique et de l’intelligence artificielle qui cherche à comprendre et à modéliser le langage. Plus précisément, cette discipline cherche à rendre le langage compréhensible par un ordinateur, de sorte à ce que ledit ordinateur puisse mimer la compréhension et le raisonnement d’un humain, de façon autonome, et plus rapidement. Comprendre l’idée générale d’un texte, l’ironie, les éléments déterminants d’un paragraphe, saisir la bienveillance et la malveillance, ou encore être capable de générer un contenu textuel cohérent, sont autant d’exemples de branches et tâches du NLP qui connaissent un engouement exceptionnel ces dernières années.

Quantmetry souhaite s’intéresser à l’une de ces branches en particulier : la génération de texte. Ses applications sont nombreuses, parmi lesquelles la traduction automatique, ou encore l’auto-complétion. C’est ce dernier cas d’usage qui sera l’objet du stage. La popularité de cette tâche a très largement cru en 2019, notamment avec l’essor d’architectures à l’état de l’art telles que GPT 2, et son utilisation dans l’industrie comme par exemple l’auto-complétion de code, ou encore l’auto-complétion réalisée par Gmail. Le stage propose d’internaliser ce type de technologies, et ce plus précisément dans le cadre de la réponse à une demande client. Le traitement de demandes clients est une problématique largement rencontrée dans les missions réalisées par Quantmetry (demande d’information, de document, réclamations, …) ; personnaliser et/ou accélérer la réponse apportée à un client est un enjeu clé de la relation client. A ce titre, il mérite un intérêt tout particulier.

 

Tâches proposées

La ou le stagiaire aura à produire un état de l’art sur les sujets de génération de texte. La ou le stagiaire aura à entraîner et/ou fine-tuner des architectures à l’état de l’art, pour pouvoir générer la meilleure réponse à une demande client donnée.

 

Résultats attendus

Les résultats attendus sont le code source documenté accompagné d’une documentation scientifique et technique, comprenant une revue de l’état de l’art sur les sujets de génération de texte. Une ou plusieurs restitutions sous forme de présentation orale à des publics experts ou novices sont également à prévoir.

 

Compétences souhaitées 

Nous recherchons quelqu’un.e de dynamique et curieux.se, qui saura s’intégrer et faire progresser notre ambitieuse expertise NLP !

 

Savoir-être

  • Autonome
  • Travail en équipe
  • Proactif

 

Data Science

  • Machine Learning
  • Expérience en Deep Learning (stage, projet et/ou cours)
  • Expérience en NLP (stage, projet, et/ou cours)

 

Engineering

  • Python
  • Bonnes pratiques de développement logiciel

Adversarial Machine Learning - GANs

Quantmetry se positionne depuis plusieurs années comme pionnier sur des sujets d’Intelligence Artificielle nécessitant une forte composante R&D. Afin de satisfaire au mieux les besoins de ses clients, Quantmetry se structure autour de pôles d’expertises.

Au cours de cette R&D, les méthodologies de modèles génératifs basés sur le Deep Learning ont été investigués, et plus particulièrement les Generative Adversarial Networks (GANs).

Les GANs sont un cadre d’estimation de modèle génératif. Il s’agit d’une façon d’entraîner des réseaux de neurones à représenter implicitement la distribution qui a permis de générer un certain jeu de données. On peut alors générer de nouveaux échantillons, plus ou moins réalistes selon le niveau de qualité du modèle. Plus précisément, deux réseaux sont entraînés simultanément en concurrence : un générateur G  (responsable de la génération de données, par exemples des images) et un discriminateur D  (dans le cas général, il s’agit d’un classifieur estimant la probabilité qu’une donnée provienne des données d’origine).

Appliqués à des données images, mais aussi tabulaires, de nombreux usages sont à portée de main, et la recherche académique est prolifique.

 

Tâches proposées

En suite de premiers travaux sur la génération de données tabulaires numériques continues, discrètes et catégorielles, ayant pour objectif de générer des données synthétiques suffisamment qualitatives pour remplacer des données réelles lors de l’entraînement de modèles de Machine Learning de type classification, le stage proposé

vise à capitaliser sur ces développements afin de les généraliser ces travaux, avec un objectif d’amélioration de la robustesse des modèles ML.

L’objectif sera donc d’investiguer l’adversarial machine learning, ou comment générer de nouvelles données améliorant la robustesse d’un modèle.

Les GANs utilisés pourront être par exemple WassersteinGAN avec Gradient Penalty, Cramer GAN, éventuellement MedGan ou encore couplés à un autoencodeur.

Les méthodes hors GAN doivent également être benchmarkées.

 

Résultats attendus

Les résultats attendus sont le code source générique documenté accompagné d’une documentation scientifique et technique.

Une ou plusieurs restitutions sous forme de présentation orale à des publics experts ou novices sont également à prévoir.

Compétences souhaitées

Savoir-être

  • Autonome
  • Travail en équipe
  • Proactif
  • Esprit critique

Data Science

  • Machine Learning
  • Deep Learning
  • Statistiques

Engineering

  • Python
  • TensorFlow, Keras
  • Bonnes pratiques de développement logiciel

Développeur logiciels embarqués - ReCoRD

Contexte et contenu du stage

En partenariat avec les Hôpitaux de Strasbourg, Quantmetry développe un projet d’objet connecté pour le secteur médical et qui a pour objectif de faciliter le monitoring des patients dans la période post-opératoire.
Ce projet a déjà reçu deux prix majeurs au Hacking Health Camp 2019 et est lauréat de Innov’up leader PIA, un dispositif de financement soutenu par la BPI Île-de-France. L’objectif de ce programme d’innovation ReCoRD est de construire un “Redon Connecté pour le Retour à Domicile” (ReCoRD), un dispositif intelligent et connecté destiné à la surveillance hospitalière et à domicile des patients venant d’être opérés et à qui un drain de Redon ou redon a été posé au niveau de la plaie opératoire. Le rôle d’un redon est d’assurer un drainage des sécrétions produites au niveau de la plaie opératoire et de
les recueillir dans un récipient. La couleur, l’aspect et la quantité des fluides ainsi collectés sont l’objet d’une surveillance régulière post-opératoire et ce jusqu’au retrait du redon.
Dans le cadre de ce projet Quantmetry recherche un.e stagiaire pour concevoir et participer au développement de la partie électronique de cet objet. Durant le stage, la.le stagiaire devra mobiliser des compétences et connaissances en:
  • Réalisation de spécification fonctionnelles
  • Conception électronique
  • Réalisation des schémas
  • Routage de carte
  • Relation fournisseur pour faire réaliser les cartes prototype
  • Développement logiciel embarqué
  • Technologies de capteurs
  • Technologies de communication
La.le stagiaire bénéficiera d’un environnement dynamique, au sein d’une équipe jeune de consultants. Durant le stage, elle.il sera initié.e aux outils et processus d’un cabinet spécialisé, ainsi qu’aux diverses formes d’études de recherche et développement d’une entreprise en plein développement, experte en technologie de l’innovation.
Des connaissances spécifiques peuvent également représenter un plus :
– Connaissances du secteur médical
– Connaissance en physique des fluides et/ou en chimie.
  • Date de début : début 2020
  • Durée : 6 mois
  • Localisation : 52 rue d’Anjou, 75008 Paris
  • Niveau requis : diplômé d’une école d’ingénieur, ou niveau M2, spécialisé en électronique et système embarqués avec une bonne capacité à interagir en équipe sur une problématique requérant autonomie et une certaine rapidité d’action. Des compétences en intégration de capteurs intelligents serait apprécié.
  • Rémunération : 1200 €
  • Avantages :  les coûts quotidiens de transport sont pris en charge pour moitié par
    Quantmetry et remboursés en sus du salaire mensuel. Des déplacements
    à Strasbourg sont à prévoir. Mise à disposition d’un MAC.
  • Contact : gmorisse@quantmetry.com / eabouchar@quantmetry.com

Développeur Front UX - ReCoRD

Contexte et contenu du stage

Conception d’un dispositif médical incorporant de l’intelligence artificielle.
En partenariat avec les Hôpitaux de Strasbourg, Quantmetry développe un projet d’objet connecté pour le secteur médical et qui a pour objectif de faciliter le monitoring des patients dans la période post-opératoire.
Ce projet a déjà reçu deux prix majeurs au Hacking Health Camp 2019 et est lauréat de Innov’up leader PIA, un dispositif de financement soutenu par la BPI Île-de-France. L’objectif de ce programme d’innovation ReCoRD est de construire un “Redon Connecté pour le Retour à Domicile” (ReCoRD), un dispositif intelligent et connecté destiné à la surveillance hospitalière et à domicile des patients venant d’être opérés et à qui un drain de Redon ou redon a été posé au niveau de la plaie opératoire. Le rôle d’un redon est d’assurer un drainage des sécrétions produites au niveau de la plaie opératoire et de
les recueillir dans un récipient. La couleur, l’aspect et la quantité des fluides ainsi collectés sont l’objet d’une surveillance régulière post-opératoire et ce jusqu’au retrait du redon.
Dans le cadre de ce projet Quantmetry recherche un.e stagiaire pour participer au développement des intelligences artificielles nécessaires pour produire les analyses de fluide. Ce.tte stagiaire sera intégré.e au sein d’une équipe dédiée au projet.
Durant le stage, la.le stagiaire devra mobiliser des compétences pour:
  • Conception (UX) des maquettes fonctionnelles
  • Développement des interfaces utilisateur (dont datavisualisation)
  • Interfaçage avec les développeurs backend
La.le stagiaire bénéficiera d’un environnement dynamique, au sein d’une équipe jeune de consultants. Durant le stage, elle.il sera initié.e aux outils et processus d’un cabinet spécialisé, ainsi qu’aux diverses formes d’études de recherche et développement d’une entreprise en plein développement, experte en technologie de l’innovation.
Des connaissances spécifiques peuvent également représenter un plus :
  • Connaissances en statistiques et probabilité et langages associés (Python, R)
  • Connaissances du secteur médical
  • Connaissances en physique des fluides et/ou en chimie
  • Appétence pour l’électronique, le data engineering, l’IOT embarquée
  • Date de début : début 2020
  • Durée : 6 mois
  • Localisation : 52 rue d’Anjou, 75008 Paris
  • Niveau requis : étudiant en dernière année d’école d’ingénieur, ou étudiant universitaire niveau M2, avec un fort intérêt pour l’IoT et une bonne capacité à interagir en équipe sur une problématique requérant autonomie et une certaine rapidité d’action. La maîtrise écrite et rédactionnelle de l’anglais est nécessaire.
  • Rémunération : 1200 €
  • Avantages :  les coûts quotidiens de transport sont pris en charge pour moitié par
    Quantmetry et remboursés en sus du salaire mensuel. Des déplacements
    à Strasbourg sont à prévoir. Mise à disposition d’un MAC.
  • Contact : gmorisse@quantmetry.com / eabouchar@quantmetry.com

Hierarchical Probalistic Forecast

Contexte et contenu du stage

Conception d’un dispositif médical incorporant de l’intelligence artificielle.
En partenariat avec les Hôpitaux de Strasbourg, Quantmetry développe un projet d’objet connecté pour le secteur médical et qui a pour objectif de faciliter le monitoring des patients dans la période post-opératoire.
Ce projet a déjà reçu deux prix majeurs au Hacking Health Camp 2019 et est lauréat de Innov’up leader PIA, un dispositif de financement soutenu par la BPI Île-de-France. L’objectif de ce programme d’innovation ReCoRD est de construire un “Redon Connecté pour le Retour à Domicile” (ReCoRD), un dispositif intelligent et connecté destiné à la surveillance hospitalière et à domicile des patients venant d’être opérés et à qui un drain de Redon ou redon a été posé au niveau de la plaie opératoire. Le rôle d’un redon est d’assurer un drainage des sécrétions produites au niveau de la plaie opératoire et de
les recueillir dans un récipient. La couleur, l’aspect et la quantité des fluides ainsi collectés sont l’objet d’une surveillance régulière post-opératoire et ce jusqu’au retrait du redon.

Dans le cadre de ce projet Quantmetry recherche un.e stagiaire pour participer au développement des intelligences artificielles nécessaires pour produire les analyses de fluide.

Ce.tte stagiaire sera intégré.e au sein d’une équipe dédiée au projet. Durant le stage, la.le stagiaire devra mobiliser des compétences pour :

  • Mener des revues bibliographiques scientifiques
  • Modélisation et développements des modèles (feature engineering)
  • Rédaction du rapport scientifique
  • Participation à toutes les phases du projet (bancs d’essai, industrialisation)

La.le stagiaire bénéficiera d’un environnement dynamique, au sein d’une équipe jeune de consultants. Durant le stage, elle.il sera initié.e aux outils et processus d’un cabinet spécialisé, ainsi qu’aux diverses formes d’études de recherche et développement d’une entreprise en plein développement, experte en technologie de l’innovation.

Des connaissances spécifiques peuvent également représenter un plus :
  • Connaissance du secteur médical
  • Connaissance du deep learning
  • Connaissance en physique des fluides et/ou en chimie

 

  • Date de début : début 2020
  • Durée : 6 mois
  • Localisation : 52 rue d’Anjou, 75008 Paris
  • Niveau requis : étudiant en dernière année d’école d’ingénieur, ou étudiant universitaire niveau M2, avec un fort intérêt pour l’IoT et une bonne capacité à interagir en équipe sur une problématique requérant autonomie et une certaine rapidité d’action. La maîtrise écrite et rédactionnelle de l’anglais est nécessaire.
  • Rémunération : 1200 €
  • Avantages :  les coûts quotidiens de transport sont pris en charge pour moitié par
    Quantmetry et remboursés en sus du salaire mensuel. Des déplacements
    à Strasbourg sont à prévoir. Mise à disposition d’un MAC.
  • Contact : gmorisse@quantmetry.com / eabouchar@quantmetry.com

Conception d'un dispositif médical - ReCoRD

Réconciliation et répercussions des incertitudes à différentes échelles

Les séries temporelles peuvent être souvent désagrégées ou agrégées suivant différentes façons. Par exemple pour un retailer, la vente future des chaussures de courses peut être vu à l’échelle d’un pays, d’un magasin ou d’un type de chaussures et même d’une couleur d’un type de chaussures bien précises.

Il est ainsi judicieux de générer des prévisions à chaque niveau d’agrégation.  Pour cela, plusieurs méthodes existent pour générer et/ou réconcilier les prévisions à différents niveaux comme l’approche top-down, bottom-up ou une réconciliation optimale pour avoir des prévisions cohérentes. [1] [2]

De plus, dans la plupart des cas d’usage lié à la prévision, l’incertitude de la prévision est aussi importante, voire même plus importante, que la prévision elle-même. Les prévisions probabilistes sont de plus en plus étudiées ce qui apporte un vrai plus dans l’aide à la décision des entreprises et améliore l’industrialisation des modèles de prévision.

Cependant, un aspect encore peu étudié est la combinaison des prévisions probabilistes et leur réconciliation hiérarchique. En effet, il est primordial de pouvoir répercuter avec cohérence les incertitudes pour améliorer les prises de décisions. Quelques méthodes apparaissent pour pouvoir répondre à cette problématique importante. [3] [4]

 

Ces méthodes ne sont pas encore très répandues, il est donc indispensable d’en faire une analyse critique et de tester leur mise en application.

 

Les objectifs de ce stage sont :

  • Prendre en main les méthodes de réconciliation de séries temporelles ainsi que les méthodes de prévisions probabilistes.
  • Faire un état de l’art des méthodes de réconciliations des incertitudes
  • Implémenter et tester ces méthodes sur un cas d’usage
  • Contribuer au guide méthodologique « prévision de séries temporelles » sur la partie dédiée à la réconciliation des incertitudes
  • Animer une formation en interne sur la réconciliation des incertitudes

 

[1] Hyndman, R.J., & Athanasopoulos, G. (2018) Forecasting: principles and practice, 2nd edition

[2] Shanika L Wickramasuriya, George Athanasopoulos, Rob J Hyndman

(2019) J. American Statistical Association, 114(526), 804-819

[3] Souhaib Ben Taieb, James W Taylor, Rob J Hyndman

(2017)

[4] Souhaib Ben Taieb, James W Taylor, Rob J Hyndman

(2017) Proceedings of the 34th International Conference on Machine Learning, PMLR 70:3348-3357

 

Date de début : début 2020

  • Durée : 6 mois
  • Localisation : 52 rue d’Anjou, 75008 Paris
  • Niveau requis : étudiant en dernière année d’école d’ingénieur, ou étudiant universitaire niveau M2, avec un fort intérêt pour l’IoT et une bonne capacité à interagir en équipe sur une problématique requérant autonomie et une certaine rapidité d’action. La maîtrise écrite et rédactionnelle de l’anglais est nécessaire.
  • Rémunération : 1200 €
  • Avantages :  les coûts quotidiens de transport sont pris en charge pour moitié par
    Quantmetry et remboursés en sus du salaire mensuel. Mise à disposition d’un MAC.

Simulation de scénarii pour la prévision de séries temporelles

Contexte 

La majorité des entreprises et des organisations s’appuient fortement sur les données issues de séries temporelles pour des tâches critiques comme la prévision et la prise de décision : les résultats obtenus suite à l’étape de prévision sont utilisés par les opérationnels pour prendre des décisions concernant la planification de la demande, l’allocation des ressources, la gestion des stocks, etc. Le niveau et l’incertitude de ces prévisions représentent donc un enjeu important pour les entreprises.

 

Bien que toutes ces tâches soient généralement axées sur des données réelles représentant l’organisation et les processus opérationnels, il est également important de les appliquer à d’autres scénarios afin de se préparer aux développements qui divergent des attentes ou d’évaluer la robustesse des stratégies actuelles.

 

Sur la base des données passées et actuelles, la simulation de scénarii permet aux utilisateurs de construire des modèles de prévision basés sur des suppositions hypothétiques et d’évaluer les effets et les actions à entreprendre si ces hypothèses se réalisent.

 

Au-delà des aspects purement métier, la simulation des scénarii présente également un intérêt considérable dans la définition de l’approche Data Science, notamment pour le choix de la maille temporelle d’analyse : généralement, dans un problème de séries temporelles, le choix de la maille temporelle se fait uniquement au regard de l’utilisation métier. Ce choix peut causer une perte d’information et impacter le niveau d’incertitude des prédictions effectuées. Exemple : agrégation au niveau mensuel de l’historique des volumes de ventes quotidiens pour prédire la demande mensuelle future d’un produit.

 

La problématique proposée présente un enjeu business lié fortement aux choix stratégiques et opérationnelles des entreprises. Elle nécessite de fortes compétences Data Science, notamment en termes de forecasting probabiliste, de forecasting statistiques et de simulation de données.

 

Exemples d’applications : 

  • Etudes de marché :  simuler différents scénarios prenant en compte différentes hypothèses du marché, prix, produits, conditions météorologiques, etc.
  • Industrie : savoir si une unité de production peut s’adapter à une situation différente du marché : demande plus élevée, délais plus courts, etc.
  • Energie : évaluer le risque de surconsommation ou de sous-consommation du réseau d’énergie en raison, par exemple, d’un changement de comportement des utilisateurs, de la croissance démographique, l’implantation d’un nouveau site, etc.

 

L’objectif de ce stage est de construire un démonstrateur permettant de :

  • Sélectionner différentes mailles temporelles d’analyse et visualiser l’impact sur la précision et l’incertitude de la mesure
  • Simuler les effets des différentes perturbations possibles sur les variables 
  • D’un point de vue statistique, quantifier l’incertitude liée à ces perturbations et l’impact sur les KPI métier

 

Date de début : début 2020

  • Durée : 6 mois
  • Localisation : 52 rue d’Anjou, 75008 Paris
  • Niveau requis : étudiant en dernière année d’école d’ingénieur, ou étudiant universitaire niveau M2, avec un fort intérêt pour l’IoT et une bonne capacité à interagir en équipe sur une problématique requérant autonomie et une certaine rapidité d’action. La maîtrise écrite et rédactionnelle de l’anglais est nécessaire.
  • Rémunération : 1200 €
  • Avantages :  les coûts quotidiens de transport sont pris en charge pour moitié par
    Quantmetry et remboursés en sus du salaire mensuel. Mise à disposition d’un MAC.
Sujet de stage pour les Data Engineers
(H/F)

Validation automatique de la donnée

La première étape de tout traitement des données, en particulier du cycle de vie des données, et par extension du cycle de vie des modèles, est la validation de la donnée. En particulier, au même titre qu’un code, la donnée doit pouvoir faire l’objet de tests unitaires automatiques afin de rejeter la donnée de mauvaise qualité et de prévenir les risques y afférant. Une méthode émergente de validation automatique repose sur un schéma de contraintes, capable de sauvegarder toutes les hypothèses faites sur un jeu de données, et de logger toutes les non-conformités observées.  Plusieurs librairies en accès libre proposent ce genre de service :

  • TDDA (Test-Driven Data Analysis) [1, 2], développé par Stochastic Solutions et le département de mathématique de l’université d’Edimbourg,
  • TensorFlow Data Validation [3,4], développé par Google Research,
  • Delta Lake [5], développé par l’éditeur de solutions Databricks,
  • Deequ [6, 7], developpé par Amazon Research et l’université d’Augsbourg

Les schémas de contraintes sont un élément clef du cycle de vie des données, et la promesse de ces outils est d’automatiser la découverte et la maintenance des contraintes auxquelles doivent obéir les données.

Les objectifs de ce stage sont :

  • Prendre en main les 4 outils et les appliquer à des jeux de données simples en accès libre
  • Comparer leurs fonctionnalités et lister leurs avantages/inconvénients
  • Construire un guide méthodologique et un tutoriel de validation de donnée avec les outils jugés les plus pertinents

Animer une formation en interne sur la validation automatique de la donnée

 

[1] https://github.com/tdda/tdda

[2] https://www.youtube.com/watch?v=FIw_7aUuY50

[3] https://github.com/tensorflow/data-validation

[4] Breck et al. 2019, Data Validation for Machine Learning

[5] https://github.com/delta-io/delta

[6] https://github.com/awslabs/deequ

[7] Schelter et al. 2018, Automating Large-Scale Data Quality Verification

 

Date de début : début 2020

  • Durée : 6 mois
  • Localisation : 52 rue d’Anjou, 75008 Paris
  • Niveau requis : étudiant en dernière année d’école d’ingénieur, ou étudiant universitaire niveau M2, avec un fort intérêt pour l’IoT et une bonne capacité à interagir en équipe sur une problématique requérant autonomie et une certaine rapidité d’action. La maîtrise écrite et rédactionnelle de l’anglais est nécessaire.
  • Rémunération : 1200 €
  • Avantages :  les coûts quotidiens de transport sont pris en charge pour moitié par
    Quantmetry et remboursés en sus du salaire mensuel. Mise à disposition d’un MAC.

Forecasting at scale

Contexte 

 

Développement d’une architecture permettant la gestion de la prévision d’une grande quantité de séries temporelles

Un grand nombre de cas d’usage data science nécessite de gérer des milliers/millions de séries temporelles en simultané. Cela concerne notamment la prévision de la consommation énergétique mais aussi la maintenance de systèmes multi-composants ou le suivi des ventes/des clients (banque, assurance, retail, etc.). Avant la mise en production de tel projet, il est indispensable de mettre en place des systèmes robustes et efficace pour gérer le stockage des séries temporelles, le traitement, le suivi des modèles de prévision, etc. 

 

Problématiques à traiter  : 

  • Comment stocker et requêter ces séries temporelles? Quel type de base de données représente le meilleur compromis temps d’accès/coût/performance pour le stockage de ces millions de séries temporelles?
  • Comment procéder au pré-traitement des séries temporelles ? Directement lors de la réception des données ou “on the fly” lorsqu’elles sont requêtes. 
  • Comment trouver le bon compromis entre un modèle par série temporelle et un modèle pour un ensemble de séries temporelles ?
  • Comment orchestrer, gérer et monitorer les modèles de prévision ?

 

L’objectif de ce stage est donc de construire un démonstrateur de forecast de millions de séries temporelles en interaction avec nos data scientists, nos data engineers et architectes. L’infrastructure du démonstrateur sera réalisée sous AWS.

Le volet “data science” peut faire l’objet d’un stage spécifique, qui aurait pour but de se saisir des principaux algorithmes utiles, et de permettre de faire un choix de (ré)implémentation Scala versus Python.

 

Date de début : début 2020

  • Durée : 6 mois
  • Localisation : 52 rue d’Anjou, 75008 Paris
  • Niveau requis : étudiant en dernière année d’école d’ingénieur, ou étudiant universitaire niveau M2, avec un fort intérêt pour l’IoT et une bonne capacité à interagir en équipe sur une problématique requérant autonomie et une certaine rapidité d’action. La maîtrise écrite et rédactionnelle de l’anglais est nécessaire.
  • Rémunération : 1200 €
  • Avantages :  les coûts quotidiens de transport sont pris en charge pour moitié par
    Quantmetry et remboursés en sus du salaire mensuel. Mise à disposition d’un MAC.
Sujets de stages pour les Machine Learning Engineers
(H/F)

Développement d’un design pattern data science

Un design pattern est une solution pratique à un problème de conception logiciel. Il existe de nombreux design pattern classiques répondant à différentes problématiques logicielles (web, microservices …).

Actuellement nous n’avons pas de design pattern spécifiquement adaptés pour les projets data science. Pourtant certaines problématiques subsistent :

  • Comment garantir une évaluation des performances fiable ? (notamment garantir l’absence de leakage dans le processus d’évaluation des performances, c’est à dire l’utilisation d’informations qui ne seraient pas disponibles en production) ?
  • Comment être robuste au changement de l’infrastructure ou des sources de données en cours de développement ?
  • Comment l’architecture choisie facilite le versionnement des modèles et des données ?

L’objectif de ce stage est donc de construire cette méthodologie de développement en interaction avec nos data scientists, nos data engineer et nos architectes. Cette solution sera par la suite intégrée à nos bonnes pratiques de développement.

Plusieurs étapes seront nécessaires au cours du stage :

  • Une veille scientifique sur les designs pattern data science existants
  • Une veille interne pour recenser les problèmes techniques rencontrés par les data scientist et les data engineer en mission
  • La rédaction d’un guide méthodologique formalisant ces différents design pattern “data science”, leurs conditions d’applicabilité ainsi que des exemples d’implémentations.
  • Le test de ces design pattern, soit dans le cadre d’une mission soit dans la modification du template de code actuel.

Apprentissage adaptatif et stream mining

En présence de données fortement volatiles, les modèles standards de machine learning voient leurs performances décroître dans le temps, et devenir obsolètes. C’est le cas par exemple des algorithmes de détection de fraude, qui doivent se battre contre un adversaire aux stratégies changeantes, les algorithmes d’enchères publicitaires, qui doivent surfer sur les vagues de promotions et les changements de consommation, ou encore les algorithmes de prévision de consommation électrique, soumis aux aléas de la vie et situations familiales et professionnelles. La dérive des signaux contenus dans les données est appelée dérive conceptuelle (concept drift) [1]. Il existe une famille d’algorithmes spécialement dédié à l’apprentissage sur des données évolutives à forte volumétrie (stream mining), les algorithmes adaptatifs.

L’essentiel du savoir-faire et de la recherche en apprentissage adaptatif est centralisé sur trois outils :

  • Scikit-multiflow [2, 3], écrit en python, développé par Telecom ParisTech,
  • Massive Online Analysis (MOA) [4, 5], écrit en Java, développé par l’université de Waikato (Nouvelle-Zélande)
  • Apache Scalable Massive Online Analysis (SAMOA) [6, 7], écrit en Java et incubé par la fondation Apache, développé par Yahoo Labs (Barcelone).

SAMOA vise la scalabilité des algorithmes. MOA concentre l’état de l’art en la matière et est entièrement compatible avec SAMOA. Scikit-multiflow est une version allégée de MOA écrite en python et avec la même syntaxe que scikit-learn, dans une volonté de diffusion élargie.

Les objectifs de ce stage sont :

  • Prendre en main les 3 outils et les appliquer à des jeux de données simples en accès libre. On évaluera notamment la capacité de SAMOA à s’intégrer dans un environnement Big Data.
  • Comparer leurs fonctionnalités, évaluer leur complétude vis-à-vis de l’état de l’art et lister leurs avantages/inconvénients
  • Construire un guide méthodologique et un tutoriel d’apprentissage adaptatif avec les outils jugés les plus pertinents
  • Animer une formation en interne sur l’apprentissage adaptatif

[1] Gama et al. 2013, A Survey on Concept Drift Adaptation

[2] https://github.com/scikit-multiflow/scikit-multiflow

[3] Montiel et al. 2018, Scikit-Multiflow: A Multi-output Streaming Framework

[4] https://github.com/Waikato/moa

[5] Bifet et al. 2010, MOA: Massive Online Analysis

[6] https://github.com/apache/incubator-samoa

[7] De Francisci Morales and Bifet 2015, SAMOA: Scalable Advanced Massive Online Analysis

Découvrez la vie d'une société tech, big data et IA