La science du machine learning n’est pas nouvelle mais elle connaît un nouvel élan avec le Big Data, en appliquant automatiquement des opérations mathématiques complexes aux données de masse pour apprendre des données reçues. Les moteurs de recommandation d’Amazon, Netflix ou Deezer sont des exemples représentatifs de cette technologie. Ils analysent le profil des utilisateurs et leur comportement afin de les classer dans diverses catégories.
L’objectif est de leur proposer ensuite des offres susceptibles de les intéresser. Comment cela fonctionne-t-il ? Quels langages et logiciels informatiques sont privilégiés pour le machine learning ?
Le progrès de l’apprentissage automatique grâce aux Big Data
Un ordinateur n’est pas intelligent, il ne fait qu’exécuter des tâches. On lui décrit sous forme de programmes quoi faire et comment le faire. C’est ce qu’on appelle la programmation.
Le machine learning est une technologie d’intelligence artificielle qui permet aux ordinateurs d’apprendre par eux-mêmes, sans avoir été programmés à effectuer des tâches spécifiques. Comment ? En reproduisant un comportement grâce à des algorithmes, eux-mêmes alimentés par un grand nombre de données. Confronté à de nombreuses situations, l’algorithme apprend quelle est la décision à adopter et créé un modèle. La machine peut automatiser les tâches en fonction des situations.
En fonction des données d’expérimentation que prendra l’algorithme d’apprentissage en entrée, il déduira par lui-même une hypothèse de fonctionnement. Il utilisera cette dernière pour de nouveaux cas, et affinera son expérience au fil du temps. La phase pendant laquelle la machine va tenter de trouver des corrélations, une « équation », est la fameuse phase d’apprentissage.
C’est ainsi que Facebook présentera seulement certains fils et pas tous : en entrée, l’algorithme prend des données (qui a posté, quand, quel est le sujet, nombre de likes…) puis il essaie de prédire si vous allez être intéressé ou non. La reconnaissance d’images utilise de la même façon le machine learning : la machine est nourrie d’images en entrée puis elle doit deviner ce qui y est représenté en sortie.
Le machine learning est la science idéale pour tirer profit des Big Data et de ses opportunités, en permettant d’extraire très rapidement des données de valeur parmi d’immenses sources d’informations complexes.
Plusieurs langages informatiques
Il existe plusieurs langages de programmation utilisés pour le machine learning et la science des données (Data Science).
- Python arrive en tête du peloton, avec 57% des data scientists et des ingénieurs machine learning qui l’utilisent. C’est le langage préféré des entreprises qui implémentent des solutions de Machine Learning grâce à la simplicité de sa syntaxe.
- C/C++ arrive juste derrière Python en termes d’utilisation (44%). La rapidité de C++ est très appréciée pour les projets d’intelligence artificielle qui sont limités dans le temps. Ce langage de programmation permet une exécution rapide et un temps de réponse assez court, ce qui est utile pour des moteurs de recherche ou les jeux vidéos.
- Java suit C/C++ de très près, tandis que JavaScript vient en cinquième position dans l’utilisation.
Plus spécialisé, le langage R vient au quatrième rang pour l’utilisation globale (31 %). Il est le plus souvent privilégié par les analystes de données et les statisticiens, puisque le langage a été initialement créé pour eux, en remplacement de S. R. Ce langage bénéficie de nombreux packages comme RODBC, Gmodels, Claass et Tm qui facilitent l’implémentation du machine learning.
Il existe d’autres langages plus marginaux pour le machine learning : Julia, Scala, Ruby, Octave, MATLAB et SAS.
Des outils qui varient selon les applications
Il n’y a jamais de langage meilleur que les autres pour le machine learning, tout dépend de l’utilisation que l’on en fait. Les experts de machine learning travaillant sur l’analyse des sentiments privilégieront Python et R. En revanche, Java sera plus utilisé par ceux qui travaillent sur la sécurité réseau / cyber-attaques et la détection des fraudes, les deux domaines où Python sera moins prioritaire.
L’intelligence artificielle (IA) dans les jeux et la robotique sont les deux domaines où le C/C++ est le plus privilégié, compte tenu du niveau de contrôle, de performance et d’efficacité requis. Ici, un langage de programmation de niveau inférieur tel que C/C++ qui vient avec des bibliothèques d’IA très sophistiquées est un choix naturel, tandis que R, conçu pour l’analyse statistique et les visualisations, est jugé le plus souvent non pertinent.
En dehors de l’analyse de sentiment, R est également une bonne solution pour les domaines biologiques/recherche – en bio-ingénierie et bio-informatique.
Faciles à utiliser, les nombreux algorithmes de machine learning restent difficiles à implémenter. Ils sont donc aujourd’hui packagés dans des bibliothèques logicielles fournies par de grandes communautés de programmeurs :
- NumPy pour le traitement de tableaux multidimensionnels,
- SciPy pour l’algèbre linéaire et l’informatique scientifique,
- Matplotlib pour la visualisation,
- Pandas pour les données chronologiques (sachant que la plupart des données en finance proviennent de séries chronologiques),
- Keras pour les réseaux neuronaux, etc.
L’acquisition de données, l’entraînement de modèles, de déploiement de réseaux de neurones requièrent à l’origine d’importantes compétences techniques.
Pour créer sa propre intelligence artificielle afin de mieux exploiter ses données, le recours à un framework Machine Learning est nécessaire. Grâce aux différents frameworks de machine learning, l’accès à cette technologie s’est simplifié au fil des années.
Parmi ces frameworks, on compte notamment PyTorch, CNTK, MXNet, et Google Tensorflow, l’un des outils les plus utilisés en IA pour développer et exécuter des applications de machine learning et de deep learning.
A l’aube du développement de l’intelligence artificielle et des défis posés par l’augmentation massive du volume de données échangées à traiter et stocker, la maîtrise des principaux langages de programmation et des logiciels du machine learning représente un atout significatif sur le marché du travail. Les profils de data scientists et d’ingénieurs en machine learning, encore rares, sont donc très convoités par les recruteurs !
Pour en savoir plus sur la majeure Data et intelligence artificielle