Qu’est-ce que l’apprentissage automatique ?
Pour acquérir une compétence, nous recueillons des connaissances, pratiquons soigneusement et surveillons nos performances. Finalement, nous devenons meilleurs dans cette activité. L’apprentissage automatique est une technique qui permet aux ordinateurs de faire exactement cela.
Sommaire
Les ordinateurs peuvent-ils apprendre ?
Définir l’intelligence est difficile. Nous savons tous ce que nous entendons par intelligence lorsque nous le disons, mais la décrire est problématique. Laissant de côté l’émotion et la conscience de soi, une description de travail pourrait être la capacité d’acquérir de nouvelles compétences et d’absorber des connaissances et de les appliquer à de nouvelles situations pour atteindre le résultat souhaité.
Étant donné la difficulté de définir l’intelligence, définir l’intelligence artificielle ne sera pas plus facile. Alors, on va tricher un peu. Si un appareil informatique est capable de faire quelque chose qui nécessiterait généralement un raisonnement et une intelligence humains, nous dirons qu’il utilise l’intelligence artificielle.
Par exemple, des haut-parleurs intelligents comme Amazon Echo et Google Nest peuvent entendre nos instructions vocales, interpréter les sons comme des mots, extraire le sens des mots, puis essayer de répondre à notre demande. Nous pourrions lui demander de jouer de la musique, de répondre à une question ou de baisser les lumières.
Dans toutes les interactions, sauf les plus triviales, vos commandes vocales sont relayées vers de puissants ordinateurs dans les nuages des fabricants, où se déroule le gros du travail de l’intelligence artificielle. La commande est analysée, la signification est extraite et la réponse est préparée et renvoyée au haut-parleur intelligent.
L’apprentissage automatique sous-tend la majorité des systèmes d’intelligence artificielle avec lesquels nous interagissons. Certains d’entre eux sont des éléments de votre maison comme des appareils intelligents, et d’autres font partie des services que nous utilisons en ligne. Les recommandations vidéo sur YouTube et Netflix et les listes de lecture automatiques sur Spotify utilisent le machine learning. Les moteurs de recherche s’appuient sur l’apprentissage automatique et les achats en ligne utilisent l’apprentissage automatique pour vous proposer des suggestions d’achat en fonction de votre historique de navigation et d’achat.
Les ordinateurs peuvent accéder à d’énormes ensembles de données. Ils peuvent répéter inlassablement les processus des milliers de fois dans l’espace qu’il faudrait à un humain pour effectuer une itération, si un humain pouvait même réussir à le faire une fois. Ainsi, si l’apprentissage nécessite des connaissances, de la pratique et des commentaires sur les performances, l’ordinateur devrait être le candidat idéal.
Cela ne veut pas dire que l’ordinateur sera capable de vraiment pense au sens humain, ou de comprendre et de percevoir comme nous le faisons. Mais ça va apprendre, et s’améliorer avec la pratique. Habilement programmé, un système d’apprentissage automatique peut donner une impression décente d’une entité consciente et consciente.
Nous avions l’habitude de demander : « Les ordinateurs peuvent-ils apprendre ? » Cela s’est finalement transformé en une question plus pratique. Quels sont les défis techniques que nous devons surmonter pour permettre aux ordinateurs d’apprendre ?
Réseaux de neurones et réseaux de neurones profonds
Le cerveau des animaux contient des réseaux de neurones. Les neurones peuvent envoyer des signaux à travers une synapse vers d’autres neurones. Cette petite action, reproduite des millions de fois, donne naissance à nos processus de pensée et à nos souvenirs. À partir de nombreux éléments constitutifs simples, la nature a créé des esprits conscients et la capacité de raisonner et de se souvenir.
Inspirés des réseaux de neurones biologiques, les réseaux de neurones artificiels ont été créés pour imiter certaines des caractéristiques de leurs homologues organiques. Depuis les années 1940, du matériel et des logiciels ont été développés qui contiennent des milliers ou des millions de nœuds. Les nœuds, comme les neurones, reçoivent des signaux d’autres nœuds. Ils peuvent également générer des signaux pour alimenter d’autres nœuds. Les nœuds peuvent accepter des entrées et envoyer des signaux à plusieurs nœuds à la fois.
Si un animal conclut que les insectes volants jaunes et noirs lui donnent toujours une mauvaise piqûre, il évitera tous les insectes volants jaunes et noirs. Le syrphe en profite. Il est jaune et noir comme une guêpe, mais il n’a pas de piqûre. Les animaux qui se sont emmêlés avec des guêpes et ont appris une leçon douloureuse donnent également une large place au syrphe. Ils voient un insecte volant avec une palette de couleurs frappantes et décident qu’il est temps de se retirer. Le fait que l’insecte puisse planer – et les guêpes ne le peuvent pas – n’est même pas pris en considération.
L’importance des rayures volantes, bourdonnantes et jaunes et noires l’emporte sur tout le reste. L’importance de ces signaux est appelée la pondération de ces informations. Les réseaux de neurones artificiels peuvent également utiliser la pondération. Un nœud n’a pas besoin de considérer toutes ses entrées égales. Il peut favoriser certains signaux par rapport à d’autres.
L’apprentissage automatique utilise des statistiques pour trouver des modèles dans les ensembles de données sur lesquels il est entraîné. Un ensemble de données peut contenir des mots, des nombres, des images, des interactions utilisateur telles que des clics sur un site Web ou tout autre élément pouvant être capturé et stocké numériquement. Le système doit caractériser les éléments essentiels de la requête, puis les faire correspondre aux modèles qu’il a détectés dans l’ensemble de données.
S’il essaie d’identifier une fleur, il devra connaître la longueur de la tige, la taille et le style de la feuille, la couleur et le nombre de pétales, etc. En réalité, il faudra beaucoup plus de faits que ceux-là, mais dans notre exemple simple, nous les utiliserons. Une fois que le système connaît ces détails sur l’échantillon de test, il démarre un processus de prise de décision qui produit une correspondance à partir de son ensemble de données. De manière impressionnante, les systèmes d’apprentissage automatique créent eux-mêmes l’arbre de décision.
Un système d’apprentissage automatique apprend de ses erreurs en mettant à jour ses algorithmes pour corriger les défauts de son raisonnement. Les réseaux de neurones les plus sophistiqués sont réseaux de neurones profonds. Conceptuellement, ceux-ci sont constitués d’un grand nombre de réseaux de neurones superposés. Cela donne au système la capacité de détecter et d’utiliser même de minuscules modèles dans ses processus de décision.
Les couches sont couramment utilisées pour fournir une pondération. Les couches dites cachées peuvent jouer le rôle de couches « spécialisées ». Ils fournissent des signaux pondérés sur une seule caractéristique du sujet de test. Notre exemple d’identification de fleurs pourrait peut-être utiliser des couches cachées dédiées à la forme des feuilles, à la taille des boutons ou à la longueur des étamines.
Différents types d’apprentissage
Il existe trois grandes techniques utilisées pour former des systèmes d’apprentissage automatique : l’apprentissage supervisé, l’apprentissage non supervisé et l’apprentissage par renforcement.
Enseignement supervisé
L’apprentissage supervisé est la forme d’apprentissage la plus fréquemment utilisée. Ce n’est pas parce qu’elle est intrinsèquement supérieure aux autres techniques. Cela a plus à voir avec l’adéquation de ce type d’apprentissage aux ensembles de données utilisés dans les systèmes d’apprentissage automatique qui sont écrits aujourd’hui.
Dans l’apprentissage supervisé, les données sont étiquetées et structurées de sorte que les critères utilisés dans le processus de prise de décision soient définis pour le système d’apprentissage automatique. C’est le type d’apprentissage utilisé dans les systèmes d’apprentissage automatique derrière les suggestions de listes de lecture YouTube.
Apprentissage non supervisé
L’apprentissage non supervisé ne nécessite pas de préparation des données. Les données ne sont pas étiquetées. Le système analyse les données, détecte ses propres modèles et dérive ses propres critères de déclenchement.
Des techniques d’apprentissage non supervisé ont été appliquées à la cybersécurité avec des taux de réussite élevés. Les systèmes de détection d’intrusion améliorés par l’apprentissage automatique peuvent détecter l’activité réseau non autorisée d’un intrus, car elle ne correspond pas aux modèles de comportement précédemment observés des utilisateurs autorisés.
Apprentissage par renforcement
L’apprentissage par renforcement est la plus récente des trois techniques. En termes simples, un algorithme d’apprentissage par renforcement utilise des essais et des erreurs et des commentaires pour arriver à un modèle de comportement optimal pour atteindre un objectif donné.
Cela nécessite un retour des humains qui « notent » les efforts du système selon que son comportement a un impact positif ou négatif sur l’atteinte de son objectif.
Le côté pratique de l’IA
Parce qu’il est si répandu et qu’il a des succès démontrables dans le monde réel, y compris des succès commerciaux, l’apprentissage automatique a été appelé « le côté pratique de l’intelligence artificielle ». C’est une grosse affaire, et il existe de nombreux frameworks commerciaux évolutifs qui vous permettent d’intégrer l’apprentissage automatique dans vos propres développements ou produits.
Si vous n’avez pas un besoin immédiat de ce type de puissance de feu mais que vous souhaitez explorer un système d’apprentissage automatique avec un langage de programmation convivial comme Python, il existe également d’excellentes ressources gratuites pour cela. En fait, ceux-ci évolueront avec vous si vous développez un intérêt supplémentaire ou un besoin commercial.
Torch est un framework d’apprentissage automatique open source connu pour sa vitesse.
Scikit-Learn est une collection d’outils d’apprentissage automatique, en particulier pour une utilisation avec Python.
Caffe est un framework d’apprentissage en profondeur, particulièrement compétent pour le traitement d’images.
Keras est un framework d’apprentissage en profondeur avec une interface Python.