# Apprentissage automatique

L'apprentissage automatique$^,$ (en anglais : machine learning, litt. « apprentissage machine$^,$ »), apprentissage artificiel ou apprentissage statistique est un champ d'étude de l'intelligence artificielle qui se fonde sur des approches mathématiques et statistiques pour donner aux ordinateurs la capacité d'« apprendre » à partir de données, c'est-à-dire d'améliorer leurs performances à résoudre des tâches sans être explicitement programmés pour chacune. Plus largement, il concerne la conception, l'analyse, l'optimisation, le développement et l'implémentation de telles méthodes. On parle d'apprentissage statistique car l'apprentissage consiste à créer un modèle dont l'erreur statistique moyenne est la plus faible possible.
L'apprentissage automatique comporte généralement deux phases. La première consiste à estimer un modèle à partir de données, appelées observations, qui sont disponibles et en nombre fini, lors de la phase de conception du système. L'estimation du modèle consiste à résoudre une tâche pratique, telle que traduire un discours, estimer une densité de probabilité, reconnaître la présence d'un chat dans une photographie ou participer à la conduite d'un véhicule autonome. Cette phase dite « d'apprentissage » ou « d'entraînement » est généralement préalable à l'utilisation pratique du modèle. La seconde phase est la mise en production : le modèle étant déterminé, de nouvelles données peuvent alors être soumises afin d'obtenir le résultat correspondant à la tâche souhaitée.
Certains systèmes peuvent continuer à apprendre une fois en production, s'ils disposent d'un retour sur la qualité des résultats produits. C'est l'apprentissage en ligne, ou l'apprentissage continu.
Selon le type de données utilisées pour l'apprentissage, on distingue :
* l'apprentissage supervisé : l'algorithme apprend à partir de données étiquetées (la réponse à la tâche, qui est la donnée de sortie, est donc connue pour chaque données d'entrée). L'objectif est de prédire les sorties pour de nouvelles données ;
* l'apprentissage non supervisé : l'algorithme apprend à partir de données non étiquetées. Il cherche à découvrir des structures sous-jacentes, cachées (qui peuvent par exemple être une densité de probabilité) ; des motifs dans les données permettent la classification ou le classement des données ;
* l'apprentissage semi-supervisé : il tire parti d'une grande quantité de données non étiquetées pour améliorer la performance du modèle, tout en utilisant une moindre quantité de données étiquetées pour guider son apprentissage. Il diminue les coûts d'étiquetage manuel des données ;
* l'apprentissage auto-supervisé : c'est une forme d'apprentissage non supervisé, où le modèle génère ses propres étiquettes à partir des données brutes. Le modèle peut ainsi créer des représentations internes utiles, sans nécessiter de données étiquetées manuellement.
L'apprentissage automatique peut être appliqué à divers types de données, tels des graphes, des arbres, des courbes, ou plus simplement des vecteurs de caractéristiques, qui peuvent être des variables qualitatives ou quantitatives continues ou discrètes.
Si le modèle apprend de manière incrémentale, en fonction d'une récompense reçue par le programme pour chacune des actions entreprises, on parle d'apprentissage par renforcement.

## Historique

Depuis l'antiquité, le sujet des machines pensantes préoccupe les esprits. Ce concept est la base de pensées pour ce qui deviendra ensuite l'intelligence artificielle, ainsi qu'une de ses sous-branches : l'apprentissage automatique.
La concrétisation de cette idée est principalement due à Alan Turing (mathématicien et cryptologue britannique) et à son concept de la « machine universelle » en 1936, qui est à la base des ordinateurs d'aujourd'hui. Il continuera à poser les bases de l'apprentissage automatique, avec son article sur « L'ordinateur et l'intelligence » en 1950, dans lequel il développe, entre autres, le test de Turing.
En 1943, le neurophysiologiste Warren McCulloch et le mathématicien Walter Pitts publient un article décrivant le fonctionnement de neurones en les représentant à l'aide de circuits électriques. Cette représentation sera la base théorique des réseaux neuronaux.
Arthur Samuel, informaticien américain pionnier dans le secteur de l'intelligence artificielle, est le premier à faire usage de l'expression machine learning (en français, « apprentissage automatique ») en 1959 à la suite de la création de son programme pour IBM en 1952. Le programme jouait au Jeu de Dames et s'améliorait en jouant. À terme, il parvint à battre le 4e meilleur joueur des États-Unis$^,$.
Une avancée majeure dans le secteur de l'intelligence machine est le succès de l'ordinateur développé par IBM, Deep Blue, qui est le premier à vaincre le champion mondial d'échecs Garry Kasparov en 1997. Le projet Deep Blue en inspirera nombre d'autres dans le cadre de l'intelligence artificielle, particulièrement un autre grand défi : IBM Watson, l'ordinateur dont le but est de gagner au jeu Jeopardy!. Ce but est atteint en 2011, quand Watson gagne à Jeopardy! en répondant aux questions par traitement de langage naturel.
Durant les années suivantes, les applications de l'apprentissage automatique médiatisées se succèdent bien plus rapidement qu'auparavant.
En 2012, un réseau neuronal développé par Google parvient à reconnaître des visages humains ainsi que des chats dans des vidéos YouTube$^,$.
En 2014, 64 ans après la prédiction d'Alan Turing, le dialogueur Eugene Goostman est le premier à réussir le test de Turing en parvenant à convaincre 33 % des juges humains au bout de cinq minutes de conversation qu'il est non pas un ordinateur, mais un garçon ukrainien de 13 ans.
En 2015, une nouvelle étape importante est atteinte lorsque l'ordinateur « AlphaGo » de Google gagne contre un des meilleurs joueurs au jeu de Go, jeu de plateau considéré comme le plus dur du monde.
En 2016, un système d'intelligence artificielle à base d'apprentissage automatique nommé LipNet parvient à lire sur les lèvres avec un grand taux de succès$^,$.

## Principes

Les modèles d'apprentissage automatique contiennent des paramètres dont les valeurs sont ajustées tout au long de l'apprentissage. La méthode de la rétropropagation du gradient est capable de détecter, pour chaque paramètre, dans quelle mesure il a contribué à une bonne réponse ou à une erreur du modèle, et peut l'ajuster en conséquence.
L'apprentissage automatique permet à un système piloté ou assisté par ordinateur comme un programme, une IA ou un robot, d'adapter ses réponses ou comportements aux situations rencontrées, en se fondant sur l'analyse de données empiriques passées issues de bases de données, de capteurs, ou du web.
L'apprentissage automatique permet de surmonter la difficulté qui réside dans le fait que l'ensemble de tous les comportements possibles compte tenu de toutes les entrées possibles devient rapidement trop complexe à décrire et programmer de manière classique (on parle d'explosion combinatoire). On confie donc à des programmes d'apprentissage automatique le soin d'ajuster un modèle pour simplifier cette complexité et de l'utiliser de manière opérationnelle. Idéalement, l'apprentissage visera à être non supervisé, c'est-à-dire que les réponses aux données d'entraînement ne sont pas fournies au modèle.
Ces programmes, selon leur degré de perfectionnement, intègrent éventuellement des capacités de traitement probabiliste des données, d'analyse de données issues de capteurs, de reconnaissance (reconnaissance vocale, de forme, d'écriture…), de fouille de données, d'informatique théorique…

## Applications

L'apprentissage automatique est utilisé dans un large spectre d'applications pour doter des ordinateurs ou des machines de capacité d'analyser des données d'entrée comme : perception de leur environnement (vision, Reconnaissance de formes tels des visages, schémas, segmentation d'image, langages naturels, caractères dactylographiés ou manuscrits ; moteurs de recherche, analyse et indexation d'images et de vidéo, en particulier pour la recherche d'image par le contenu ; aide aux diagnostics, médical notamment, bio-informatique, chémoinformatique ; interfaces cerveau-machine ; détection de fraudes à la carte de crédit, cybersécurité, analyse financière, dont analyse du marché boursier ; classification des séquences d'ADN ; jeu ; génie logiciel ; adaptation de sites Web ; robotique (locomotion de robots, etc.) ; analyse prédictive dans de nombreux domaines (financière, médicale, juridique, judiciaire), diminution des temps de calcul pour les simulations informatiques en physique (calcul de structures, de mécanique des fluides, de neutronique, d'astrophysique, de biologie moléculaire, etc.)$^,$, optimisation de design dans l'industrie$^,$$^,$, modèles météorologiques ou prédictions de l'ensoleillement dans le développement des énergies solaires,etc.
Exemples :
* un système d'apprentissage automatique peut permettre à un robot ayant la capacité de bouger ses membres, mais ne sachant initialement rien de la coordination des mouvements permettant la marche, d'apprendre à marcher. Le robot commencera par effectuer des mouvements aléatoires, puis, en sélectionnant et privilégiant les mouvements lui permettant d'avancer, mettra peu à peu en place une marche de plus en plus efficace ;
* la reconnaissance de caractères manuscrits est une tâche complexe car deux caractères similaires ne sont jamais exactement identiques. Il existe des systèmes d'apprentissage automatique qui apprennent à reconnaître des caractères en observant des « exemples », c'est-à-dire des caractères connus. Un des premiers système de ce type est celui de reconnaissance des codes postaux US manuscrits issu des travaux de recherche de Yann Le Cun, un des pionniers du domaine$^,$, et ceux utilisés pour la reconnaissance d'écriture ou OCR.

## Types d'apprentissage

Les algorithmes d'apprentissage peuvent se catégoriser selon le mode d'apprentissage qu'ils emploient.

### Apprentissage supervisé

Si les classes sont prédéterminées et les exemples connus, le système apprend à classer selon un modèle de classification ou de classement ; on parle alors d'apprentissage supervisé (ou d'analyse discriminante). Un expert (ou oracle) doit préalablement étiqueter des exemples. Le processus se passe en deux phases. Lors de la première phase (hors ligne, dite d'apprentissage), il s'agit de déterminer un modèle à partir des données étiquetées. La seconde phase (en ligne, dite de test) consiste à prédire l'étiquette d'une nouvelle donnée, connaissant le modèle préalablement appris. Parfois il est préférable d'associer une donnée non pas à une classe unique, mais une probabilité d'appartenance à chacune des classes prédéterminées ; on parle alors d'apprentissage supervisé probabiliste.
Fondamentalement, le machine learning supervisé revient à apprendre à une machine à construire une fonction f telle que Y = f(X), Y étant un ou plusieurs résultats d'intérêt calculé en fonction de données d'entrées X effectivement à la disposition de l'utilisateur. Y peut être une grandeur continue (une température par exemple), et on parle alors de régression, ou discrète (une classe, chien ou chat par exemple), et on parle alors de classification.
Des cas d'usage typiques d'apprentissage automatique peuvent être d'estimer la météo du lendemain en fonction de celle du jour et des jours précédents, de prédire le vote d'un électeur en fonction de certaines données économiques et sociales, d'estimer la résistance d'un nouveau matériau en fonction de sa composition, de déterminer la présence ou non d'un objet dans une image. L'analyse discriminante linéaire ou les SVM en sont d'autres exemples typiques. Autre exemple, en fonction de points communs détectés avec les symptômes d'autres patients connus (les exemples), le système peut catégoriser de nouveaux patients, au vu de leurs analyses médicales, en risque estimé de développer telle ou telle maladie.

### Apprentissage non supervisé

Quand le système ou l'opérateur ne dispose que d'exemples, mais non d'étiquette, et que le nombre de classes et leur nature n'ont pas été prédéterminées, on parle d'apprentissage non supervisé ou clustering en anglais. Aucun expert n'est requis. L'algorithme doit découvrir par lui-même la structure plus ou moins cachée des données. Le partitionnement de données, data clustering en anglais, est un algorithme d'apprentissage non supervisé.
Le système doit ici — dans l'espace de description (l'ensemble des données) — cibler les données selon leurs attributs disponibles, pour les classer en groupes homogènes d'exemples. La similarité est généralement calculée selon une fonction de distance entre paires d'exemples. C'est ensuite à l'opérateur d'associer ou déduire du sens pour chaque groupe et pour les motifs (patterns en anglais) d'apparition de groupes, ou de groupes de groupes, dans leur « espace ». Divers outils mathématiques et logiciels peuvent l'aider. On parle aussi d'analyse des données en régression (ajustement d'un modèle par une procédure de type moindres carrés ou autre optimisation d'une fonction de coût). Si l'approche est probabiliste (c'est-à-dire que chaque exemple, au lieu d'être classé dans une seule classe, est caractérisé par un jeu de probabilités d'appartenance à chacune des classes), on parle alors de « soft clustering » (par opposition au « hard clustering »).
Cette méthode est souvent source de sérendipité. ex. : Pour un épidémiologiste qui voudrait dans un ensemble assez large de victimes de cancer du foie tenter de faire émerger des hypothèses explicatives, l'ordinateur pourrait différencier différents groupes, que l'épidémiologiste chercherait ensuite à associer à divers facteurs explicatifs, origines géographique, génétique, habitudes ou pratiques de consommation, expositions à divers agents potentiellement ou effectivement toxiques (métaux lourds, toxines telle que l'aflatoxine, etc.).Contrairement à l'apprentissage supervisé où l'apprentissage automatique consiste à trouver une fonction f telle que Y = f(X), où Y est un résultat connu et objectif (par exemple Y = « présence d'une tumeur » ou « absence de tumeur » en fonction de X = image radiographique), dans l'apprentissage non supervisé, on ne dispose pas de valeurs de Y, uniquement de valeurs de X (dans l'exemple précédent, on disposerait uniquement des images radiographiques sans connaissance de la présence ou non d'une tumeur. L'apprentissage non supervisé pourrait découvrir deux "clusters" ou groupes correspondant à "présence" ou "absence" de tumeur, mais les chances de réussite sont moindres que dans le cas supervisé où la machine est orientée sur ce qu'elle doit trouver).
L'apprentissage non supervisé est généralement moins performant que l'apprentissage supervisé, il évolue dans une zone « grise » où il n'y a généralement pas de « bonne » ou de « mauvaise » réponse mais simplement des similarités mathématiques discernables ou non. L'apprentissage non supervisé présente cependant l'intérêt de pouvoir travailler sur une base de données de X sans qu'il soit nécessaire d'avoir des valeurs de Y correspondantes, or les Y sont généralement compliqués et/ou coûteux à obtenir, alors que les seuls X sont généralement plus simples et moins coûteux à obtenir (dans l'exemple des images radiographiques, il est relativement aisé d'obtenir de telles images, alors qu'obtenir les images avec le label « présence de tumeur » ou « absence de tumeur » nécessite l'intervention longue et coûteuse d'un spécialiste en imagerie médicale).
L'apprentissage non supervisé permet potentiellement de détecter des anomalies dans une base de données, comme des valeurs singulières ou aberrantes pouvant provenir d'une erreur de saisie ou d'une singularité très particulière. Il peut donc s'agir d'un outil intéressant pour vérifier ou nettoyer une base de données.

### Apprentissage semi-supervisé

Effectué de manière probabiliste ou non, il vise à faire apparaître la distribution sous-jacente des exemples dans leur espace de description. Il est mis en œuvre quand des données (ou « étiquettes ») manquent… Le modèle doit utiliser des exemples non étiquetés pouvant néanmoins renseigner. Par exemple, en médecine, il peut constituer une aide au diagnostic ou au choix des moyens les moins onéreux de tests de diagnostic.

### Apprentissage partiellement supervisé

Probabiliste ou non, quand l'étiquetage des données est partiel. C'est le cas quand un modèle énonce qu'une donnée n'appartient pas à une classe A, mais peut-être à une classe B ou C (A, B et C étant trois maladies par exemple évoquées dans le cadre d'un diagnostic différentiel).

### Apprentissage auto-supervisé

L'apprentissage auto-supervisé consiste à construire un problème d'apprentissage supervisé à partir d'un problème non supervisé à l'origine.
Pour rappel, l'apprentissage supervisé consiste à construire une fonction Y = f(X) et nécessite donc une base de données où l'on possède des Y en fonction des X (par exemple, en fonction du texte X correspondant à la critique d'un film, retrouver la valeur du Y correspondant à la note attribuée au film), alors que dans l'apprentissage non supervisé, on dispose uniquement des valeurs de X et pas de valeurs de Y (on disposerait par exemple ici uniquement du texte X correspondant à la critique du film, et pas de la note Y attribuée au film).
L'apprentissage auto-supervisé consiste donc à créer des Y à partir des X pour passer à un apprentissage supervisé, en "masquant" des X pour en faire des Y. Dans le cas d'une image, l'apprentissage auto-supervisé peut consister à reconstruire la partie manquante d'une image qui aurait été tronquée. Dans le cas du langage, lorsqu'on dispose d'un ensemble de phrases qui correspondent aux X sans cible Y particulière, l'apprentissage auto-supervisé consiste à supprimer certains X (certains mots) pour en faire des Y. L'apprentissage auto-supervisé revient alors pour la machine à essayer de reconstruire un mot ou un ensemble de mots manquants en fonction des mots précédents et/ou suivants, en une forme d'auto-complétion. Cette approche permet potentiellement à une machine de « comprendre » le langage humain, son sens sémantique et symbolique. Les modèles IA de langage comme BERT ou GPT-3 sont conçus selon ce principe. Dans le cas d'un film, l'apprentissage auto-supervisé consisterait à essayer de prédire les images suivantes en fonction des images précédentes, et donc à tenter de prédire « l'avenir » sur la base de la logique probable du monde réel.
Certains chercheurs, comme Yann Le Cun, pensent que si l'IA générale est possible, c'est probablement par une approche de type auto-supervisé qu'elle pourrait être conçue, par exemple en étant immergée dans le monde réel pour essayer à chaque instant de prédire les images et les sons les plus probables à venir, en comprenant qu'un ballon en train de rebondir et de rouler va encore continuer à rebondir et à rouler, mais de moins en moins haut et de moins en moins vite jusqu'à s'arrêter, et qu'un obstacle est de nature à arrêter le ballon ou à modifier sa trajectoire, ou à essayer de prédire les prochains mots qu'une personne est susceptible de prononcer ou le prochain geste qu'elle pourrait accomplir. L'apprentissage auto-supervisé dans le monde réel serait une façon d'apprendre à une machine le sens commun, le bon sens, la réalité du monde physique qui l'entoure, et permettrait potentiellement d'atteindre une certaine forme de conscience. Il ne s'agit évidemment que d'une hypothèse de travail, la nature exacte de la conscience, son fonctionnement et sa définition même restant un domaine actif de recherche.

### Apprentissage par renforcement

L'algorithme apprend un comportement étant donné une observation. L'algorithme interagit avec un environnement dynamique dans lequel il doit atteindre un certain but et apprendre à identifier le comportement le plus efficace dans l'environnement considéré.
Par exemple, l'algorithme de Q-learning est un exemple classique.
L'apprentissage par renforcement peut aussi être vu comme une forme d'apprentissage auto-supervisé. Dans un problème d'apprentissage par renforcement, il n'y a en effet à l'origine pas de données de sorties Y, ni même de données d'entrée X, pour construire une fonction Y = f(X). Il y a simplement un « écosystème » muni de règles qui doivent être respectées, et un « objectif » à atteindre. Par exemple, pour le football, il y a des règles du jeu à respecter et des buts à marquer. Dans l'apprentissage par renforcement, le modèle crée lui-même sa base de données en « jouant » (d'où le concept d'auto-supervisé) : il teste des combinaisons de données d'entrée X et il en découle un résultat Y qui est évalué ; s'il est conforme aux règles du jeu et atteint son objectif, le modèle est récompensé et sa stratégie est ainsi validée, sinon le modèle est pénalisé. Par exemple pour le football, dans une situation du type « ballon possédé, joueur adverse en face, but à 20 mètres », une stratégie peut être de « tirer » ou de « dribbler », et en fonction du résultat (« but marqué », « but raté », ou « balle toujours possédée, joueur adverse franchi »), le modèle apprend de manière incrémentale comment se comporter au mieux en fonction des situations rencontrées.

### Apprentissage par transfert

L'apprentissage par transfert peut être vu comme la capacité d'un système à reconnaître et à appliquer des connaissances et des compétences, apprises à partir de tâches antérieures, sur de nouvelles tâches ou domaines partageant des similitudes. Il s'agit d'identifier les similitudes entre la ou les tâche(s) cible(s) et la ou les tâche(s) source(s), puis de transférer la connaissance de la ou des tâche(s) source(s) vers la ou les tâche(s) cible(s)$^,$.
Une application classique de l'apprentissage par transfert est l'analyse d'images. Pour une problématique de classification, l'apprentissage par transfert consiste à repartir d'un modèle existant plutôt que de repartir de zéro. Si par exemple on dispose déjà d'un modèle capable de repérer un chat parmi tout autre objet du quotidien, et que l'on souhaite classifier les chats par races, il est possible que réentraîner partiellement le modèle existant permette d'obtenir de meilleures performances et à moindre coût qu'en repartant de zéro$^,$. Un modèle souvent utilisé pour réaliser un apprentissage par transfert de ce type est VGG-16, un réseau de neurones conçu par l'Université d'Oxford, entraîné sur ~14 millions d'images, capable de classer avec ~93% de précision mille objets du quotidien.

## Algorithmes utilisés

Les algorithmes se classent en quatre familles ou types principaux :
* régression
* classification
* partitionnement de données
* réduction de dimensions.
Plus précisément :
* la régression linéaire ;
* la régression logistique ;
* les machines à vecteur de support ;
* les réseaux de neurones, dont les méthodes d'apprentissage profond (deep learning en anglais) pour un apprentissage supervisé ou non-supervisé ;
* la méthode des k plus proches voisins pour un apprentissage supervisé ;
* les arbres de décision, méthodes à l'origine des Random Forest, par extension également du boosting (notamment XGBoost) ;
* les méthodes statistiques comme le modèle de mixture gaussienne ;
* l'analyse discriminante linéaire ;
* les algorithmes génétiques et la programmation génétique ;
* le boosting ;
* le bagging.
Ces méthodes sont souvent combinées pour obtenir diverses variantes d'apprentissage. Le choix d'un algorithme dépend fortement de la tâche à résoudre (classification, estimation de valeurs…), du volume et de la nature des données. Ces modèles reposent souvent sur des modèles statistiques.

## Facteurs de pertinence et d'efficacité

La qualité de l'apprentissage et de l'analyse dépendent du besoin en amont et a priori de la compétence de l'opérateur pour préparer l'analyse. Elle dépend aussi de la complexité du modèle (spécifique ou généraliste), de son adéquation et de son adaptation au sujet à traiter. In fine, la qualité du travail dépendra aussi du mode (de mise en évidence visuelle) des résultats pour l'utilisateur final (un résultat pertinent pourrait être caché dans un schéma trop complexe, ou mal mis en évidence par une représentation graphique inappropriée).
Avant cela, la qualité du travail dépendra de facteurs initiaux contraignants, liées à la base de données :
* nombre d'exemples (moins il y en a, plus l'analyse est difficile, mais plus il y en a, plus le besoin de mémoire informatique est élevé et plus longue est l'analyse) ;
* nombre et qualité des attributs décrivant ces exemples. La distance entre deux « exemples » numériques (prix, taille, poids, intensité lumineuse, intensité de bruit, etc.) est facile à établir, celle entre deux attributs catégoriels (couleur, beauté, utilité…) est plus délicate ;
* pourcentage de données renseignées et manquantes ;
* bruit : le nombre et la « localisation » des valeurs douteuses (erreurs potentielles, valeurs aberrantes…) ou naturellement non-conformes au pattern de distribution générale des « exemples » sur leur espace de distribution impacteront sur la qualité de l'analyse.

## Étapes d'un projet d'apprentissage automatique

L'apprentissage automatique ne se résume pas à un ensemble d'algorithmes, mais suit une succession d'étapes$^,$.
* Définir le problème à résoudre.
* Acquérir des données : l'algorithme se nourrissant des données en entrée, c'est une étape importante. Il y va de la réussite du projet, de récolter des données pertinentes et en quantité et qualité suffisantes, et en évitant tout biais dans leur représentativité.
* Analyser et explorer les données. L'exploration des données peut révéler des données d'entrée ou de sortie déséquilibrées pouvant nécessiter un rééquilibrage, le machine learning non supervisé peut révéler des clusters qu'il pourrait être utile de traiter séparément ou encore détecter des anomalies qu'il pourrait être utile de supprimer.
* Préparer et nettoyer les données : les données recueillies doivent être retouchées avant utilisation. En effet, certains attributs sont inutiles, d'autre doivent être modifiés afin d'être compris par l'algorithme (les variables qualitatives doivent être encodées-binarisées), et certains éléments sont inutilisables car leurs données sont incomplètes (les valeurs manquantes doivent être gérées, par exemple par simple suppression des exemples comportant des variables manquantes, ou par remplissage par la médiane, voire par apprentissage automatique). Plusieurs techniques telles que la visualisation de données, la transformation de données (en) ou encore la normalisation (variables projetées entre 0 et 1) ou la standardisation (variables centrées - réduites) sont employées afin d'homogénéiser les variables entre elles, notamment pour aider la phase de descente de gradient nécessaire à l'apprentissage.
* Ingénierie ou extraction de caractéristiques : les attributs peuvent être combinés entre eux pour en créer de nouveaux plus pertinents et efficaces pour l'entraînement du modèle. Ainsi, en physique, de la construction de nombres adimensionnels adaptés au problème, de solutions analytiques approchées, de statistiques pertinentes, de corrélations empiriques ou l'extraction de spectres par transformée de Fourier$^,$. Il s'agit d'ajouter l'expertise humaine au préalable de l'apprentissage machine pour favoriser celui-ci.
* Choisir ou construire un modèle d'apprentissage : un large choix d'algorithmes existe, et il faut en choisir un adapté au problème et aux données. La métrique optimisée doit être choisie judicieusement (erreur absolue moyenne, erreur relative moyenne, précision, rappel, etc.)
* Entraîner, évaluer et optimiser : l'algorithme d'apprentissage automatique est entraîné et validé sur un premier jeu de données pour optimiser ses hyperparamètres.
* Test : puis il est évalué sur un deuxième ensemble de données de test afin de vérifier qu'il est efficace avec un jeu de donnée indépendant des données d'entraînement, et pour vérifier qu'il ne fasse pas de surapprentissage.
* Déployer : le modèle est alors déployé en production pour faire des prédictions, et potentiellement utiliser les nouvelles données en entrée pour se ré-entraîner et être amélioré.
* Expliquer : déterminer quelles sont les variables importantes et comment elles affectent les prédictions du modèle en général et au cas par cas
La plupart de ces étapes se retrouvent dans les méthodes et processus de projet KDD, CRISP-DM et SEMMA, qui concernent les projets d'exploration de données.
Toutes ces étapes sont complexes et requièrent du temps et de l'expertise, mais il existe des outils permettant de les automatiser au maximum pour "démocratiser" l'accès à l'apprentissage automatique. Ces approches sont dites "Auto ML" (pour machine learning automatique) ou "No Code" (pour illustrer que ces approches ne nécessitent pas ou très peu de programmation informatique), elles permettent d'automatiser la construction de modèles d'apprentissage automatique pour limiter au maximum le besoin d'intervention humaine. Parmi ces outils, commerciaux ou non, on peut citer Caret, PyCaret, pSeven, Jarvis, Knime, MLBox ou DataRobot.

## Application à la voiture autonome

La voiture autonome paraît en 2016 réalisable grâce à l'apprentissage automatique et les énormes quantités de données générées par la flotte automobile, de plus en plus connectée. Contrairement aux algorithmes classiques (qui suivent un ensemble de règles prédéterminées), l'apprentissage automatique apprend ses propres règles.
Les principaux innovateurs dans le domaine insistent sur le fait que le progrès provient de l'automatisation des processus. Ceci présente le défaut que le processus d'apprentissage automatique devient privatisé et obscur. Privatisé, car les algorithmes d'AA constituent des gigantesques opportunités économiques, et obscurs car leur compréhension passe derrière leur optimisation. Cette évolution peut potentiellement nuire à la confiance du public envers l'apprentissage automatique, mais surtout au potentiel à long terme de techniques très prometteuses.
La voiture autonome présente un cadre test pour confronter l'apprentissage automatique à la société. En effet, ce n'est pas seulement l'algorithme qui se forme à la circulation routière et ses règles, mais aussi l'inverse. Le principe de responsabilité est remis en cause par l'apprentissage automatique, car l'algorithme n'est plus écrit mais apprend et développe une sorte d'intuition numérique. Les créateurs d'algorithmes ne sont plus en mesure de comprendre les « décisions » prises par leurs algorithmes, ceci par construction mathématique même de l'algorithme d'apprentissage automatique.
Dans le cas de l'AA et les voitures autonomes, la question de la responsabilité en cas d'accident se pose. La société doit apporter une réponse à cette question, avec différentes approches possibles. Aux États-Unis, il existe la tendance à juger une technologie par la qualité du résultat qu'elle produit, alors qu'en Europe le principe de précaution est appliqué, et on y a plus tendance à juger une nouvelle technologie par rapport aux précédentes, en évaluant les différences par rapport à ce qui est déjà connu. Des processus d'évaluation de risques sont en cours en Europe et aux États-Unis.
La question de responsabilité est d'autant plus compliquée que la priorité chez les concepteurs réside en la conception d'un algorithme optimal, et non pas de le comprendre. L'interprétabilité des algorithmes est nécessaire pour en comprendre les décisions, notamment lorsque ces décisions ont un impact profond sur la vie des individus. Cette notion d'interprétabilité, c'est-à-dire de la capacité de comprendre pourquoi et comment un algorithme agit, est aussi sujette à interprétation.
La question de l'accessibilité des données est sujette à controverse : dans le cas des voitures autonomes, certains défendent l'accès public aux données, ce qui permettrait un meilleur apprentissage aux algorithmes et ne concentrerait pas cet « or numérique » dans les mains d'une poignée d'individus, de plus d'autres militent pour la privatisation des données au nom du libre marché, sans négliger le fait que des bonnes données constituent un avantage compétitif et donc économique$^,$.
La question des choix moraux liés aux décisions laissées aux algorithmes d'AA et aux voitures autonomes en cas de situations dangereuses ou mortelles se pose aussi. Par exemple en cas de défaillance des freins du véhicule, et d'accident inévitable, quelles vies sont à sauver en priorité: celle des passagers ou bien celle des piétons traversant la rue ?

## Prospective

Dans les années 2000-2010, l'apprentissage automatique est encore une technologie émergente, mais polyvalente, qui est par nature théoriquement capable d'accélérer le rythme de l'automatisation et de l'autoapprentissage lui-même. Combiné à l'apparition de nouveaux moyens de produire, stocker et faire circuler l'énergie, ainsi qu'à l'informatique ubiquiste, il pourrait bouleverser les technologies et la société comme l'ont fait la machine à vapeur et l'électricité, puis le pétrole et l'informatique lors des révolutions industrielles précédentes.
L'apprentissage automatique pourrait générer des innovations et des capacités inattendues, mais avec un risque selon certains observateurs de perte de maîtrise de la part des humains sur de nombreuses tâches qu'ils ne pourront plus comprendre et qui seront faites en routine par des entités informatiques et robotisées. Ceci laisse envisager des impacts spécifiques complexes et encore impossibles à évaluer sur l'emploi, le travail et plus largement l'économie et les inégalités. Selon le journal Science fin 2017 : « Les effets sur l'emploi sont plus complexes que la simple question du remplacement et des substitutions soulignées par certains. Bien que les effets économiques du BA soient relativement limités aujourd'hui et que nous ne soyons pas confrontés à une « fin du travail » imminente comme cela est parfois proclamé, les implications pour l'économie et la main-d'œuvre sont profondes ».
Il est tentant de s'inspirer des êtres vivants sans les copier naïvement pour concevoir des machines capables d'apprendre. Les notions de percept et de concept comme phénomènes neuronaux physiques ont d'ailleurs été popularisés dans le monde francophone par Jean-Pierre Changeux. L'apprentissage automatique reste avant tout un sous-domaine de l'informatique, mais il est étroitement lié opérationnellement aux sciences cognitives, aux neurosciences, à la biologie et à la psychologie, et pourrait à la croisée de ces domaines, nanotechnologies, biotechnologies, informatique et sciences cognitives, aboutir à des systèmes d'intelligence artificielle ayant une assise plus vaste. Des enseignements publics ont notamment été dispensés au Collège de France, l'un par Stanislas Dehaene orienté sur l'aspect bayésien des neurosciences, et l'autre par Yann Le Cun sur les aspects théoriques et pratiques de l'apprentissage profond.

## Enjeux et limites
### Quantité et qualité des données

L'apprentissage automatique demande de grandes quantités de données pour fonctionner correctement. Il est impossible de savoir a priori quelle taille la base de données doit avoir pour que l'apprentissage automatique fonctionne correctement, en fonction de la complexité de la problématique étudiée et de la qualité des données, mais un ordre de grandeur assez usuel est que, pour une problématique de régression ou de classification basée sur des données tabulaires, il faut dix fois plus d'exemples dans la base de données que de variables d'entrées du problème (degrés de liberté)$^,$. Pour des problématiques complexes, il est possible qu'il faille plutôt cent à mille fois plus d'exemples que de degrés de liberté. Pour de la classification d'images, en partant de zéro, il est usuellement nécessaire d'avoir ~1000 images par classe, ou ~100 images par classe si on réalise de l'apprentissage par transfert depuis un modèle existant plutôt que de partir de zéro$^,$.
La qualité des données se traduit par leur richesse et leur équilibre statistique, leur complétude (pas de valeurs manquantes), ainsi que leur précision (incertitudes faibles).
Il peut s'avérer difficile de contrôler l'intégrité des jeux de données, notamment dans le cas de données générées par les réseaux sociaux.
La qualité des « décisions » prises par un algorithme d'AA dépend non seulement de la qualité (donc de leur homogénéité, fiabilité, etc.) des données utilisées pour l’entraînement mais surtout de leur quantité. Donc, pour un jeu de données sociales collecté sans attention particulière à la représentation des minorités, l'AA est statistiquement injuste vis-à-vis de celles-ci. En effet, la capacité à prendre de « bonnes » décisions dépend de la taille des données, or celle-ci sera proportionnellement inférieure pour les minorités. Il convient donc de réaliser l'apprentissage automatique avec des données les plus équilibrées possibles, quitte à passer par un pré-traitement des données afin de rétablir l'équilibre ou par une modification/pénalisation de la fonction objectif.
L'AA ne distingue actuellement pas cause et corrélation de par sa construction mathématique : usuellement, ce sont des causalités qui sont recherchées par l'utilisateur, mais l'AA ne peut trouver que des corrélations. Il incombe à l'utilisateur de vérifier la nature du lien mis en lumière par l'AA, causal ou non. Plusieurs variables corrélées peuvent être liées causalement à une autre variable cachée qu'il peut être utile d'identifier.
Mathématiquement, certaines méthodes d'AA, notamment les méthodes à base d'arbres comme les arbres de décision, les forêts aléatoires ou les méthodes de boosting, sont incapables d'extrapoler (produire des résultats en dehors du domaine connu). D'autres méthodes d'AA, comme les modèles polynomiaux ou les réseaux de neurones, sont mathématiquement tout à fait capables de produire des résultats en extrapolation. Ces résultats en extrapolation peuvent ne pas être fiables du tout (c'est typiquement le cas pour les modèles polynomiaux) mais peuvent également être relativement corrects, au moins qualitativement, si l'extrapolation n'est pas exagérément grande (réseaux de neurones notamment). En "grandes" dimensions (à partir de ~100 variables), toute nouvelle prédiction doit de toute façon très probablement être considérée comme de l'extrapolation.
L'utilisation d'algorithmes d'apprentissage automatique demande donc d'avoir conscience du cadre de données que l'on a utilisé pour l'apprentissage lors de leur utilisation. Il est donc prétentieux d'attribuer des vertus trop grandes aux algorithmes d'apprentissage automatique.

### Biais des algorithmes et des données

Un algorithme peut être biaisé lorsque son résultat dévie par rapport à un résultat neutre, loyal ou équitable. Dans certains cas, les biais algorithmiques peuvent conduire à des situations de discrimination.
Les données peuvent aussi être biaisées, si l'échantillon de données utilisées pour l'apprentissage du modèle n'est pas neutre et représentatif de la réalité ou déséquilibré. Ce biais est alors appris et reproduit par le modèle$^,$.
Cette notion de biais est si importante qu'elle est traitée clairement depuis 2018 dans quatre des sept exigences clefs sur l'intelligence artificielle digne de confiance (« Respect de la vie privée et gouvernance des données », « Transparence », « Diversité, non-discrimination et équité » et « Responsabilité ») issues des travaux de référence des experts de la Commission européenne, qui préludent à la future réglementation européenne, l'IA Act.

### Explicabilité et explications des décisions

Les algorithmes d'apprentissage automatique posent des problèmes d'explicabilité globale du système. Si certains modèles comme la régression linéaire ou la régression logistique ont un nombre de paramètres limité et peuvent être interprétés, d'autres types de modèle comme les réseaux de neurones artificiels n'ont pas d'interprétation évidente, ce qui fait avancer à de nombreux auteurs que l'apprentissage automatique serait une « boîte noire » et poserait ainsi un problème de confiance. À ce titre, les experts de la Commission européenne prennent pour position que l'explicabilité est l'un des quatre grands principes fondateurs de leurs lignes directrices en matière d'éthique pour une intelligence artificielle digne de confiance. En cas d'arbitrage, parce qu'intimement liée aux droits relatifs à la justice, l'explicabilité fait ainsi écho aux notions de traçabilité, d'auditabilité et de responsabilité d'un système d'IA de confiance. Historiquement, d'autre types de modèles d'apprentissage ont été étudiés pour pallier ce problème. Par exemple, les machines d'apprentissage logique, qui sont aujourd’hui employées dans des secteurs ou la compréhension et/ou la traçabilité des décisions prises est primordiale : la médecine, les services financiers et la logistique.
Des outils mathématiques permettent d'« auditer » un modèle d'apprentissage automatique afin de voir ce qu'il a « compris » et comment il fonctionne.
La feature importance ou « importance des variables » permet de quantifier comment, en moyenne, chacune des variables d'entrée du modèle affecte chacune de ses variables de sortie et permet de révéler que, par exemple, une variable est majoritaire, ou que certaines variables n'ont aucun impact sur la « décision » du modèle. L'importance des variables n'est cependant accessible que pour un ensemble restreint de modèles, comme les modèles linéaires, la régression logistique ou les méthodes à base d'arbres comme les arbres de décision, les forêts aléatoires ou les méthodes de boosting.
Pour les modèles plus complexes comme les réseaux de neurones, on peut recourir à l'analyse de la variance par plan d'expérience numérique par Monte Carlo pour calculer les indices de Sobol du modèle, qui jouent alors un rôle similaire à celui de l'importance des variables. L'importance des variables et les indices de Sobol ne renseignent néanmoins que sur l'importance moyenne des variables et ne permettent donc pas aisément d'analyser la « décision » du modèle au cas par cas. Ces indicateurs ne renseignent pas non plus sur le poids qualitatif des variables (« telle variable d'entrée à la hausse entraîne t-elle telle variable de sortie à la hausse, à la baisse, en « cloche », linéairement, avec effet seuil ? »). Pour pallier ces problèmes, on peut recourir à la théorie des jeux pour calculer et visualiser les valeurs et les graphes de Shapley, qui permettent d'accéder à une grandeur similaire à l'importance des variables au cas par cas, ainsi que de tracer la réponse d'une variable de sortie en fonction d'une variable d'entrée pour voir comment évolue qualitativement la réponse du modèle. Enfin, les graphes de dépendances partielles permettent également de voir comment évolue la réponse moyenne du modèle en fonction des variables d'entrée (allure qualitative), et permettent également de tester le modèle en extrapolation pour vérifier que son comportement reste un minimum plausible (pas de rupture de pente ou d'effet de seuil, par exemple).
Ces concepts permettent à Christoph Molnar, scientifique des données spécialisé dans l'explicabilité, d'avancer que l'apprentissage automatique n'est pas réellement une boîte noire, mais plutôt une « boîte grise » : il est possible d'avoir une bonne compréhension de ce que fait l'apprentissage automatique, sans que cette compréhension ne puisse cependant être totalement exhaustive, ni dénuée de potentiels effets de bords.

## Apprentissage profond

L'apprentissage profond (réseaux de neurones profonds) est une méthode d'apprentissage automatique. En pratique, depuis l'amélioration significative des performances de l'apprentissage profond depuis le début des années 2010, on distingue communément l'apprentissage automatique « classique » (tout type d'apprentissage automatique comme les modèles linéaires, les méthodes à base d'arbres comme le bagging ou le boosting, les processus gaussiens, les machines à vecteur de support ou les splines) de l'apprentissage profond.
Un réseau de neurones comporte toujours au moins trois couches de neurones : couche d'entrée, couche "cachée" et couche de sortie. Usuellement, un réseau de neurones n'est considéré réellement "profond" que lorsqu'il comporte au moins trois couches cachées, mais cette définition est quelque peu arbitraire et, par abus de langage, on parle souvent d'apprentissage profond même si un réseau de neurones comporte moins de trois couchées cachées.
Il est généralement admis que l'apprentissage profond domine l'apprentissage automatique dans certains domaines d'application comme l'analyse d'images, de sons ou de textes.
Dans d'autres domaines, où les bases de données sont plus « simples » que des images, des sons ou des corpus de textes, et généralement « tabulaires », l'apprentissage automatique se révèle généralement plus performant que l'apprentissage profond lorsque les bases de données sont relativement petites (moins de 10 000 exemples) ; au-delà, la supériorité de l'apprentissage automatique se rétablit généralement. (Des données tabulaires sont des informations formatées en tableaux de donnéesregroupant par exemple des indicateurs socio-économiques relatifs à l'emploi, des indicateurs sur les données immobilières à Paris, des marqueurs bio-médicaux relatifs au diabète, des variables sur la composition chimique et la résistance du béton, des données décrivant la morphologie de fleurs, etc. Des tableaux de données de ce type, qui se prêtent bien à l'apprentissage automatique, peuvent par exemple être trouvés sur le Machine Learning Repository de l'Université de Californie). Certains chercheurs expliquent cette supériorité de l'apprentissage automatique sur l'apprentissage profond dans le cas des "petites" bases de données par le fait que les réseaux de neurones sont surtout performants pour trouver des fonctions continues, or beaucoup de fonctions rencontrées avec ces petites bases de données tabulaires sont apparemment irrégulières ou discontinues. Une autre explication serait la moins grande robustesse des réseaux de neurones aux variables « non importantes », or il arrive que dans les bases de données tabulaires il y ait des dizaines voire des centaines de variables qui n'affectent pas le résultat recherché et que les réseaux de neurones auraient du mal à discriminer. Enfin, une autre explication serait la très grande force du réseau de neurones qui est sa capacité à rechercher des informations invariantes par position, rotation et échelle (cruciales en analyse d'images), qui deviendrait une faiblesse sur ces petites bases de données tabulaires, cette capacité ne présentant alors pas d'utilité. La supériorité de l'apprentissage automatique sur l'apprentissage profond pour ces cas d'usage semble statistiquement avérée, mais n'est néanmoins pas absolue, notamment si les bases de données ne contiennent pas ou peu de variables non importantes et si les fonctions recherchées sont continues ; c'est notamment le cas pour les modèles de substitution (en) (surrogate model) en simulation numérique en physique$^,$. Il convient donc, pour rechercher la méthode la plus performante, de tester sans a priori un large éventail d'algorithmes disponibles.
Le temps de calcul pour l'apprentissage des modèles est aussi généralement très différenciant entre les apprentissages automatique et profond. L'apprentissage automatique est usuellement beaucoup plus rapide à entraîner que l'apprentissage profond (des facteurs 10, 100 ou 1 000 sont possibles), mais lorsque les bases de données sont petites, cet avantage n'est plus toujours significatif, les temps de traitement restant raisonnables. Par ailleurs, l'apprentissage automatique est généralement beaucoup moins capable de tirer parti du calcul sur GPU que l'apprentissage profond, or celui-ci a considérablement progressé depuis les années 2000 et peut être 10 ou 100 fois plus rapide que le calcul « classique » sur CPU, ce qui peut permettre, avec un matériel adapté, de combler une large part de l'écart de temps de calcul entre les deux méthodes$^,$.
La supériorité du GPU sur le CPU dans ce contexte s'explique par le fait qu'un GPU est constitué de centaines voire de milliers d'unités de calcul parallèle (à comparer aux quelques unités de calcul parallèle seulement qui équipent les CPU), or le calcul matriciel, fondement des réseaux de neurones, est massivement parallélisable. Les GPU sont également capables d'atteindre des bandes passantes (quantité de données traitées par seconde) bien supérieures à celles des CPU. Une autre raison tient à la capacité des GPU à réaliser des calculs en simple précision (nombre flottant, floating point, sur 32 bits, notés FP32) plus efficacement que les CPU, dont les fonctions sont très générales et ne sont pas spécifiquement optimisées pour un type de précision donné. Certains GPU peuvent être très performants en demi-précision (FP16). Or, l'entraînement des réseaux de neurones peut recourir principalement à la simple précision (FP32) voire la demi-précision (FP16), voire une précision mixte (FP32-FP16) ; peu d'applications de calcul scientifique permettent cela, comme la mécanique des fluides numérique, qui requiert généralement de la double précision (FP64).

## Dans la littérature

Il existe de nombreuses œuvres de science-fiction sur le sujet de l'intelligence artificielle en général et de l'apprentissage automatique en particulier. Le traitement scientifique est généralement peu détaillé et quelque peu fantaisiste, mais des auteurs comme Peter Watts approchent le sujet avec un semblant de réalisme. Ainsi, dans la trilogie de romans Rifteurs, Peter Watts détaille l'architecture des réseaux de neurones et leurs modes de "raisonnement" et de fonctionnement basés sur l'optimisation de métriques mathématiques et, dans le roman Eriophora, il détaille le fonctionnement d'une IA en parlant de fonctions d'activation sigmoïdes, d'arbres de décision, de cycles d'apprentissage et d'effet de seuil de convergence.