Comment démarrer avec l’apprentissage automatique ?



L’Aube des Machines Intelligentes

L’ambition de concevoir des machines surpassant l’intelligence humaine n’est pas un concept récent.

L’un des premiers défis lancés par l’informatique à l’égard de l' »intelligence » humaine fut le jeu d’échecs. Ce dernier était autrefois considéré comme le test ultime de l’intellect et de la créativité de l’homme. Dans les années 1960 et 1970, différentes écoles de pensée ont émergé en informatique.

Certains affirmaient que ce n’était qu’une question de temps avant que les ordinateurs ne surpassent les humains aux échecs, tandis que d’autres pensaient que cela ne se produirait jamais.

Kasparov contre Deep Blue

L’événement le plus marquant opposant l’homme à la machine dans un duel intellectuel fut le match d’échecs de 1996 entre Garry Kasparov, alors champion du monde et considéré par beaucoup comme le meilleur joueur d’échecs de tous les temps, et Deep Blue, un superordinateur développé par IBM spécialement pour cet événement.

Crédit image : Wikipédia

Pour résumer, Kasparov a remporté le match de 1996 de manière convaincante (4-2), mais a perdu la revanche en 1997 (4,5-3,5), au milieu de nombreuses controverses et d’accusations de tricherie portées par Kasparov contre IBM.

Quoi qu’il en soit, l’ère des échecs et de l’informatique était révolue. Les ordinateurs avaient prouvé qu’ils pouvaient être plus intelligents que n’importe quel être humain. Satisfaite de sa victoire, IBM a démantelé Deep Blue et s’est tournée vers d’autres projets.

Aujourd’hui, il est impensable qu’un grand maître puisse battre un moteur d’échecs standard, même sur un matériel informatique basique.

Qu’est-ce que l’Apprentissage Automatique ?

Avant de nous plonger dans l’apprentissage automatique, écartons quelques idées reçues. L’apprentissage automatique n’est pas une tentative de reproduction du cerveau humain. Malgré les spéculations d’Elon Musk, les chercheurs en informatique affirment qu’ils ne cherchent pas ce graal et qu’ils en sont même assez éloignés.

En termes simples, l’apprentissage automatique consiste à appliquer des processus d’apprentissage par l’exemple aux ordinateurs. Cela contraste avec l’approche traditionnelle où un programmeur humain conçoit tous les scénarios possibles et code les règles pour chacun d’eux dans un système.

En réalité, l’apprentissage automatique consiste à fournir une quantité massive de données à un ordinateur afin qu’il puisse apprendre à partir d’exemples (essai → erreur → comparaison → amélioration) plutôt que de se fier à un code source prédéfini.

Applications de l’Apprentissage Automatique

Si l’apprentissage automatique n’est ni de la magie noire, ni destiné à créer des Terminators, à quoi sert-il réellement ?

L’apprentissage automatique est utile lorsque la programmation traditionnelle montre ses limites, ce qui arrive généralement dans deux catégories.

La classification consiste à étiqueter correctement les éléments, tandis que la prédiction a pour but d’anticiper les projections futures en se basant sur un ensemble de données suffisamment conséquent de valeurs passées.

Voici quelques applications intéressantes de l’apprentissage automatique :

Filtrage de Spam

Le spam par e-mail est omniprésent, mais le bloquer peut s’avérer difficile. Comment définir le spam ? Est-ce la présence de certains mots-clés ? Ou peut-être la manière dont il est rédigé ? Il est ardu d’imaginer une liste exhaustive de règles codables par un programme.

C’est pourquoi nous utilisons l’apprentissage automatique. Nous fournissons au système des millions de spams et de messages non-spam, et il apprend à faire le tri par lui-même. C’était le secret des excellents filtres anti-spam de Gmail qui ont révolutionné l’email personnel au début des années 2000 !

Recommandations

Aujourd’hui, toutes les grandes entreprises de commerce électronique utilisent des systèmes de recommandation performants. Leur capacité à suggérer des produits que nous pourrions trouver utiles est parfois étonnamment précise, même si nous n’avons jamais cliqué sur l’élément en question auparavant.

Est-ce un hasard ? Absolument pas !

L’apprentissage automatique est à l’œuvre, analysant des téraoctets de données pour essayer d’anticiper nos humeurs et nos préférences changeantes.

Chatbots

Avez-vous déjà interagi avec un support client qui semblait étonnamment robotique, tout en étant capable d’engager une conversation ?

Si c’est le cas, alors vous avez été « pwned » par l’apprentissage automatique !

Apprendre à partir de conversations et déterminer quand dire quoi est un domaine d’application fascinant pour les chatbots.

Désherbage

Dans le domaine agricole, des robots équipés de l’apprentissage automatique sont utilisés pour pulvériser sélectivement les mauvaises herbes au milieu des cultures.

Autrement, ce travail devrait être fait manuellement ou nécessiterait un gaspillage énorme, car le système pulvériserait également le produit avec l’herbicide !

Recherche Vocale

L’interaction vocale avec les systèmes informatiques n’est plus de la science-fiction. Aujourd’hui, nous avons des assistants numériques tels qu’Alexa, Siri et Google Home, qui peuvent interpréter des commandes vocales et ne se trompent presque jamais.

Certains affirment que c’est une invention à éviter, car elle rend la race humaine plus paresseuse que jamais, mais on ne peut nier son efficacité.

Diagnostic Médical

Nous sommes sur le point de révolutionner le diagnostic médical, car les systèmes basés sur l’apprentissage automatique commencent à surpasser les médecins expérimentés dans le diagnostic par rayons X, entre autres.

Il ne s’agit pas de suggérer que les médecins deviendront inutiles, mais plutôt que la qualité des soins médicaux augmentera de manière significative, tandis que les coûts diminueront (à moins que les cartels commerciaux n’en décident autrement !).

Ce ne sont que quelques exemples des applications de l’apprentissage automatique. Les voitures autonomes, les robots de jeux de stratégie, les machines à plier les t-shirts, la résolution de captcha et la colorisation de photos en noir et blanc sont autant de réalités aujourd’hui.

Types d’Apprentissage Automatique

Il existe deux types de techniques d’apprentissage automatique.

L’apprentissage supervisé, où le système est guidé par le jugement humain, et l’apprentissage non supervisé, où le système doit apprendre par lui-même. Une autre façon de le dire serait que dans l’apprentissage supervisé, nous avons un ensemble de données contenant à la fois les entrées et les sorties attendues, que le système utilise pour se comparer et s’auto-corriger. Dans l’apprentissage non supervisé, il n’y a pas de sortie existante pour se mesurer, de sorte que les résultats peuvent varier énormément.

Une application passionnante et effrayante de l’apprentissage automatique non supervisé ?

Ce serait des robots qui jouent à des jeux de société. Le programme apprend les règles et les conditions de victoire, puis il est livré à lui-même. Il joue des millions de parties contre lui-même, apprenant de ses erreurs et renforçant les décisions avantageuses.

Sur un ordinateur suffisamment puissant, une IA de jeu de niveau mondial peut être développée en quelques heures !

Les images suivantes illustrent brièvement ces concepts (source : Medium) :

Ressources pour se Lancer dans l’Apprentissage Automatique

Maintenant que vous êtes enthousiaste à l’idée de l’apprentissage automatique et de ce qu’il peut faire pour vous, par où commencer ?

Voici quelques ressources en ligne qui peuvent vous aider à maîtriser l’apprentissage automatique sans avoir à obtenir un doctorat en informatique ! Si vous n’êtes pas un chercheur en apprentissage automatique, vous constaterez que ce domaine est aussi pratique et agréable que la programmation en général.

Alors, ne vous inquiétez pas. Quel que soit votre niveau actuel, vous pouvez, comme un bon programme d’apprentissage automatique, apprendre par vous-même et progresser. 😛

#1. Programmation

La première étape pour se lancer dans l’apprentissage automatique est d’apprendre à programmer. En effet, les systèmes d’apprentissage automatique se présentent sous la forme de bibliothèques pour divers langages de programmation.

Python est le plus souvent recommandé, en partie parce qu’il est incroyablement facile à apprendre, et en partie parce qu’il possède un vaste écosystème de bibliothèques et de ressources.

Le Guide officiel du débutant est un excellent point de départ, même si vous êtes déjà un peu familier avec Python. Sinon, vous pouvez essayer ce cours d’entraînement pour devenir un expert en partant de zéro.

#2. Penser Statistiques

Une fois que vous avez maîtrisé les bases de Python, je vous recommande de lire ces deux ouvrages exceptionnels. Ils sont entièrement gratuits et disponibles en téléchargement au format PDF. Penser Statistiques et Penser Bayes sont deux classiques modernes que tout ingénieur en apprentissage automatique en devenir devrait assimiler.

#3. Udemy

À ce stade, je vous suggère de suivre quelques cours sur Udemy. Le format interactif et à votre rythme vous aidera à vous familiariser avec le sujet et à gagner en confiance.

Consultez bien l’aperçu du cours, les avis (en particulier les avis négatifs !) et l’impression générale du cours avant de vous lancer.

Vous trouverez également d’excellents tutoriels gratuits sur YouTube. Sentdex est une chaîne que je recommande, qui est toujours divertissante, mais son approche n’est pas idéale pour les débutants.

#4. Andrew Ng

Le cours dispensé par Andrew Ng sur Coursera est sans doute la ressource la plus populaire pour apprendre les fondamentaux de l’apprentissage automatique.

Bien qu’il utilise le langage de programmation R, ce cours reste inégalable pour sa façon de traiter le sujet et pour ses explications claires. Ce cours a valu à Andrew Ng une place de maître dans le monde de l’apprentissage automatique, et il est admiré pour sa sagesse (je ne plaisante pas !).

Ce n’est pas un cours pour débutants. Mais si vous maîtrisez déjà la gestion de données et que vous n’avez pas peur d’effectuer des recherches en parallèle, ce cours est la meilleure recommandation.

#5. Udacity

Devenez ingénieur en apprentissage automatique en obtenant ce nanodiplôme sur Udacity.

Il faut environ trois mois pour terminer ce cours, et vous aurez une bonne compréhension des algorithmes d’apprentissage automatique, de la manière de les modéliser et de les déployer en production.

Conclusion

Les ressources sur Internet sont innombrables, et il est facile de se perdre au début. La plupart des tutoriels et discussions sont complexes mathématiquement ou manquent de structure, ce qui peut saper votre confiance avant même de commencer.

Je vous recommande donc de ne pas vous décourager : fixez-vous des objectifs modestes et avancez par petites étapes. L’apprentissage automatique n’est pas un sujet que vous maîtriserez en un jour ou deux. Cependant, vous commencerez très vite à vous amuser et, qui sait, peut-être même à créer quelque chose d’impressionnant !

Amusez-vous ! 🙂