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 qu’un algorithme a pour but de résoudre un problème et donc de produire un résultat. Si l’on souhaite créer un algorithme pouvant fonctionner dans le monde réel, il est donc nécessaire d’inclure des instructions lui permettant de s’adapter aux différentes situations auxquelles il pourra être confronté. C’est 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 débute au IXème siècle, avec l’astronome et mathématicien Muhammad ibn Mūsa al-Khwarizmī.

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

Au fil des siècles, sa renommée s’est accrue dans le monde entier. En dehors du Moyen-Orient, son nom a été déformé pour devenir  » Algoritmi « . Cette version de son nom sera plus tard adaptée comme un terme anglais pour désigner les recettes par étapes que nous désignons comme  » algorithmes « .

Qu’est-ce qu’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 « .

Algorithme : quelques exemples bien connus

algorithme google pagerank

Afin de vous aider à mieux comprendre ce qu’est un algorithme, voyons maintenant quelques exemples très célèbres et couramment utilisés par une bonne partie de l’humanité.

On peut tout d’abord citer  » 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, lorsque vous effectuez une recherche sur Google, c’est l’un des éléments qui permettent de déterminer l’ordre dans lequel les résultats sont affichés. PageRank est sans conteste l’algorithme le plus utilisé du monde.

Un autre exemple est la Timeline de Facebook. En effet, le contenu que Facebook affiche sur votre fil d’actualité est choisi par un ensemble d’algorithmes. Ces derniers décident du contenu à afficher en fonction de différents paramètres tels que vos goûts personnels, vos réactions à du contenu précédemment proposé et bien plus encore.

Citons aussi les algorithmes de trading à haute fréquence. Il s’agit des algorithmes utilisés par les institutions financières les plus importantes du monde, afin de leur permettre de lancer des ordres sur le marché en fonction du bénéfice qu’ils espèrent obtenir et selon les conditions du marché à un moment précis. Ces algorithmes ont aujourd’hui plus d’influence sur l’économie mondiale que les opérateurs humains, et sont responsables de la circulation de milliards de dollars chaque jour.

En dernier exemple, évoquons l’algorithme de Round Robin. Il s’agit d’un algorithme largement utilisé dans le domaine de l’informatique, puisqu’il permet aux ordinateurs de déterminer quelles tâches ils doivent effectuer en priorité. En règle générale, cet algo détermine le temps que le processeur passera sur 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.

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 des algorithmes

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 est important d’adopter les bonnes pratiques éthiques dès la conception. Pour y parvenir, il convient de se concentrer sur plusieurs points d’importance majeure.

Tout d’abord, il convient de se demander à quoi servira l’algorithme. Cette application elle-même doit être éthique. Il arrive que des algorithmes et systèmes IA soient utilisés de façon détournée par des tiers.

Les scientifiques et développeurs en Machine Learning sont aujourd’hui nombreux à protester en cas d’utilisation immorale de leurs algorithmes. par exemple, les employés de Microsoft ont protesté contre 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 automatisées.

Il est aussi très important de s’assurer que les données d’entraînement de l’algorithme ne soient pas biaisées. Les données elles-mêmes doivent être éthiques, pour que l’algorithme le soit.

De nombreux algorithmes de Machine Learning utilisés aujourd’hui dans des produits commerciaux sont lourdement biaisés à cause des données exploitées pour leur entraînement. Par exemple, Amazon a décidé d’arrêter de se baser sur l’IA pour ses recrutements, 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 tout de même capable de les détecter. Ainsi, les données et le Machine Learning reflètent et magnifient bien souvent nos propres biais inconscients. Il est indispensable d’en tenir compte.

Outre les données, les  » poids  » assignés aux différents fonctions de l’algorithme doit aussi être pris en compte. Pendant l’optimisation des  » weightings « , il est important de prendre en considération l’éthique.

Enfin, les caractéristiques et features de données analysées par l’IA doivent permettre un résultat éthique. Elles doivent offrir une représentation exacte, afin d’éviter les mauvaises surprises par la suite.

De manière générale, un point essentiel pour l’éthique est la diversité au sein des équipes de développeurs. Le manque de diversité contribue fortement au biais des jeux de données, tout comme il a pu donner lieu à des campagnes de publicité maladroites dans le domaine du 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. Les champs obligatoires sont indiqués avec *

Pin It on Pinterest