Les tentatives de concevoir des machines plus intelligentes que les humains ne datent pas d’hier.
L’une des premières attaques de l’informatique contre l’”intelligence” humaine a été le jeu d’échecs. Les échecs sont (ou devrions-nous dire, étaient ?) considérés par beaucoup comme le test ultime de l’intelligence et de la créativité humaines, et dans les années 1960-70, il y avait différentes écoles de pensée au sein de l’informatique.
Certains pensaient que ce n’était qu’une question de temps avant que les ordinateurs ne dépassent les humains aux échecs, tandis que d’autres pensaient que cela n’arriverait jamais.
Kasparov contre Deep Blue
L’événement le plus sensationnel mettant en scène l’homme contre la machine dans la bataille de la pensée a été le match d’échecs de 1996 entre Garry Kasparov, alors champion du monde (et sans doute le meilleur joueur d’échecs de tous les temps), et Deep Blue, un superordinateur conçu par IBM pour cet événement.
Pour faire court, Kasparov a remporté le match de 1996 de manière convaincante (4-2) mais a perdu la revanche de 1997 (4,5-3,5) au milieu d’une grande controverse et des allégations de tricherie directe de Kasparov à l’encontre d’IBM.
Quoi qu’il en soit, une ère du jeu d’échecs et de l’informatique était révolue. Les ordinateurs avaient le droit d’être plus intelligents que n’importe quel être humain vivant. IBM, satisfaite de sa revanche, a démantelé Deep Blue et est passée à autre chose.
Aujourd’hui, il est impossible pour un grand maître de battre un moteur d’échecs ordinaire fonctionnant sur du matériel de base.
Qu’est-ce qui n’est pas de l’apprentissage automatique ?
Avant de nous pencher plus en détail sur l’apprentissage automatique, éliminons quelques idées fausses. L’apprentissage automatique n’est pas, loin s’en faut, une tentative de reproduire le cerveau humain. Malgré les croyances sensationnalistes véhiculées par des personnes comme Elon Musk, les chercheurs en informatique affirment qu’ils ne sont pas à la recherche de ce grain sacré et qu’ils n’en sont certainement pas proches.
En termes simples, l’apprentissage automatique est la pratique consistant à appliquer aux ordinateurs des processus d’apprentissage par l’exemple. Cela contraste avec l’approche traditionnelle qui consiste à s’en remettre à un programmeur humain pour imaginer tous les scénarios possibles et coder en dur les règles qui les régissent dans un système.
Honnêtement, c’est à peu près ce qu’est l’apprentissage automatique : fournir des tonnes et des tonnes de données à un ordinateur afin qu’il puisse apprendre à partir d’exemples (essai → erreur → comparaison → amélioration) plutôt que de s’appuyer sur le code source.
Applications de l’apprentissage automatique
Si l’apprentissage automatique n’est pas de la magie noire et ne risque pas d’engendrer des Terminators, à quoi sert-il ?
L’apprentissage automatique est utile dans les cas où la programmation traditionnelle tombe à plat, et ces cas tombent généralement dans l’une des deux catégories suivantes.
- La classification
- Prédiction
Comme son nom l’indique, la classification consiste à étiqueter correctement les choses, tandis que la prédiction vise à corriger les projections futures, à partir d’un ensemble de données suffisamment important de valeurs passées.
Voici quelques applications intéressantes de l’apprentissage automatique :
Filtrage du spam
Lecourrier électronique indésirable est omniprésent, mais essayer de l’arrêter peut être un cauchemar. Comment définit-on le spam ? Est-ce la présence de mots-clés spécifiques ? Ou peut-être la façon dont il est écrit ? Il est difficile d’élaborer un ensemble exhaustif de règles, à l’aide d’un programme.
C’est pourquoi nous utilisons l’apprentissage automatique. Nous montrons au système des millions de messages de spam et de messages non spam et nous le laissons se débrouiller tout seul. C’est le secret des excellents filtres anti-spam de Gmail, qui ont révolutionné la messagerie personnelle au début des années 2000 !
Recommandations
Toutes les grandes entreprises de commerce électronique disposent aujourd’hui de puissants systèmes de recommandation. Parfois, leur capacité à recommander des articles que nous “pourrions” trouver utiles est incroyablement précise, même si nous n’avons jamais cliqué sur cet article auparavant.
Coïncidence ? Pas du tout !
L’apprentissage automatique est ici à l’œuvre, engloutissant téraoctets après téraoctets de données et tentant de prédire nos humeurs et nos préférences volatiles.
Chatbots
Avez-vous déjà rencontré un service d’assistance à la clientèle de premier niveau qui vous a semblé étrangement robotique, mais qui était capable d’engager une conversation intéressante ?
Eh bien, vous avez été battu par l’apprentissage automatique !
L’apprentissage des conversations et la détermination de ce qu’il convient de dire à un moment donné constituent un domaine d’application prometteur et passionnant pour les chatbots.
Désherbage
Dans l’agriculture, des robots utilisant l’apprentissage automatique sont utilisés pour pulvériser de manière sélective les mauvaises herbes et autres plantes indésirables au milieu des cultures.
Autrement, cette opération devrait être effectuée à la main ou constituerait un énorme gaspillage, car le système pulvériserait également le produit avec le liquide tueur !
Recherche vocale
L’interaction vocale avec les systèmes informatiques ne relève plus de la science-fiction. Nous disposons aujourd’hui d’assistants numériques tels qu’Alexa, Siri et Google Home, qui peuvent recevoir des commandes verbales sans se tromper (enfin, presque !).
Certains diront que c’est une invention qu’il vaut mieux éviter car elle rend l’humanité plus paresseuse que jamais, mais l’efficacité est indéniable.
Le diagnostic médical
Nous sommes à l’aube d’une révolution dans le domaine du diagnostic médical, car les systèmes basés sur l’apprentissage automatique commencent à surpasser les médecins expérimentés en matière de diagnostic à l’aide de radiographies, etc.
Veuillez noter que cela ne signifie pas que les médecins ne seront bientôt plus nécessaires, mais que la qualité des soins médicaux augmentera considérablement, tandis que les coûts chuteront (à moins que les cartels commerciaux n’en décident autrement !)
Il ne s’agit là que d’un aperçu des applications de l’apprentissage automatique. Les voitures autopilotées, les robots qui jouent à des jeux de stratégie, les machines à plier les t-shirts, le cassage de captcha et le coloriage de photos en noir et blanc sont autant d’exemples de ce qui se passe aujourd’hui.
Types d’apprentissage automatique
Les techniques d’apprentissage automatique sont de deux types.
L’apprentissage supervisé, dans lequel le système est dirigé par un jugement humain, et l’apprentissage non supervisé, dans lequel le système est laissé à lui-même. Une autre façon de dire la même chose serait que dans l’apprentissage supervisé, nous disposons d’un ensemble de données contenant à la fois les entrées et les sorties attendues, que le système utilise pour comparer et s’auto-corriger. En revanche, dans le cas de l’apprentissage non supervisé, il n’y a pas de résultats existants auxquels se mesurer, de sorte que les résultats peuvent varier considérablement.
Une application passionnante et effrayante de l’apprentissage automatique non supervisé ?
Il s’agirait de robots jouant à des jeux de société, dans lesquels le programme apprend les règles du jeu et les conditions de victoire, puis est laissé à lui-même. Le programme joue ensuite des millions de parties contre lui-même, apprenant de ses erreurs et renforçant les décisions avantageuses.
Si vous disposez d’un ordinateur suffisamment puissant, vous pouvez préparer une IA capable de battre le monde entier en quelques heures !
Les images suivantes illustrent succinctement ces idées(source : Medium) :
Outils et bibliothèques pour l’apprentissage automatique
Les professionnels de la science des données utilisent de nombreux outils et bibliothèques d’apprentissage automatique afin de résoudre des problèmes complexes d’apprentissage automatique. Voici quelques-unes des meilleures plateformes d’apprentissage automatique que vous pouvez essayer :
#1. TensorFlow
TensorFlow est une plateforme de ML de bout en bout, très appréciée pour la création de modèles de ML de qualité production. Vous pouvez utiliser directement ses modèles pré-entraînés ou créer vos propres modèles et les entraîner.
Quel que soit votre niveau de compétence, vous pouvez trouver facilement des solutions de ML à l’aide de cet outil. Avec TensorFlow dans votre boîte à outils, il vous sera plus facile de passer de la phase de recherche à la production. Il vous aidera à trouver des solutions plus rapidement afin d’accélérer vos tâches de ML à chaque étape du flux de travail.
Caractéristiques :
- Chargez et traitez des données, construisez de puissants modèles de ML, et pré-traitez, nettoyez et consolidez des données à grande échelle avec des outils TensorFlow comme des ensembles de données standard pour l’entraînement initial des modèles et leur validation.
- L’écosystème TensorFlow est développé sur le cadre Core, qui rationalise la création, l’entraînement et l’exportation des modèles.
- Prise en charge de l’itération rapide des modèles, de l’entraînement distribué, du débogage sans effort à l’aide de Keras, etc
- Suivi de l’amélioration et du développement grâce à TensorBoard et Model Analysis
- Exécution et déploiement de modèles sur appareil, sur site, dans le cloud, navigateur, appareils périphériques, serveurs, mobiles, CPU, GPU, microcontrôleurs et FPGA.
TensorFlow vous aide même à mettre en œuvre les MLOps et les meilleures pratiques pour le suivi des modèles, l’automatisation des données, l’entraînement des modèles et la surveillance des performances.
#2. scikit-learn
scikit-learn est un outil de ML simple et efficace que vous pouvez utiliser pour effectuer des analyses prédictives de données. Il est accessible à tous et réutilisable dans une variété de contextes différents. scikit-learn est construit sur SciPy, NumPy, et matplotlib.
L’avantage est que scikit-learn est un outil open-source qui est commercialement utilisable et qui a une licence BSD. L’outil est utile pour
- Classification : pour identifier la catégorie d’un objet à l’aide d’algorithmes ML comme SVM, random forest, nearest neighbors, etc. Il est utilisé pour la reconnaissance d’images et la détection de spam.
- Régression : pour prédire les attributs à valeur continue d’un objet à l’aide d’algorithmes tels que SVR, random forest, nearest neighbors, etc. Elle est utilisée pour prédire le cours des actions et les réactions aux médicaments.
- Regroupement : pour regrouper des objets similaires à l’aide d’algorithmes tels que k-Means, mean-shift, spectral clustering, etc. Il est utilisé pour regrouper les résultats d’expériences et la segmentation de la clientèle.
- Réduction de la dimensionnalité : pour réduire les variables aléatoires à prendre en considération au moyen d’algorithmes tels que l’ACP et la sélection des caractéristiques. Elle est utilisée pour la visualisation et l’amélioration de l’efficacité.
- Sélection de modèles : pour comparer, valider et choisir des modèles et des paramètres par le biais de la validation croisée et de la recherche en grille. Elle permet d’améliorer la précision.
- Prétraitement : pour effectuer la normalisation et l’extraction des caractéristiques afin de transformer les données d’entrée.
#3. MATLAB
MATLAB est une plate-forme de programmation et de calcul numérique très répandue, utilisée par des millions de scientifiques et d’ingénieurs. Il vous aide à analyser les données, à créer des modèles et à développer des algorithmes.
Son environnement de bureau est adapté aux processus de conception et à l’analyse itérative grâce à un langage de programmation qui exprime directement les mathématiques des tableaux et des matrices.
Caractéristiques :
- Modélisez, analysez, explorez et visualisez des données
- Créez des classes, des fonctions et des scripts, ainsi que des applications web et de bureau
- Live Editor pour créer des scripts avec du texte formaté, des sorties et du code dans un carnet exécutable
- Les applications MATLAB vous permettent de voir comment les algorithmes fonctionnent avec les données, puis d’itérer et de générer un programme pour automatiser le travail
- Vous pouvez exécuter vos analyses sur des nuages, des GPU et des clusters avec des modifications mineures
- Effectuez des calculs parallèles
- Compatible avec Azure et AWS
Apprentissage automatique : Ressources d’apprentissage
Maintenant que vous êtes emballé par l’apprentissage automatique et la façon dont il peut vous aider à conquérir le monde, par où commencer ?
Vous trouverez ci-dessous une liste de ressources fantastiques sur le Web qui peuvent vous aider à maîtriser l’apprentissage automatique sans obtenir un doctorat en informatique ! Si vous n’êtes pas un chercheur en apprentissage automatique, vous trouverez le domaine de l’apprentissage automatique aussi pratique et agréable que la programmation en général.
Ne vous inquiétez donc pas ; quel que soit votre niveau actuel, vous pouvez, comme un bon programme de Machine Learning, apprendre par vous-même et vous améliorer 😛
#1. La programmation
La première condition pour se lancer dans le Machine Learning est d’apprendre à programmer. En effet, les systèmes d’apprentissage automatique se présentent sous la forme de bibliothèques pour différents langages de programmation.
Python est le plus recommandé, d’une part parce qu’il est incroyablement agréable à apprendre et d’autre part parce qu’il dispose d’un écosystème massif de bibliothèques et de ressources.
Le guide officiel du débutant est un excellent point de départ, même si vous n’avez qu’une connaissance limitée de Python. Vous pouvez également suivre ce cours Bootcamp pour devenir un héros à partir de zéro.
#2. Pensez statistiques
Une fois que vous avez terminé les bases de Python, ma deuxième recommandation serait de lire deux livres exceptionnels. Ils sont 100% gratuits et disponibles en téléchargement au format PDF. Think St ats et Think Bayes sont deux classiques modernes que tout aspirant ingénieur en Machine Learning devrait assimiler.
#3. Udemy
À ce stade, je vous recommande de suivre quelques cours sur Udemy. Le format interactif et autodidacte vous aidera à entrer dans le vif du sujet et à gagner en confiance.
Assurez-vous de vérifier l’aperçu du cours, les commentaires (surtout les négatifs !) et l’impression générale du cours avant de commencer.
Vous pouvez également trouver d’excellents tutoriels gratuits sur YouTube. Sentdex est l’une de ces chaînes que je vous recommande, où l’on s’amuse beaucoup, mais son approche n’est pas adaptée aux débutants.
#4. Andrew Ng
Le cours enseigné par Andrew Ng sur Coursera est sans doute la ressource d’apprentissage la plus populaire pour les fondamentaux de l’apprentissage automatique.
Bien qu’il utilise le langage de programmation R, il reste inégalé dans son traitement du sujet et ses explications lucides. Grâce à ce cours, Andrew Ng a acquis une sorte de stature divine dans les cercles de ML, et les gens l’admirent pour sa sagesse ultime (je ne plaisante pas !).
Ce n’est pas un cours pour les débutants, mais si vous êtes déjà doué pour la manipulation de données et que vous n’avez pas peur de faire quelques recherches en cours de route, ce cours est la meilleure recommandation.
#5. Udacity
Devenez ingénieur en apprentissage automatique en suivant ce nanodiplôme d’Udacity.
Il vous faudra environ 3 mois pour le compléter et à la fin du cours, vous êtes censé avoir une bonne idée des algorithmes d’apprentissage automatique, de la façon de les modéliser et de les déployer en production.
Conclusion
Les ressources sur l’internet sont innombrables et vous pouvez facilement vous perdre lorsque vous débutez. La plupart des tutoriels et des discussions sont mathématiquement difficiles ou manquent de structure et peuvent briser votre confiance avant même que vous ne commenciez.
J’aimerais donc vous mettre en garde contre l’autodestruction : gardez votre objectif modeste et avancez par étapes minimales. L’apprentissage automatique n’est pas quelque chose avec lequel on peut se sentir à l’aise en un jour ou deux, mais très vite, vous commencerez à vous amuser, et qui sait, peut-être même à créer quelque chose d’effrayant!
Amusez-vous bien ! 🙂