Outils pour utilisateurs

Outils du site


issue133:c_c

I’ve recently begun reading up on machine learning, due in large part to recent advances and news articles. Specifically, recent reports on Leela Zero (Go AI), combined with the AlphaGo documentary I recently watched on Netflix. So, for anyone who may be interested in this topic, I wanted to cover a few basic points. If you’re not sure what machine learning is - feel free to also read on!

J'ai commencé récemment à lire au sujet de l'apprentissage automatique [Ndt : en anglais « machine learning », littéralement « l'apprentissage machine »], en grande partie en raison des progrès récents et des articles d'actualité ; plus précisément, les rapports récents consacrés à Leela Zero (Go AI), combinés avec le documentaire AlphaGo que j'ai regardé sur Netflix. Donc, pour tous ceux qui s'intéressent à ce sujet, je voudrais aborder quelques points fondamentaux. Si vous n'êtes pas certains de ce qu'est l'apprentissage machine, alias l'apprentissage automatique, n'hésitez pas à lire la suite.

What is it?

Qu'est-ce que c'est ?

Machine learning is a term that is generally associated with artificial intelligence. While machine learning is used in creating artificial intelligence, it is not the same thing. Machine learning is the approach to teaching a computer how to accomplish a task without explicitly programming it. Personally, I think of it as teaching a computer to recognize patterns and extrapolate conclusions, which works fine for a basic understanding.

L'apprentissage automatique est un terme généralement associé à l'intelligence artificielle. Même si l'apprentissage machine est utilisé dans la conception de l'intelligence artificielle, ce n'est cependant pas la même chose. L'apprentissage automatique consiste à enseigner à un ordinateur comment accomplir une tâche sans la programmer explicitement. Personnellement, je pense qu'il s'agit d'apprendre à un ordinateur à reconnaître des modèles et à extrapoler des conclusions, ce qui convient parfaitement pour une compréhension basique.

Here’s an example - say you want to create an application capable of recognizing ingredients for a recipe from a single image. Programmatically, you’d have to define all the visual variables and somehow write a program to classify the key points properly and reach a conclusion. However, using machine learning, you would instead teach it by showing it images - various pictures of flour, eggs, butter, etc. By having control over your sample size (and correctly identifying them in advance), you can train your application to recognize what the images represent. Once the program understands the individual parts, you could train it to then recognize them in larger images.

Par exemple, supposons que vous vouliez créer une application capable de reconnaître les ingrédients d'une recette à partir d'une seule image. Sur le plan programmatique, il faudrait définir toutes les variables visuelles et écrire un programme pour classer correctement les points clés et arriver à une conclusion. Cependant, en utilisant l'apprentissage automatique, vous lui enseigneriez le programme en lui montrant des images diverses, de farine, d'œufs, de beurre, etc. En contrôlant la taille de votre échantillon (et en les identifiant correctement à l'avance), vous pouvez ainsi apprendre à votre application à reconnaître ce que les images représentent. Une fois que le programme est capable d'identifier les éléments individuels, vous pouvez l'entraîner à les reconnaître dans des images plus grandes.

Is this AI?

Est-ce de l'IA ?

It depends on your definition of AI. In the Sci-Fi world, AI is often portrayed as (essentially) a super intelligent digital being (who often concludes that the human race is the cause of any number of problems). However, machine learning at its core only develops so-called “dumb” AI. This is essentially a piece of software that is extremely good at doing one task - in the example above, recognizing ingredients in photos. So far, any kind of AI we have or use falls into this category. And in the case of machine learning, I would make the case that not all applications are automatically AI - for me, AI implies a level of intelligence beyond “If A do B”, but more reasoning along the lines “If A is true, then perhaps Y or Z would be better than B”.

Cela dépend de votre définition de l'IA. Dans le monde de la science-fiction, l'IA est souvent présentée comme (essentiellement) un être numérique super intelligent (qui conclut souvent que la race humaine est la cause d'un certain nombre de problèmes). Mais, à la base, l'apprentissage automatique ne développe que de l'IA dite « bête ». Il s'agit essentiellement d'un logiciel extrêmement performant dans l'exécution d'une seule tâche ; dans l'exemple ci-dessus, la reconnaissance d'ingrédients sur des photos. Jusqu'à présent, tous les types d'IA que nous avons ou utilisons entrent dans cette catégorie. Et, dans le cas de l'apprentissage automatique, je dirais que toutes les applications ne sont pas nécessairement de l'IA ; pour moi, l'IA implique un niveau d'intelligence au-delà du « Si A faire B », mais plutôt un raisonnement du type « Si A est vrai, alors peut-être que Y ou Z serait mieux que B ».

Who needs AI/machine learning?

Qui a besoin de l'apprentissage IA/automatique ?

Machine learning is generally applied in fields of study where explicit programming would fail due to the sheer amount of information and analysis the programmer would have to account for. Specifically, things like facial recognition (such as on Facebook or Google Photos), or recommendation engines (such as Amazon’s recommended products). These both deal with massive amounts of data that would need to be continually updated (for every new face, for example). Instead, we use machine learning to allow a program to recognize the same face (or pet), or to find similar products in a growing assortment.

L'apprentissage automatique est généralement appliqué dans des domaines d'études où la programmation explicite échouerait en raison de la quantité d'informations et d'analyses que le programmeur devrait prendre en compte. Plus précisément, prenons comme exemple la reconnaissance faciale (comme sur Facebook ou Google Photos) ou les moteurs de recommandation (comme les produits recommandés par Amazon). Dans les deux cas, il s'agit de quantités massives de données qui devraient être continuellement mises à jour (pour chaque nouveau visage, par exemple). Au lieu de cela, nous utilisons l'apprentissage automatique pour permettre au programme de reconnaître le même visage (ou animal de compagnie), ou de trouver des produits similaires dans un éventail en constante augmentation.

Isn’t this a new technology?

C'est une nouvelle technologie, non ?

The term “machine learning” was actually coined in 1959. And the concept, as such, has been around just as long. Until recently, however, the average computer was not up to the task and so research and availability of machine learning was severely limited. With the increase in computing power and the fall in costs, this has allowed more people to begin working with these systems.

Le terme « apprentissage machine » a été inventé en 1959. Et le concept, en tant que tel, existe depuis aussi longtemps. Cependant, jusqu'à récemment, l'ordinateur moyen n'était pas à la hauteur de la tâche ; aussi la recherche et la capacité en apprentissage machine étaient sévèrement limitées. L'augmentation de la puissance de calcul et la baisse des coûts ont permis à un plus grand nombre de personnes de commencer à travailler sur ces systèmes.

How does it work?

Comment ça fonctionne ?

There are new techniques and approaches that we have started to use. The most popular/common one seems to currently be the idea of a neural network, and is also what all of my examples typically describe. A neural network is very loosely inspired by biological neural networks (ie, the human brain), and is an interconnected group of neurons that have a specific function. Take the example of recognizing specifics of pets - the machine would learn aspects from a set of manually labelled images. And each neuron may be in charge of a defining trait (ie, does it have fur?). When an unknown image is input, the system then “fires” each of these neurons, and therefore eliminates possibilities until it has a reasonable chance at guessing correctly.

Il y a de nouvelles techniques et approches que nous avons commencé à utiliser. Actuellement, la plus commune et populaire semble être l'idée du réseau de neurones ; c'est aussi ce que, typiquement, tous mes exemples décrivent. Un réseau neuronal s'inspire vaguement des réseaux neuronaux biologiques (autrement dit, le cerveau humain). C'est un groupe interconnecté de neurones ayant une fonction spécifique. Prenons l'exemple de la reconnaissance des spécificités des animaux de compagnie : la machine apprendrait ces caractéristiques à partir d'un lot d'images étiquetées manuellement. Et chaque neurone peut prendre en charge un trait marquant (par exemple, a-t-il de la fourrure ?). Lorsqu'une image inconnue est entrée, le système « déclenche » chacun de ces neurones et élimine les possibilités jusqu'à ce qu'il ait une chance raisonnable de deviner correctement.

There are other approaches - decision trees, association rule learning, etc. But in most cases, the basic approach is the same - give the system a set of prepared data to train it, and then begin testing unlabeled data.

Il existe d'autres approches : arbres de décision, apprentissage des règles d'association, etc. Mais, dans la plupart des cas, l'approche de base reste la même: fournir au système un ensemble de données préparées pour le former, puis commencer à tester les données non étiquetées.

What about AlphaGo and Leela Zero?

Que dire sur AlphaGo et Leela Zero ?

Both of these AIs use something called deep learning - this is a step further from machine learning. While machine learning is dedicated to teaching systems to recognize specific patterns or accomplish specific tasks, deep learning is more abstract. Take AlphaGo for example - it was taught the rules of Go and was fed basic data from a few Go records. However, it then began playing against itself and learning from those encounters. As such, it didn’t have a specific goal in mind (beyond “play Go”). This application of pitting two versions of the system against each other helped AlphaGo learn the uncommon strategies it employed against Go professionals.

Ces deux types d'IA utilisent ce qu'on appelle l'apprentissage profond (c'est un pas de plus par rapport à l'apprentissage automatique). Alors que l'apprentissage automatique est dédié à apprendre aux systèmes à reconnaître des modèles spécifiques ou à accomplir des tâches déterminées, l'apprentissage profond est plus abstrait. Prenez AlphaGo, par exemple, à qui on a enseigné les règles du jeu de Go en lui fournissant des données de base issues de quelques enregistrements de parties. Il a alors commencé à jouer contre lui-même et à apprendre de ces rencontres. Ainsi, il n'avait pas d'objectif spécifique en tête (au-delà de jouer au Go). Cette application de confrontation de deux versions du système, l'une contre l'autre, a permis à AlphaGo d'apprendre des stratégies peu communes qu'il employait contre des professionnels du jeu de Go.

It also approaches the game with a fundamentally different method than human players. It is very certain in its ability to count the points on the board. As such, while human players may use moves to gain a substantial lead in points due to their uncertainty in counting, AlphaGo will instead focus on the percentage chance a move has to win the game - regardless of whether it wins by one point or one hundred. So while a human player may attempt a desperate move to increase their lead, it may have a lower chance of succeeding, while a safer move that keeps its lead the same will be preferred by AlphaGo.

Il aborde le jeu avec une méthode fondamentalement différente de celle des joueurs humains. Il est très fiable dans sa capacité à compter les points sur le plateau de jeu. Par conséquent, alors que les joueurs humains peuvent utiliser des coups pour gagner une avance substantielle en points en raison de leur incertitude dans le comptage, AlphaGo se concentrera plutôt sur le pourcentage de chance qu'un coup a de gagner le jeu (indépendamment du fait qu'il remporte le jeu d'un seul point ou de cent). Ainsi, alors qu'un joueur humain peut tenter un coup désespéré pour augmenter son avance, et peut avoir moins de chance de réussir, AlphaGo préférera un coup plus sûr afin de conserver son avance.

Can we learn from AI?

Pouvons-nous apprendre de l'IA ?

Yes! AlphaGo released a teaching tool a while back, that essentially shows the decisions for each move it makes (represented as percentages). In doing so, people have discovered that AlphaGo believes the komi (the points white receives for going second in a game of Go which has steadily increased over the years) currently puts black at a disadvantage from the beginning of the game (the opening moves are all under 50% chance of winning). This has led professionals to re-examine some of the assumptions about the game. It has also popularized a few moves that were previously deemed “bad” and led to new styles. It has also massively increased the popularity of Go around the world (after AlphaGo played against Lee Sedol there was a worldwide shortage of Go boards).

Oui ! Il y a quelque temps, AlphaGo a développé un outil d'enseignement qui présente essentiellement les décisions prises pour chaque coup utilisé (en pourcentage). Ce faisant, les gens ont découvert qu'AlphaGo considère que le komi (les points que le blanc reçoit pour jouer en deuxième dans un jeu de Go et qui ont régulièrement augmenté au fil des ans) désavantage actuellement le noir dès le début du jeu (les coups d'ouverture ont tous moins de 50 % de chances de gagner). Cela a conduit les professionnels à réexaminer certaines des hypothèses concernant le jeu. Il a également popularisé quelques coups qui étaient auparavant considérés comme « mauvais » et ont conduit à de nouveaux styles de jeu. Il a aussi massivement augmenté la popularité du jeu de Go dans le monde (après qu'AlphaGo a joué contre Lee Sedol, il y a eu une pénurie mondiale de plateaux de jeu de Go).

How can I get into machine learning?

Comment puis-je accéder à l'apprentissage automatique ?

This depends on your current knowledge. If you’re comfortable in Python, the Google Developers YouTube channel has a good introduction to machine learning. A great deal of languages have machine learning packages, and so you should look for a tutorial in your language of choice. To get started, you shouldn’t need any hardware outside of a relatively modern computer.

Cela dépend de vos connaissances actuelles. Si vous êtes à l'aise en Python, le canal YouTube « Google Developers » propose une bonne introduction à l'apprentissage automatique. Un grand nombre de langages ont des modules d'apprentissage automatique, et vous devrez donc chercher un tutoriel dans le langage de votre choix. Pour commencer, vous ne devrez pas avoir besoin de matériel autre qu'un ordinateur relativement moderne.

Disclaimer

Clause de non-responsabilité

I feel that (in this type of article) I should clearly state that I am not an expert, and all details found here are my best understanding of the available facts and information I’ve found. As such, there may be mistakes.

J'estime que (dans ce type d'article) je dois indiquer clairement que je ne suis pas un expert, et que tous les détails présentés ici représentent ma meilleure compréhension des faits et des informations disponibles que j'ai pu trouver. Ainsi, il peut y avoir des erreurs.

I hope this article has inspired you (or informed you). If anyone has noticed any issues or corrections (or has a great resource for learning), feel free to email them to me. Similarly, if you have requests for articles or feedback for this one, you can reach me at lswest34+fcm@gmail.com.

J'espère que cet article vous a inspiré (ou vous a informé). Si quelqu'un a relevé des lacunes ou des corrections (ou a une excellente ressource pour apprendre), n'hésitez pas à me les envoyer par courriel. De même, si vous avez des demandes d'articles ou des commentaires concernant celui-ci, vous pouvez me joindre à lswest34+fcm@gmail.com.

Further Information

Pour plus d'informations

https://youtu.be/lvzekeBQsSo - Part 2 of a series. The video creates a recommendation engine for color schemes in the web. https://youtu.be/cKxRvEZd3Mw - Part 1 of the Google Developer series (Python). https://www.tensorflow.org/ - An open source machine learning framework https://www.alphagomovie.com/ - the AlphaGo documentary (available on Netflix). https://github.com/gcp/leela-zero - Leela Zero

https://youtu.be/lvzekeBQsSo - Partie 2 d'une série. La vidéo crée un moteur de recommandations pour les schémas de couleurs sur le Web.

https://youtu.be/cKxRvEZd3Mw - Partie 1 de la série « Google Developer » (Python).

https://www.tensorflow.org/ - Un modèle d'apprentissage automatique Open Source.

https://www.alphagomovie.com/ - Le documentaire AlphaGo (disponible sur Netflix).

https://github.com/gcp/leela-zero - Leela Zero

issue133/c_c.txt · Dernière modification : 2018/05/31 15:34 de d52fr