Démystifier les algorithmes
Get in touch

Il y a eu beaucoup d’enthousiasme et d’espoir autour des algorithmes récemment. Mais que peuvent-ils faire et que ne peuvent-ils pas faire? Comment fonctionnent-ils? Peuvent-ils ressentir comme les humains? Kasia Barczewska, Responsable eevelopment IA chez Cardiomatics, nous emmène dans un voyage instructif à travers l’intelligence artificielle, les algorithmes et l’apprentissage automatique.

Comment expliquer à un enfant ce qu’est un algorithme et ce qu’est l’IA?

Un algorithme est une sorte de recette qui décrit comment résoudre un problème ou atteindre un objectif. L’objectif est crucial – ce que nous voulons exactement faire. Si nous voulons cuire un gâteau, une recette de gâteau est un algorithme qui définit comment le faire, en commençant par une liste d’ingrédients nécessaires et en terminant par la température du four et le temps de cuisson. Si nous suivons l’algorithme, nous obtiendrons un gâteau cuit en résultat. Si nous voulons construire un château avec des blocs, une instruction sur la manière de le faire est également un algorithme qui nous permet d’atteindre cet objectif et d’obtenir le même bâtiment que celui représenté sur la boîte de blocs.

Qu’est-ce que l’IA? Un terme courant à un niveau très élevé d’abstraction. C’est la capacité des ordinateurs à apprendre, généraliser et prendre des décisions. Derrière ce terme populaire, il n’y a que des statistiques et de la modélisation mathématique. Comment cela peut-il être expliqué à un enfant? Je dirais : « L’IA, c’est comment mon ordinateur portable peut apprendre des choses comme toi. Il apprend beaucoup plus lentement et a besoin de beaucoup plus d’exemples que toi. »

À quoi ressemble le processus de création d’un algorithme?

Alors, vous demandez l’algorithme d’un algorithme. Essentiellement, c’est un processus très créatif au cours duquel un concepteur d’algorithmes est un enfant assis avec tous les blocs du monde et essaie de comprendre comment construire un château. Le concepteur doit décider quels blocs utiliser et quelles étapes suivre pour créer ce bâtiment. Le résultat de son travail est à la fois un beau château et un livre d’instructions pour d’autres personnes qui souhaiteraient le construire de la même manière.

Un autre exemple pourrait être un maître origamiste japonais se demandant comment faire une grue à partir d’une feuille de papier carrée. Le résultat de ses efforts est une instruction pour d’autres amateurs d’origami qui peuvent plier la feuille de la même manière.

En général, il y a quelques étapes très importantes dans ce processus. Le concepteur d’algorithmes doit :

  • Spécifier l’objectif. Par exemple, « Je veux construire un château/faire cuire un gâteau », « Je veux créer une grue », « Je veux détecter la fibrillation auriculaire. »
  • Définir l’ensemble des hypothèses/outils qui peuvent être utilisés : « J’ai 200 blocs avec des formes et des couleurs spécifiques/œufs, farine et pommes », « J’ai une seule feuille de papier carrée », « J’ai une base de données d’enregistrements de 24 heures de 100 patients. »
  • Définir exactement ce que devrait être le résultat de l’algorithme : « Je vais construire un Château ambulant de Howl à partir de blocs/je vais cuire une tarte aux pommes », « Je vais faire une grue en origami », « Le résultat serait 0 ou 1 selon que la fibrillation auriculaire a été détectée dans un signal ECG de 24 heures ou non. »
  • Faire la recherche : comment font les autres pour cela?
  • Lister les étapes qui doivent être suivies pour atteindre l’objectif. Par exemple : écrire la recette, noter le pseudocode pour savoir comment le signal va procéder, quels modèles seront utilisés, quels méthodes d’apprentissage automatique seront utilisées pour enseigner les modèles aux bonnes statistiques, quelles mesures seront appliquées dans le processus d’évaluation.
  • Déterminer comment vous ferez ces étapes. « Je vais construire mon château dans ma chambre, en écoutant de la musique/où est la plaque de cuisson ? », « Je vais plier le papier à la main », « Je vais écrire du code en Python, entraîner des modèles sur un GPU et enregistrer le meilleur dans un fichier hdf5. »
  • Évaluer/revoir l’ensemble du processus. « Oups, le château s’est effondré », « Je dois changer le projet », « J’ai oublié d’ajouter du sucre ! C’est une grue qui ressemble à un pingouin. »
  • Tester votre modèle sur de nouvelles données et calculer les mesures d’évaluation. Analyser les nouveaux paramètres et essayer de comprendre ce qu’ils signifient. Comparer avec d’autres modèles ou avec des méthodes de pointe.

Une fois que l’algorithme est prêt, vous lui donnez des données, et que se passe-t-il ensuite?

L’ordinateur peut commencer à apprendre. Les ordinateurs traitent les données pour trouver des motifs et obtenir des paramètres statistiques dans lesquels leurs connaissances seront stockées. Je peux observer le processus d’apprentissage en regardant les courbes d’apprentissage, en me relaxant avec un café et en attendant qu’il soit terminé. Parfois, le modèle est prêt avant que la machine à café ait fini de moudre le café. Mais, dans certains cas, des gigaoctets de données et des stratégies d’apprentissage compliquées allongent le processus d’apprentissage jusqu’a plusieurs jours ou semaines.

Une fois que le modèle est prêt, il doit être évalué sur des données qui n’ont pas été utilisées dans le processus d’entraînement. Je dois évaluer s’il fait ce pour quoi il a été conçu. Et s’il ne le fait pas, je dois revoir l’ensemble du processus d’apprentissage.

Savons-nous étape par étape comment l’algorithme tire des conclusions ou transforme des données?

Oui, nous savons. Tout dépend de nos décisions : des données que nous avons préparées pour les lui fournir, du modèle que nous avons choisi et de la stratégie d’apprentissage que nous avons décidée d’appliquer au début du processus. Les connaissances de l’ordinateur sont stockées dans des paramètres statistiques que nous pouvons visualiser à chaque étape du processus d’apprentissage. Bien sûr, plus les algorithmes sont simples, plus c’est facile. Plus les algorithmes sont sophistiqués, plus cela devient compliqué.

Qu’est-ce que l’apprentissage automatique?

Ce sont les meilleures pratiques pour former vos modèles à prédire efficacement dans des cas réels. Vous pouvez imaginer l’apprentissage automatique comme un ensemble d’outils que les ingénieurs ont pour enseigner à un ordinateur et évaluer son processus d’apprentissage. Ces outils sont utilisés en plusieurs étapes : au début, pour préparer le matériel qui sera utilisé dans l’apprentissage, puis pour entraîner et évaluer un algorithme. Parmi les « outils de prétraitement », un ingénieur dispose de méthodes d’exploration des données, de méthodes d’augmentation des données, d’une division des données en ensembles d’entraînement et de tests, de méthodes de sélection pour montrer/mettre en évidence uniquement les caractéristiques les plus essentielles des données de l’algorithme et faciliter le processus d’apprentissage. Ensuite, elle ou il peut choisir parmi une large gamme de modèles ou d’architectures de modèle, qui sont la partie centrale de l’algorithme. Selon le modèle, une stratégie d’apprentissage appropriée doit être choisie : qu’est-ce qui va être minimisé ou maximisé par l’algorithme pendant le processus d’apprentissage? À quelle vitesse l’algorithme doit-il apprendre? Un ingénieur peut utiliser plusieurs modèles différents et comparer leurs résultats à l’aide de mesures d’évaluation. La base de tous ces outils est la statistique et les mathématiques. Tous sont stockés dans des bibliothèques et des tutoriels open source afin que chaque ingénieur dans le monde puisse les utiliser pour former son modèle ou pour les améliorer.

Quand les machines apprennent, multiplient-elles les erreurs dans les données qu’elles utilisent?

Les algorithmes sont aussi bons que les données qu’ils utilisent dans le processus d’apprentissage. S’il y a des erreurs systématiques dans l’étiquetage des données, l’algorithme les apprendra et commettra les mêmes erreurs dans la réalité. C’est pourquoi il est essentiel, surtout dans les applications médicales, de vérifier les bons labels (diagnostic) avec de nombreux spécialistes et de recueillir une gamme de connaissances à partir de matériaux de formation.

Le problème de la transparence est un problème avec de nombreux niveaux d’abstraction. À un niveau supérieur, les gens peuvent personnifier les « algorithmes d’IA », sans savoir ce qu’ils sont, quand ils ne sont tout simplement qu’une collection de modèles statistiques et mathématiques. À un niveau inférieur, les algorithmes les plus populaires sont actuellement critiqués pour leur manque de transparence en raison des millions de paramètres qu’ils possèdent, ainsi que pour leur approche entièrement basée sur les données d’apprentissage, sans l’application de règles ou de lois explicites, ce qui est une approche totalement différente de l’apprentissage que les humains ont. Cette critique est bonne car elle force les chercheurs à explorer davantage et à développer différentes méthodes.

L’IA peut-elle faire des choses sans notre contrôle qui pourraient être dangereuses pour les patients?

Ce ne sont que des outils entre les mains des humains. Tant qu’ils sont utilisés de bonne foi, ils peuvent soutenir le travail du médecin. Bien sûr, même de bonne foi, il y a place à l’erreur humaine : par exemple, dans des données mal préparées données à un algorithme lors de l’entraînement. Heureusement, dans la bonne pratique, le point final du développement d’un modèle/d’un algorithme est utilisé et une évaluation, qui doit être faite très soigneusement. À ce stade, nous pouvons évaluer si notre méthode fonctionne comme elle le devrait, et si ce n’est pas le cas, nous devons revoir l’ensemble du processus.

À quel point les algorithmes sont-ils précis? Peuvent-ils oublier des choses comme le font les gens?

Le rôle de l’ingénieur est de préparer les données avec précision et de choisir les meilleurs outils d’apprentissage automatique pour le phénomène modélisé. Si elle ou il oublie quelque chose dans le processus d’apprentissage, les données utilisées dans la formation ne représentent pas fidèlement les phénomènes, et l’algorithme ne fonctionnera pas bien en réalité. Il ne va pas oublier, mais il ne saura pas qu’il existe d’autres distributions de ce phénomène. Les algorithmes modélisent les connaissances uniquement de la manière dont elles ont été montrées dans le processus d’apprentissage.

Que ne pourront jamais faire les algorithmes?

Aimer, avoir une famille, rencontrer des amis, être curieux et avoir des hobbies, se détendre et boire du café. Mais grâce aux algorithmes, les humains auront plus de temps pour faire ces belles choses.

Comment les algorithmes vont-ils changer la médecine?

Radicalement ! Ils donneront aux médecins la possibilité de poser un diagnostic holistique basé sur des données automatiquement traitées à partir de différents examens. Ils découvriront des relations entre les données des patients et montreront ces relations aux médecins. Ils réduiront le temps entre l’examen et le diagnostic. Ils donneront au médecin le temps de parler avec le patient et de réfléchir à la thérapie. Ils réduiront les temps d’attente pour les spécialistes. Ils permettront d’augmenter le nombre de cas détectés d’une maladie donnée en rendant possible l’analyse rapide des signaux à long terme. Ils faciliteront les examens dans des endroits du monde où il manque de médecins.

Comment préparer les données pour les algorithmes utilisés en santé?

La préparation des données est une étape critique, surtout dans les applications médicales, et doit être effectuée très soigneusement. Un modèle ne sera aussi bon que les données qui ont été utilisées pour le former. Les paires de données d’échantillon avec les bonnes étiquettes (diagnostic approprié) sont la clé du succès. Idéalement, elles devraient être examinées par plusieurs spécialistes indépendants. À cette étape, une coopération très étroite avec les médecins est requise.

L’IA peut-elle faire quelque chose sans notre permission ou notre contrôle?

Si tout le processus de développement d’un algorithme a été bien fait, et que l’algorithme a été testé sur l’ensemble de données représentatif, alors nous savons exactement à quoi nous attendre de cet algorithme et comment il fonctionnera en réalité. Si nous n’avons pas suffisamment prêté attention aux tests, alors différentes choses peuvent se produire dans une application réelle, et nous ne comprendrons pas pourquoi elles se sont produites.

Si vous me demandez en tant qu’ingénieur si un algorithme d’IA bien conçu et testé peut faire quelque chose par lui-même sans notre permission ou notre contrôle, la réponse est « non ». Si nous le laissons faire des choses par lui-même, alors oui. Mais alors, il est sous notre contrôle car nous attendions ce résultat.

Est-il possible de construire un système d’IA qui apprendra les sentiments humains comme l’empathie, la compassion, la sympathie, etc.?

Pour détecter les émotions, certainement oui. Pour ressentir des émotions comme les humains ? Qu’est-ce que « ressentir dans le contexte d’un ordinateur » signifie-t-il ? Prendre des décisions d’une manière spécifique, en fonction des données recueillies ? Déclencher des processus chimiques quelque part ? Ou simuler des expressions faciales ? La question est : si nous comprenons les émotions humaines de cette manière, pourrions-nous les décrire à l’algorithme ? Même si oui, ce ne seront que des modèles mathématiques des émotions.

L’IA peut-elle devenir plus intelligente que les êtres humains?

Que signifie « plus intelligent » ? Il existe différents types d’intelligence et différentes tâches dans lesquelles nous pouvons comparer les humains et les ordinateurs. Et bien sûr, il existe des cas où les ingénieurs ont développé des algorithmes qui surpassent les humains. Des exemples de cela sont les jeux de société comme « Go » et les échecs, dans lesquels les algorithmes peuvent battre les maîtres humains. Dans le cas des échecs, l’ancien maître d’échecs, Kasparov, admire le style inhabituel avec lequel l’algorithme joue et remarque que les humains peuvent apprendre de nouvelles stratégies proposées par l’ordinateur.

Bien sûr, les algorithmes ont réussi à atteindre de tels niveaux parce qu’ils ont traité des millions d’exemples d’entraînement qui consistent en des jeux entre humains. Il existe également des publications dans lesquelles les chercheurs ont montré que les algorithmes surpassent les médecins individuels lorsqu’ils sont comparés aux diagnostics développés par un groupe de médecins spécialistes. C’était aussi grâce au fait que l’algorithme a appris à partir de millions d’exemples de formation correctement préparés.

En revanche, les humains n’ont besoin que de quelques exemples de formation pour acquérir les connaissances suffisantes pour comprendre un nouveau phénomène. Les humains peuvent généraliser leur expertise de manière beaucoup meilleure, ou inférer des connaissances à partir d’une simple définition d’un nouveau terme. Ils peuvent associer des faits de nombreux domaines différents sans avoir besoin autant d’exemples de formation que les algorithmes actuels ont besoin pour vaincre un maître d’échecs.

De l’auteur : Kasia (Ph.D. en génie biomédical et médical) a une capacité extraordinaire à expliquer même les choses les plus compliquées. Après une interview avec elle, j’ai enfin compris les problèmes qui me préoccupaient depuis longtemps. Elle est une chercheuse passionnée chez Cardiomatics – un outil d’IA cloud pour l’analyse ECG.

Get in touch