Algorithmes
Qu’est-ce que c’est et pourquoi c’est important ?
Un algorithme est une liste d'instructions détaillées visant à accomplir une tâche spécifique ou à résoudre un problème particulier. Effectivement, les algorithmes sont omniprésents. Une recette de soupe à l'oignon, par exemple, est un algorithme. Combinez tels et tels inputs pour générer un output. Les algorithmes fonctionnent fondamentalement de la même manière avec les ordinateurs. Qu'il s'agisse de convertir des chiffres en lettres pour pouvoir lire ce qui s'affiche votre tablette ou de recommander des stocks en fonction de votre sensibilité au risque, les algorithmes sont fondamentaux dans l'informatique moderne. Cette page se concentre sur les algorithmes informatiques.
Une brève histoire des algorithmes
Si la notion d'algorithme peut sembler être une nouvelle invention, le terme remonte en réalité à un millénaire, lorsque le mathématicien perse Muḥammad ibn Mūsā al-Khwārizmī (dont le nom latin est "Algoritmi") a réalisé d'importantes contributions en mathématiques. Le concept a été repris dans les années 1800 lorsque le mathématicien allemand Carl Friedrich Gauss a inventé un algorithme simple pour déterminer le jour de l'année civile où tombe Pâques.
Les algorithmes ont fait leurs débuts informatiques au milieu du 20e siècle, lorsque le célèbre informaticien britannique Alan Turing a élaboré une théorie sur la manière dont les machines pouvaient exécuter un ensemble complexe d'instructions. Bien que son algorithme rudimentaire de jeu d'échecs, intitulé "Turochamp", n'ait jamais battu un humain du vivant de Turing, il a constitué la base de ce que nous appelons aujourd'hui l'intelligence artificielle.
À mesure que la puissance de l'informatique s'est accélérée au cours des décennies suivantes, le besoin d'algorithmes plus complexes s'est également accru. Aujourd'hui, les algorithmes sont fondamentaux pour l'informatique moderne, car ils nous aident à conduire de A à B, à décider du prochain film à regarder ou même à tomber amoureux.
En essence, de nombreux programmes informatiques sont une séquence d'algorithmes écrits d'une manière compréhensible pour l'ordinateur.
L'analytique prédictive et l'IA offrent une meilleure expérience client
Les Orlando Magic ont utilisé les données des applications mobiles et les algorithmes d'apprentissage automatique pour personnaliser l'expérience des fans et multiplier par quatre les achats d'applications.
Les algorithmes dans le monde d'aujourd'hui
Comment fonctionnent les algorithmes
Les algorithmes doivent avoir cinq propriétés pour fonctionner :
- Inputs : Des données bien définies qui seront transformées pendant le calcul.
- Outputs : Les données résultant du calcul.
- Définition précise : Étapes de calcul spécifiques.
- Efficacité : Étapes de calcul réalisables.
- Finitude : Un nombre fini d'étapes.
Cela nous amène aux algorithmes basés sur les mathématiques et ceux basés sur les règles.
Algorithmes basés sur les mathématiques
Comme la plupart des algorithmes sont numériques par nature, il n'est pas surprenant que beaucoup soient basés sur les mathématiques. Prenons l'exemple le plus simple : 1 + 1 = 2. Il s'agit d'un algorithme mathématique dans lequel les 1 sont les inputs et le 2 est l'output. En extrapolant cet exemple, on obtient certains des algorithmes les plus importants utilisés aujourd'hui, notamment les algorithmes qui décomposent les signaux en fréquences, codent les ordinateurs et déterminent même le classement d'un site internet sur Google.
Algorithmes basés sur les règles
À mesure que nous apprenons de plus en plus sur l'IA, nous constatons que certaines choses ne peuvent pas être expliquées uniquement par des constructions mathématiques. Par exemple, si vous développez un logiciel analytique textuelle et que vous avez besoin d'un algorithme pour mettre un nom au pluriel, vous ne pouvez pas simplement ajouter un "S" à chaque nom. Pensez aux exceptions comme œil et yeux. Nous avons des règles pour ces occasions particulières. Les algorithmes basés sur des règles sont idéaux pour analyser des données contenant un mélange d'attributs numériques et qualitatifs.
Bien entendu, vous pouvez utiliser plus d'un type d'algorithme pour résoudre un problème donné – par exemple pour prédire le revenu d'une personne. Pour effectuer ce calcul, vous pouvez utiliser un algorithme mathématique dans lequel vous pondérez des variables telles que l'âge, le lieu de résidence, l'éducation, etc. Vous pouvez également utiliser un algorithme basé sur des règles qui prédit le revenu en fonction de l'âge et du code postal, par exemple. Alors, quelle est la meilleure solution ?
Cela nous amène à la mise en concurrence des algorithmes. On oppose souvent les algorithmes les uns aux autres pour voir lequel est le plus efficace. Pour en revenir à notre exemple de soupe, vous pouvez avoir des recettes concurrentes qui donnent toutes une soupe à l'oignon. Il en va de même avec les algorithmes informatiques. L'algorithme A est peut-être plus lent mais plus précis que l'algorithme B. Mais le B est plus facile à valider. Le bon algorithme pour une tâche donnée dépend des différents critères que vous utilisez pour l'évaluer. A-t-il accompli la tâche ? A-t-il accompli la tâche rapidement ? A-t-il accompli la tâche efficacement ?
Les types d'algorithmes les plus courants
Les algorithmes peuvent être classés en deux catégories : les algorithmes de base et les algorithmes avancés.
De base
Vous ne vous en rendez peut-être pas compte, mais les algorithmes sont à l'origine des fonctions informatiques les plus élémentaires. Voici un aperçu de trois algorithmes de base largement utilisés aujourd'hui.
Algorithmes de compression
Lorsque la plupart des gens utilisent un ordinateur, ils font quelque chose de basique, comme lire un article ou regarder des images. Ceci grâce à des algorithmes qui compressent les fichiers afin qu'ils puissent être visualisés, partagés et restaurés. Pensez à un fichier JPG. Lorsque vous regardez une photo de la nouvelle cabane de votre neveu, vous regardez en fait une image bitmap qui a été soumise à un algorithme de compression avec perte pour convertir des millions de représentations numériques de pixels en l'image qui donne le sourire sur votre écran.
Algorithme de recherche binaire
La recherche binaire est un algorithme de recherche rapide qui fonctionne sur la base du principe "diviser pour régner". Supposons que vous recherchiez 2020taxreturns.PDF sur votre ordinateur portable. Avec une recherche binaire, l'algorithme choisit une observation au milieu de l'ensemble de données et vérifie si l'identifiant du sujet trouvé est l'identifiant du sujet souhaité. Si c'est le cas, l'algorithme s'arrête. Si ce n'est pas le cas, puisque le tableau est trié, l'algorithme peut déterminer si l'observation souhaitée se trouve au-dessus ou au-dessous de celle trouvée et redéfinir la plage de recherche pour qu'elle corresponde à la moitié du fichier d'origine. L'algorithme choisit ensuite l'observation située au milieu de la nouvelle plage de recherche, et le processus se répète jusqu'à ce que le PDF soit trouvé. Oui, vous n'avez pas payé suffisamment d'impôts l'année dernière.
Algorithme de multiplication
Les algorithmes sont encore plus simples que les précédents. En fait, l'un des algorithmes les plus populaires est celui qui multiplie les nombres. Presque tout ce que vous faites avec un algorithme nécessite la multiplication de deux nombres ou plus. Même dans un domaine basé sur les mots comme l'analyse de texte, vous évaluez des éléments tels que la fréquence des mots et la fréquence des documents, et il y a souvent un multiplicateur à l'intérieur.
Avancé
À l'opposé, on trouve les algorithmes avancés. Ils s'appuient sur les algorithmes de base en y apportant de nouvelles idées. De plus, ils impliquent souvent le traitement d'énormesensembles dedonnées.
Algorithmes d'apprentissage automatique
L'apprentissage automatique utilise des algorithmes qui reçoivent et analysent des données d'entrée pour prédire des valeurs de sortie dans une fourchette acceptable. Ce qui est intéressant avec ces algorithmes, c'est qu'ils apprennent d'autres algorithmes. Au fur et à mesure que de nouvelles données sont transmises aux algorithmes d'apprentissage automatique, ceux-ci apprennent et optimisent leurs opérations afin d'améliorer les performances, développant ainsi leur intelligence au fil du temps. Il existe quatre types d'algorithmes d'apprentissage automatique: supervisé, semi-supervisé, non supervisé et de renforcement.
Algorithmes d'apprentissage profond
Les algorithmes d'apprentissage profond utilisent plusieurs couches pour extraire progressivement des caractéristiques de niveau supérieur à partir des données d'entrée. Emulant le cerveau humain, ces algorithmes tentent de tirer des conclusions similaires à celles des humains en analysant continuellement les données à l'aide de ce que l'on appelle des réseaux neuronaux artificiels. Les résultats de ces algorithmes complexes peuvent changer la vie, par exemple en permettant la conduite de voitures autonomes ou en traduisant des livres de l'anglais à l'arabe en un clin d'œil.
Algorithmes d'amplification du gradient
Les modèles prédictifs aident les entreprises à prévoir les ventes et à fixer le prix des marchandises en fonction de la demande prévue. Le gradient boosting est un algorithme puissant pour construire ces modèles prédictifs. Il permet de transformer les arbres de décision faibles en arbres de décision forts, améliorant ainsi la précision d'une prédiction. L'algorithme est connu pour sa rapidité et sa précision, en particulier avec des ensembles de données complexes et de grande taille.
Quel algorithme utiliser ?
Les débutants cherchent souvent à savoir quel algorithme utiliser. La réponse dépend de nombreux facteurs, notamment :
- La taille, la qualité et la nature des données.
- Le temps de calcul disponible.
- L'urgence de la tâche.
- Ce que vous voulez faire avec les données.
Même un data scientist expérimenté ne peut pas dire quel algorithme sera le plus performant avant d'en avoir essayé plusieurs. Lors du choix d'un algorithme, il est judicieux de prendre en compte les aspects suivants : précision, temps d'entraînement et facilité d'utilisation. De nombreux utilisateurs privilégient la précision, tandis que les débutants ont tendance à se concentrer sur les algorithmes qu'ils connaissent le mieux. Lorsqu'on vous présente un ensemble de données, la première chose à considérer est la façon d'obtenir des résultats, quelle que soit leur présentation. Une fois que vous avez obtenu ce que vous voulez et que vous vous êtes familiarisé avec les données, vous pouvez choisir de passer plus de temps à utiliser des algorithmes plus avancés pour renforcer votre compréhension des données, et donc améliorer davantage les résultats. En savoir plus sur le choix des algorithmes.