algorithme définition tout savoir

Algorithme : mais en fait, qu’est-ce que c’est et à quoi ça sert ?

A l’ère du Big Data, du Machine Learning et de l’intelligence artificielle, les algorithmes sont devenus omniprésents dans nos vies. Mais en fait, qu’est-ce qu’un algorithme ? Découvrez la définition du terme, ses cas d’usage et quelques exemples des algo les plus célèbres et massivement utilisés.

Le terme algorithme fut inventé par le mathématicien Mohammed Ibn Musa-Al Khwarizmi, dans le courant du neuvième siècle avant Jésus Christ. Avec l’essor de l’intelligence artificielle, ce terme est de plus en plus utilisé et a rejoint la catégorie des  » buzzwords « .

Aujourd’hui, on utilise des algorithmes pour trouver l’amour, pour investir dans les meilleures actions, pour prédire le crime, pour organiser les résultats de recherche sur le web et pour des millions d’autres applications. Les algorithmes sont omniprésents et dirigent notre économie, notre société et peut-être même la façon dont nous pensons. Mais en fait, qu’est-ce qu’un algorithme ?

Qu’est-ce qu’un algorithme ?

Dans le domaine des mathématiques, dont le terme est originaire, un algorithme peut être considéré comme un ensemble d’opérations ordonné et fini devant être suivi dans l’ordre pour résoudre un problème. En guise d’exemple très simple, prenons une recette de cuisine. Dans chaque recette, une procédure spécifique doit être suivie dans l’ordre. Les différentes étapes de la recette représentent les opérations qui constituent l’algorithme.

Là où les choses se compliquent un peu, c’est que le but d’un algorithme est de résoudre un problème. Il doit donc produire un résultat. Pour créer un algorithme qui puisse fonctionner dans le monde réel, il faut inclure des instructions. Ces dernières lui permettent de s’adapter aux différentes situations auxquelles il peut être confronté. Voilà pourquoi les algorithmes s’apparentent à de gigantesques « arbres » d’instructions.

L’histoire des algorithmes

Au fait, pourquoi les algorithmes sont-ils appelés « algorithmes » ? L’histoire commence au 9e siècle, avec l’astronome et mathématicien Muhammad ibn Musa al-Khwarizmi.

Ce savant perse a fait de grandes découvertes en sciences, en mathématiques et pour le système de numération que nous utilisons encore aujourd’hui. Son nom correspond au mot perse désignant sa région natale : Khwãrezm.

Au fil des siècles, sa renommée a grandi dans le monde entier. En dehors du Moyen-Orient, son nom a été déformé pour devenir « Algoritmi ». Cette version de son nom a ensuite été adaptée comme terme anglais pour désigner les recettes étape par étape que nous appelons « algorithmes« .

Comment fonctionne un algorithme informatique ?

Pour effectuer une tâche, quelle qu’elle soit, un ordinateur a besoin d’un programme informatique. Or, pour fonctionner, un programme informatique doit indiquer à l’ordinateur ce qu’il doit faire avec précision, étape par étape.

L’ordinateur  » exécute  » ensuite le programme, en suivant chaque étape de façon mécanique pour atteindre l’objectif. Or, il faut aussi dire à l’ordinateur  » comment  » faire ce qu’il doit faire. C’est le rôle de l’algorithme informatique.

Les algorithmes informatiques fonctionnent par le biais d’entrées (input) et de sortie (output). Ils reçoivent l’input, et appliquent chaque étape de l’algorithme à cette information pour générer un output.

Par exemple, un moteur de recherche est un algorithme recevant une requête de recherche en guise d’input. Il mène une recherche dans sa base de données pour des éléments correspondant aux mots de la requête, et produit ensuite les résultats.

Les ordinateurs ne comprennent pas le langage humain, et un algorithme informatique doit donc être traduit en code écrit dans un langage de programmation. Il existe de nombreux langages tels que Logo, Scrach, Python, R… chacun présente des spécificités et convient davantage à un cas d’usage spécifique.

A quoi servent les algorithmes ?

algorithme à quoi sert

Les algorithmes ont d’innombrables cas d’usage. Dans le domaine de la technologie et de l’informatique, lorsqu’un développeur crée un programme, il crée en fait un ensemble d’algorithmes. En effet, un programme informatique est un ensemble de commandes données à la machine, écrites dans un langage spécifique, afin d’effectuer une série d’opérations spécifiques pour obtenir un résultat.

Sachant qu’un ordinateur est (encore) incapable de comprendre le langage humain, le programmeur utilise un langage de programmation. Ce langage sert de passerelle entre le langage humain et le langage que la machine peut comprendre. Grâce à cet outil, le programmeur peut créer une série d’instructions que l’ordinateur peut  » comprendre « .

Les différents types d’algorithmes

Un algorithme comprend une suite d’instructions pouvant être regroupées ou enchaînées de diverses manières. Il est possible de distinguer 3 types d’algorithmes selon la structure qu’ils présentent.

Boucle 

Il arrive qu’il faut exécuter les mêmes commandes à un nombre de reprises variable, et ce, en fonction des entrées de l’algorithme. Pour cette catégorie, le processus s’exécute à répétition en respectant des conditions précises. Elle se traduit par des problèmes sous forme de « oui » et de « non ». Il faut cependant veiller à ce que le processus aboutisse après avoir effectué le nombre de boucles requis par la condition. Cette forme d’algorithme est aussi appelée « type de répétition ».

Branchement

Cette forme est illustrée par la condition « Si ». Si la condition de départ est correcte, la sortie correspondra à A. Dans le cas contraire, le résultat sera B. Ce genre d’algorithme s’appelle également « modèle de sélection ».

Séquence 

La séquence constitue le type le plus simple pour enchaîner les instructions qui composent une fonction. Cette forme se distingue par des séries d’étapes, qui seront exécutées les unes après les autres.

Quelques exemples bien connus

algorithme google pagerank

Pour mieux bien comprendre ce qu’est un algorithme, jetons un coup d’œil à quelques exemples très célèbres qui sont couramment utilisés par une bonne partie de l’humanité.

Tout d’abord, évoquons le « PageRank » de Google. Il s’agit d’un ensemble d’algorithmes utilisés par Google pour déterminer l’importance des documents indexés par son moteur de recherche web. Ainsi, lorsqu’un internaute effectue une recherche sur Google, il constitue l’un des éléments qui déterminent l’ordre d’affichage des résultats. Le PageRank constitue sans aucun doute l’algorithme le plus utilisé dans le monde.

Un autre exemple concerne la Timeline de Facebook. En effet, le contenu que Facebook affiche sur le fil d’actualité des utilisateurs est choisi par un ensemble d’algorithmes. Ces algorithmes décident du contenu à afficher en fonction de divers paramètres. Par exemple, les goûts personnels de l’utilisateur, ses réactions à des contenus précédemment publiés et bien d’autres encore.

Les algorithmes de négociation à haute fréquence constituent également un autre exemple. Ceux-ci sont utilisés par les plus grandes institutions financières du monde pour leur permettre de placer des ordres sur le marché. Ils se basent sur le profit qu’ils espèrent réaliser et sur les conditions du marché à un moment donné. Ces algorithmes ont désormais plus d’influence sur l’économie mondiale que les traders humains. En outre, ils sont responsables du mouvement de milliards de dollars chaque jour.

Le dernier exemple concerne l’algorithme Round Robin. Il s’agit d’un algorithme très utilisé dans le domaine de l’informatique. En effet, il permet aux ordinateurs de déterminer les tâches qu’ils doivent effectuer en premier. En règle générale, cet algorithme détermine le temps que le processeur va consacrer à chaque tâche en cours.

Algorithmes et Machine Learning

Les algorithmes de Machine Learning constituent une catégorie spécifique d’algorithmes. Plutôt que de recevoir des instructions spécifiques sur la tâche à effectuer, ils sont capables  » d’apprendre  » à partir de données.

On les utilise aujourd’hui massivement pour créer des moteurs de recommandations, effectuer des prédictions ou analyser des données. En se basant sur les données qui lui sont fournies en exemple, l’algorithme de Machine Learning peut prendre de meilleures décisions.

Ces algorithmes sont aujourd’hui omniprésents sur internet. Ce sont eux qui déterminent ce que vous voyez sur votre fil d’actualité Facebook, les publicités qui apparaissent sur votre boîte Gmail, ou les films et séries que Netflix vous recommande.

Il existe une large variété d’algorithmes utilisés pour le Machine Learning. On peut les regrouper en plusieurs catégories distinctes.

Dans le cas des algorithmes d’apprentissage supervisé, les données d’input sont appelées données d’entraînement et sont étiquetées au préalable par des humains pour indiquer à la machine à quoi elles correspondent.

Le modèle est entraîné à partir de ces données, et doit parvenir à réaliser des prédictions exactes. Le processus d’entraînement continue jusqu’à ce que le niveau de précision désiré soit atteint. En guise d’exemples, on peut citer les algorithmes de régression logistique et le réseau de neurones à rétropropagation.

Dans le cas de l’apprentissage non-supervisé, les données d’input ne sont pas étiquetées et n’ont pas de résultat connu. Le modèle doit lui-même observer des structures et des tendances dans les données. Il peut s’agir par exemple de réduire la redondance via un processus mathématique, ou d’organiser les données par similarité.

Ce type d’apprentissage est utilisé pour résoudre des problèmes de clustering, de réduction de dimensionnalité ou d’apprentissage des règles d’association. En guise d’exemple, on peut citer les algorithmes Apriori et K-moyennes.

Enfin, dans le cas de l’apprentissage semi-supervisé, les données input sont un mélange d’exemples étiquetés et non étiquetés. Le problème à résoudre est indiqué, mais le modèle doit organiser lui-même les données pour réaliser des prédictions. Ce type d’apprentissage est utilisé pour la classification et la régression.

On peut aussi regrouper les algorithmes par similarité dans leur fonctionnement. Parmi les grandes catégories, on peut citer les algorithmes de régression, de régularisation, les arbres de décision, les algorithmes bayésiens ou encore les algorithmes de clustering.

Il existe aussi des algorithmes d’apprentissage de règle d’association, des algorithmes de réseaux de neurones artificiels, de Deep Learning (apprentissage profond), et de réduction dimensionnelle.

Ces familles d’algorithmes comptent parmi les plus utilisées pour le Machine Learning. Il en existe toutefois beaucoup d’autres, et certains algorithmes appartiennent à plusieurs catégories à la fois.

Quelle est la différence entre algorithme et programme ?

En général, les médias ne parlent que d’algorithmes et de données. Or, les calculs sont effectués par des programmes qui fonctionnent sur des ordinateurs, et non des algorithmes.

En fait, un algorithme constitue un élément abstrait permettant de définir un calcul. Il s’exprime dans un langage mathématique et peut donc être analysé comme tel. Au contraire, un programme informatique constitue un élément concret, de taille souvent importante. Il s’écrit dans un langage de programmation qui cherche à humaniser les langages cryptés des machines. Il reste à un stade de précision beaucoup plus élevé que les algorithmes. En outre, un programme traduit rarement un algorithme unique. La plupart des programmes en utilisent plusieurs.

Comme le microprocesseur obéit parfaitement aux ordres qui lui sont donnés, les erreurs de programmation ne constituent jamais des défaillances, mais seulement des anomalies liées à la programmation humaine. Il est très difficile de repérer et de résoudre ces bugs en pratique. En fait, les analyses ne permettent que de les trouver, mais pas de prouver leur absence.

De plus, les failles de sécurité informatique proviennent fréquemment de micro-bugs qui ne sont pas fonctionnels et qui ne peuvent être trouvés par les contrôles habituels. Il devient donc indispensable de montrer qu’il n’y a pas de bogues dès qu’un programme accomplit des tâches importantes. Cependant, il est plus compliqué de prouver l’exactitude des algorithmes sur le plan théorique.

Les algorithmes de chiffrement de données

Les algorithmes sont utilisés pour le chiffrement des données ou des lignes de communication. Ceci permet de protéger les données en cas de vol ou d’intrusion sur le système sur lequel elles sont stockées.

Pour y parvenir, on utilise des algorithmes mathématiques. L’algorithme reçoit les données en guise d’input, et les convertit dans un autre format en guise d’output. Une fois chiffrées, les données peuvent ressembler à un texte composé de symboles aléatoires ou même à une image sans rapport avec le contenu d’origine.

Les algorithmes et l’automatisation

Un autre cas d’usage des algorithmes est celui des logiciels d’automatisation. En effet, ces logiciels fonctionnent en suivant des règles pour compléter des tâches. Ils sont sont donc composés de multiples algorithmes.

Par exemple, un tel logiciel peut se charger d’extraire toutes les informations de facturation reçues via un email et de les transférer vers une feuille de tableur. Pour accomplir cette tâche, il est nécessaire de mettre en place une série de règles et de conditions à suivre : un algorithme.

Dans cet exemple, chaque email reçu fait office d’input. Les emails sont ensuite traités selon un processus par étapes afin de compléter la tâche

Le processus peut consister par exemple à scanner chaque email pour trouver des termes clés. Les messages contenant ces termes passent ensuite à l’étape suivante, et ainsi de suite afin d’identifier et d’extraire les données les plus pertinentes. L’output est l’information placée dans une feuille de tableur à la fin du parcours.

Autre exemple : de nombreux parieurs sportifs créent des algorithmes d’automatisation. Voici un exemple avec la chaîne YouTube TipStreet, qui explique même comment créer votre propre algo.

Limites et dangers

Les algorithmes offrent de nombreuses possibilités, mais restent de simples ensembles d’instructions. Ils sont créés par des humains, et peuvent donc présenter des failles.

Les programmeurs informatiques passent d’ailleurs beaucoup de temps à corriger des erreurs dans les algorithmes. À cause d’une simple faute, un algorithme peut produire des résultats inexacts. Malheureusement, ces erreurs ne sont pas toujours identifiées à temps.

Au-delà des erreurs, les algorithmes peuvent être biaisés par la perception ou même par la volonté des humains qui le créent. Prenons l’exemple d’un algorithme conçu pour le recrutement. Si la personne qui le crée considère (à tort) qu’un homme blanc est systématiquement un meilleur candidat qu’une femme de couleur, l’algorithme sera basé sur cette perception et donc biaisé.

Ce problème de biais est encore plus dangereux pour les algorithmes d’intelligence artificielle. Ces algorithmes se nourrissent des données qu’on leur fournit, et peuvent donc perpétuer les erreurs de perception et les biais du passé.

Par exemple, sachant que la plupart des entreprises de haute technologie manquent de diversité ethnique, un algorithme de Machine Learning pourra déduire à partir des données passées que les candidats issus de la diversité sont des profils à éviter.

C’est un véritable problème à l’heure actuelle, car les algorithmes biaisés perpétuent les discriminations. Les systèmes de reconnaissance faciale associent les personnes de couleur à des criminels, et les chatbots deviennent rapidement racistes. Plusieurs entreprises cherchent donc des solutions pour supprimer les biais des algorithmes d’IA…

Comment concevoir des algorithmes éthiques ?

Afin d’éviter les dérives liées aux algorithmes et à l’IA, il faut adopter de bonnes pratiques éthiques dès la conception. Pour y parvenir, il faut se concentrer sur plusieurs points d’une importance majeure.

Tout d’abord, il faut demander à quoi servira l’algorithme. L’application elle-même doit être éthique. Il arrive que les algorithmes et les systèmes d’IA soient utilisés à mauvais escient par d’autres personnes.

De nombreux scientifiques et développeurs du Machine Learning protestent l’utilisation immorale de leurs algorithmes. Par exemple, les employés de Microsoft se sont opposés à l’utilisation des casques de réalité augmentée HoloLens par l’armée américaine, tandis que les équipes de Google ont élevé la voix contre le développement d’armes automatiques.

Éviter que les données soient biaisées

En outre, il faut s’assurer que les données d’entraînement de l’algorithme ne sont pas biaisées. Ces données doivent être éthiques pour que l’algorithme le soit.

De nombreux algorithmes de Machine Learning utilisés aujourd’hui dans des produits commerciaux sont fortement biaisés en raison des données utilisées pour leur entraînement. Par exemple, Amazon a décidé de ne plus s’appuyer sur l’IA pour le recrutement, car son système était hautement discriminatoire.

Alors que la firme avait essayé de supprimer les indicateurs de genre du système pour éviter les biais, l’algorithme était toujours capable de les détecter. Ainsi, les données et le Machine Learning reflètent et amplifient souvent nos propres préjugés inconscients. Il est essentiel d’en tenir compte.

Outre les données, il faut aussi considérer les poids attribués aux différentes fonctions de l’algorithme. Lors de l’optimisation des pondérations, il faut tenir compte de l’éthique.

Enfin, les fonctionnalités et les caractéristiques des données analysées par l’IA doivent permettre un résultat éthique. Elles doivent fournir une représentation précise, afin d’éviter les mauvaises surprises par la suite.

En général, un point clé de l’éthique concerne la diversité au sein des équipes de développeurs. Le manque de diversité constitue un facteur important de biais dans les ensembles de données, tout comme il a conduit à des campagnes publicitaires maladroites en marketing.

Quel futur pour les algorithmes ?

algorithme futur

Il est difficile de prédire le futur des algorithmes. En revanche, il semble certain que le futur appartient aux algorithmes.

En effet, l’algorithme est au coeur de technologies émergentes révolutionnaires comme l’intelligence artificielle, le Machine Learning, les véhicules autonomes ou les assistants virtuels. Dans les années à venir, on peut s’attendre à ce que de nouvelles technologies reposant sur les algorithmes voient le jour

1 commentaire

  1. Bonsoir Bastien est ce que les l application de téléphone { internet quoi} site de rencontres vente criptomonaie fonctionne avec des algorithme et si oui es que tu peux m expliquer la différence entre les deux

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Pin It on Pinterest