• Feite Kraay, Author |
9 minutes de lecture

L’été dernier, mon fils, alors de retour au bercail après avoir terminé sa première année d’université, s’est trouvé un emploi de saisie de données pour une entreprise qui traite des formulaires de demande de règlement. Chaque jour, il recevait un lot de documents numérisés et transcrivait leur contenu dans un portail en ligne, soumettant ainsi les données pour un traitement ultérieur.Bien que je ne puisse me plaindre, car mon fils a reçu une rémunération relativement généreuse pour ce travail, il me semblait étrange que cette tâche n’ait pu être automatisée à l’aide de la reconnaissance optique de caractères (ROC).

J’ai donc effectué quelques recherches à ce sujet, et j’ai découvert qu’il existe beaucoup d’outils qui peuvent numériser et convertir avec succès du texte imprimé ou tapé. La ROC, qui peut reconnaître l’écriture manuscrite, est toutefois à un tout autre niveau. Avec cette dernière, la difficulté réside surtout dans la qualité de la calligraphie. Si elle laisse à désirer – comme la mienne – les caractères manuscrits ne sont alors pas assez cohérents pour qu’un algorithme puisse les identifier fiablement. D’un mot à l’autre, ces caractères peuvent être flous ou estompés, ou varier trop en taille ou en forme pour qu’une machine puisse facilement les lire. Par exemple, le chiffre « 1 » pourrait être confondu pour un « l » minuscule ou un « I » majuscule, ou même, s’il est assez croche, ressembler à un « 7 ». La lettre « S », elle, pourrait ressembler à un « 5 »… et ainsi de suite.L’écriture manuscrite peut être source d’ambiguïté.

Les êtres humains gèrent plutôt bien l’ambiguïté. Les ordinateurs, en revanche, pas vraiment – à moins que nous ne mettions l’intelligence artificielle (IA) à l’œuvre. En poursuivant mes recherches, j’ai constaté que la reconnaissance de l’écriture manuscrite est un domaine où l’apprentissage machine, un sous-ensemble de l’IA, se révèle particulièrement utile. J’ai rédigé de nombreux billets de blogue sur les occasions liées à l’IA, mais surtout sur les limites et les risques inhérents, en me concentrant principalement sur l’IA générative, qui a dominé l’actualité cette année. Mon argument est que les domaines d’IA où le champ d’application est restreint ont tendance à être moins risqués et plus utiles. L’apprentissage machine est un bon exemple d’IA utile : nous pouvons contrôler les entrées et laisser le système résoudre des problèmes spécifiques avec un degré élevé de fiabilité. De plus, comme nous le verrons, il s’agit aussi un domaine prometteur où l’informatique quantique peut procurer des avantages supplémentaires.

Étude approfondie
Qu’est-ce que l’apprentissage machine, exactement? Il s’agit d’un terme générique utilisé pour décrire la technique de résolution de problèmes pour lesquels le développement d’algorithmes par des programmeurs humains serait coûteux. Les problèmes sont donc plutôt résolus en aidant les machines à « découvrir » leurs « propres » algorithmes. Ou, comme le résume avec concision un manuel de mathématiques appliquées que j’ai lu : « Prenez des données et des techniques statistiques, saisissez-les dans un ordinateur, et ce que vous obtiendrez, c’est l’apprentissage machine. » En fin de compte, l’apprentissage machine consiste à permettre à un ordinateur de trouver des tendances parmi une grande quantité de données grâce à l’application d’algorithmes répétitifs dont les paramètres peuvent être ajustés en fonction des résultats précédents. Ainsi, la machine apprend plus ou moins par elle-même.

Il existe trois grandes catégories d’apprentissage machine :

Apprentissage supervisé : un algorithme reçoit à la fois un grand ensemble de données d’entrée à classer ainsi qu’un ensemble de données de sortie avec lesquels effectuer des tests. Prenons comme exemple une situation de reconnaissance d’écriture manuscrite. L’ensemble de données d’entrée pourrait se composer de quelques-unes de mes notes de réunion ou d’appel téléphonique gribouillées, et celui de données de sortie, des lettres de l’alphabet et des chiffres 0 à 9, tapés de façon claire et cohérente.Les données d’entrée et de sortie peuvent être transformées en images pixélisées de chaque lettre ou chiffre. L’algorithme pourrait alors commencer par comparer les pixels de chaque caractère manuscrit aux données de sortie fournies et classer autant que possible la lettre ou le chiffre représenté. Je pourrais ensuite vérifier les résultats et relancer l’algorithme, répétant le processus jusqu’à ce que je trouve qu’il a été suffisamment formé et qu’il reconnaît bien mon écriture.Enfin, je pourrais lui donner un nouveau lot d’échantillons de mon écriture – ou même de celle de quelqu’un d’autre – et être certain que l’algorithme saura démêler le tout.

Apprentissage non supervisé : dans ce cas-ci, l’algorithme ne reçoit qu’une certaine quantité de données d’entrée et aucune donnée de sortie, et il doit ensuite trouver des relations ou des tendances sans instructions. L’algorithme tente alors de repérer des caractéristiques communes parmi certains éléments de données et essaie de construire des sous-ensembles de données en fonction de celles-ci. Ces sous-ensembles peuvent être testés pour en vérifier la pertinence ou l’exactitude, puis continuellement affinés. Les résultats ne sont pas toujours prévisibles. La segmentation de la clientèle est un bon champ d’application : un détaillant peut s’en servir pour essayer de cerner des tendances d’achat courant afin d’adapter le contenu marketing et publicitaire en conséquence. Un exemple classique est le cas de la bière et des couches : les dépanneurs américains ont découvert il y a longtemps que ces deux produits étaient fréquemment achetés ensemble, surtout le samedi matin. La tendance sous-jacente était que les pères de jeunes familles faisaient des courses la fin de semaine. Les détaillants au fait de cette propension auraient donc pu placer d’autres produits connexes à proximité des couches et des bières (des croustilles ou des noix, par exemple) afin d’augmenter la probabilité d’achats spontanés supplémentaires.

Apprentissage par renforcement : un exemple typique de cette technique est d’apprendre à un ordinateur à jouer à un jeu, comme les échecs, les dames ou le go. On parle ici aussi d’apprentissage non supervisé, car l’ordinateur n’a besoin que de connaître les règles du jeu, donc les mouvements permis ou non. L’ordinateur peut commencer par effectuer des mouvements aléatoires jusqu’à ce qu’il perde ou gagne une partie, ce qui consistera en un renforcement négatif ou positif. Il est toutefois possible que ces mouvements ne soient pas totalement aléatoires : nous pouvons fournir à l’algorithme des données sur ce qui pourrait constituer des bons ou des mauvais coups dans le contexte d’un jeu donné. Les mouvements qui mènent à une partie gagnante sont pondérés pour être utilisés plus fréquemment lors d’une prochaine joute, et inversement pour les mouvements perdants. Avec le temps, l’ordinateur s’améliore jusqu’à ce qu’il puisse devenir un adversaire compétent.

Veuillez noter qu’il est possible d’appliquer un même cas d’utilisation dans différentes catégories. Par exemple, l’apprentissage par renforcement pourrait être utilisé dans un contexte de reconnaissance d’écriture manuscrite, et l’apprentissage supervisé, dans celui de segmentation de la clientèle. L’essentiel réside dans les données à votre disposition et dans le temps que vous souhaitez allouer aux tests de l’algorithme.

Pause bien méritée
Néanmoins, il est important de ne pas fournir trop de données d’entrée à l’algorithme dès le départ, ou de laisser l’apprentissage durer trop longtemps. Trop de données ou trop d’itérations pourraient entraîner une suradaptation : l’algorithme deviendrait si compétent quant aux caractéristiques spécifiques des données reçues qu’il ne serait plus en mesure de généraliser dans d’autres cas. Il aurait donc mémorisé un ensemble de données précises. Si on lui fournit plutôt une plus petite quantité de données, il peut en apprendre juste assez pour repérer des tendances et extrapoler les résultats à de nouvelles données. Par conséquent, l’optimisation des données d’entrée pour l’apprentissage machine est une première étape essentielle, et elle peut s’avérer plus exigeante qu’elle en a l’air.

La mathématique sous-jacente se complique rapidement. Chaque entrée est un objet de données qui possède un certain nombre de caractéristiques desquelles on tente de tirer des renseignements utiles. Si l’on prend des objets de données dotés chacun de deux caractéristiques (p. ex., un groupe de personnes dont on considère la taille et le poids), on peut les représenter en tant que vecteurs avec deux éléments (x, y), puis tracer le tout sur du papier graphique. Si chaque objet de données possède plutôt trois caractéristiques, on fait la même chose avec les vecteurs x, y, z, qu’on répartit dans un espace tridimensionnel. Revenons maintenant à notre exemple de l’écriture manuscrite : si une lettre était représentée dans une image à très faible résolution, soit de 28 x 28 pixels, chaque pixel représenterait une caractéristique de l’objet de données. On travaillerait donc dans un espace de 784 dimensions, ce qui pourrait être un peu plus difficile à visualiser.

Il faut aussi comprendre à quel point le résultat de l’algorithme d’apprentissage machine est proche ou éloigné de la bonne solution après chaque exécution. Pour ce faire, on utilise une « fonction de coût » qui mesure la différence entre les résultats générés et prévus pour chaque caractéristique des points de données analysés.Plus le résultat de l’algorithme s’éloigne des prévisions, plus celui de la fonction de coût est élevé. Un apprentissage machine réussi consiste donc à minimiser le résultat de la fonction de coût. Cela vous rappelle quelque chose?Il s’agit d’un autre exemple d’optimisation.

C’est ici que l’informatique quantique entre en jeu. Rappelez-vous que les ordinateurs quantiques réussissent très bien dans certains domaines, notamment en ce qui concerne les problèmes mathématiques complexes qui exigent une grande capacité de calcul, comme ceux décrits ci-dessus, et les scénarios d’optimisation connexes. De nombreuses recherches relativement à l’application de techniques de programmation quantique à des algorithmes d’apprentissage machine sont en cours. Avec l’avènement de l’informatique quantique utile à nos portes, je pense que nous verrons des progrès importants en matière d’apprentissage machine. En effet, si l’informatique quantique peut accélérer l’exécution d’algorithmes d’apprentissage machine, nous pourrons conduire davantage d’essais avec plus de paramètres pour améliorer notre précision. En outre, l’informatique quantique peut aussi contribuer aux efforts visant à minimiser le résultat de fonction de coût. Obtenir de meilleurs résultats plus rapidement – voilà l’essence même de l’informatique quantique.

Apprentissage continu
Maintenant, pour approfondir l’intrication de l’IA et de l’informatique quantique, et peut-être même pour soutenir ma thèse, je souhaite vous parler d’un article que j’ai lu récemment. On y avance que l’apprentissage machine pourrait améliorer l’informatique quantique. Un groupe de chercheurs japonais a étudié les techniques de correction des erreurs des ordinateurs quantiques afin de trouver des moyens d’en réduire les coûts indirects et la complexité. Ces chercheurs ont utilisé l’apprentissage par renforcement pour déterminer la meilleure façon d’encoder des types spécifiques de qubits et ainsi réduire le nombre d’évaluations nécessaires, car celles-ci déclenchent souvent des erreurs. Leurs études sont encore au stade expérimental, mais les résultats semblent prometteurs.

L’informatique quantique peut rendre l’apprentissage machine plus précis, et l’apprentissage machine peut rendre l’informatique quantique moins sujette aux erreurs. C’est ce que j’appelle un cercle vertueux.

Multilingual post

This post is also available in the following languages

Stay up to date with what matters to you

Gain access to personalized content based on your interests by signing up today