Vous en avez tous entendu parler et vous êtes sans doute nombreux à vous y intéresser sans vraiment comprendre de quoi il est question : un #Thread Intelligence Artificielle pour débutants s’impose.
Définir ce que nous entendons par IA, c’est très compliqué (qu’est-ce que vous entendez par « intelligence » et par « artificiel » ?).
Concrètement, au regard de là où nous en sommes, on devrait sans doute se contenter de parler de réseaux de neurones et de *machine learning*.
C’est-à-dire que l’intelligence artificielle est un concept générique aux contours relativement flous (pardon Alan Turing !) mais que les réseaux de neurones et le machine learning sont, désormais, une science à part entière.
Ce qui nous amène à la deuxième considération importante : on ne parle pas ici d’un outil (comme la régression linéaire) ni même d’une classe d’outil (les régressions par exemple) mais d’une science à part entière (comme, du coup, les statistiques).
C’est une science qui repose sur 3 piliers : des maths (basiques), de l’informatique (puissante) et, même s’il est encore trop tôt pour en parler, quelque chose d’autre que nous appelons aujourd’hui « propriétés émergentes des systèmes complexes ».
(C’est-à-dire que les réseaux de neurones tendent à développer des « compétences » bien au-delà de ce pour quoi ils avaient été prévus ; ce qui, en soi, constitue un domaine de recherche à part entière.)
Enfin, 3e considération : notre objectif ici est de permettre à tous nos lecteurs de comprendre de quoi il est question. C’est-à-dire que ce qui suit relève de la vulgarisation à l’usage des débutants en la matière.
Clairement : si vous êtes expert de ces choses-là, vous allez bondir sur votre chaise plus d’une fois (au moins 3 fois). On sait : ce sont juste des raccourcis purement pédagogiques !
(Ceci étant dit, on vous propose ci-dessous des notations d’un réseau aux normes relativement hétérodoxes qui ne sont pas sans intérêt...)
Bref, allons-y :
On a trois types d’objets (‘red’, ‘blue’ et ‘green’) que nous ne savons distinguer les uns des autres que par 3 variables numériques (x, y et z).
Graphiquement, nos données ressemblent à ça :
Notre objectif est de développer un modèle qui permette de classer ces objets par couleur sur la seule base de x, y et z.
Il y a évidemment des tas de façons plus efficaces de faire ça, mais, pour les besoins de la cause, on va utiliser un réseau de neurones.
Après une brève discussion, nous avons décidé de structurer notre modèle comme suit :
(Note aux spécialistes : cette architecture n’est clairement pas optimale ; son seul intérêt est pédagogique.)
Ok : là, c’est le moment où vous avez besoin d’explications.
Ça fonctionne de gauche à droite. À gauche, nous avons des valeurs pour x, y et z (les inputs) et à droite nous cherchons à obtenir des scores qui nous disent si nous avons affaire à un ‘red’, un ‘blue’ ou un ‘green’.
Nous avons structuré notre modèle en 4 layers (des couches de « neurones ») : un ‘input layer’ (à gauche), un ‘output layer’ (à droite) et deux ‘hidden layers’ (au milieu) — c’est le minimum pour que notre modèle puisse être qualifié de ‘deep learning’.
De la même façon, nous avons constitué les hidden layers de 3 et 2 neurones respectivement pour simplifier le schéma : n’y voyez pas un choix technique et gardez en tête que les hidden layers des vrais modèles comportent beaucoup plus de neurones.
Arbitrairement aussi, ce modèle est dit ‘feed forward’ parce que le processus de calcul fonctionne dans un seul sens (on ne revient jamais en arrière) et ‘fully connected’ parce que chaque neurone est connecté à tous les neurones des couches précédentes et suivantes.
L'architecture en vogue est appelée ‘Transformers’ pour les connaisseurs ;)
Notez aussi que, habituellement, les « neurones » du input layer sont représentés comme les autres (avec des ronds). C’est, à notre avis, trompeur en ce sens que, justement, ce ne sont pas de « vrais neurones » mais de simples « réceptacles à données ».
Ceci étant dit, pour bien comprendre comment ça fonctionne, on va se concentrer sur un neurone en particulier. Par exemple, celui-là :
Chaque flèche pleine dans notre schéma est un paramètre, c’est-à-dire un nombre (ici w_1, w_2, w_3 et b), par lequel nous multiplions le nombre qui est au départ de la flèche (dans notre exemple : x, y, z et 1).
Il existe deux sortes de paramètres : les ‘poids’ (notés w_i) qu’on multiplie avec les outputs de la couche précédente et les ‘biais’ (notés b) que nous ne multiplions ici par 1 que pour homogénéiser les notations (tout le monde ne fait pas ça).
La valeur de sortie d’un neurone (son « activation », notée a) est simplement obtenue avec le calcul suivant :
(*) Notez qu’à l’intérieur de R() c’est un simple produit matriciel.
Où R() désigne la fonction ReLU*, très utilisée en computer vision. Elle permet d’introduire de la non-linéarité dans le modèle.
(*) En notant x le résultat du produit matriciel elle renvoi simplement ReLU(x)=max(0,x).
Un petit exemple sous Excel vous permettra de mieux apprécier la simplicité du calcul :
Vous l’avez deviné : tous les neurones vont faire exactement la même chose à ceci près que, pour les couches suivantes, les valeurs d’entrées ne sont plus x, y et z mais les activations des couches précédentes.
À la fin du processus, on obtient donc les activations des 3 neurones de l’output layer que nous allons utiliser comme des scores : le score le plus élevé des trois déterminera si nous avons affaire à un ‘red’, un ‘blue’ ou un ‘green’.
Voici le code Python de notre modèle :
Une fois l’architecture du réseau définie (ce qui dépend du type de problème que vous souhaitez traiter), le but du jeu consiste à ajuster les paramètres de telles sorte que les prédictions des scores de sortie soient aussi justes que possible.
C’est là qu’intervient le fameux machine learning. Au début, tous les paramètres sont fixés de façon purement aléatoire (évidement les scores finaux sont, de fait, aléatoires).
Ce que nous allons faire, c’est donner des exemples au modèle : un grand nombre de valeurs pour x, y et z ainsi que les scores attendus sous la forme {score_red, score_blue, score_green}. Pour un objet ‘blue’, par exemple, on voudrait quelque chose comme {0, 1, 0}.
Exemples après exemples, on compare le résultat obtenu avec le résultat attendu (avec une « fonction de coût »).
Tant que la prédiction n'est pas correcte, on optimise les paramètres en calculant l'influence de chacun sur les scores finaux (l'algorithme de backpropagation).
Lorsque notre réseau de neurone voit une première fois l'intégralité de nos données, on dit qu'il a fait une « époque » (*epoch*), généralement on présente plusieurs fois le jeu de données pour améliorer les performances.
Dans notre cas, nous avons entrainé le modèle avec 2'500 exemples sur 2 époques et obtenu ainsi des paramètres qui permettent de prédire correctement la nature de nos objets dans plus de 98% des cas (et ce, avec une architecture qui n’est pas optimisée !)
Évidemment, les modèles dont vous entendez parler depuis quelques mois (GPT-4) sont beaucoup plus complexes mais, dans les grandes lignes, c’est la même logique : une architecture et une procédure d'optimisation des paramètres.
Et la grande surprise, parce que c’en est vraiment une, c’est que ces choses d’apparence assez rudimentaire sont capables de prouesses tout à fait surprenantes, notamment par ces fameuses « propriétés émergentes » -- Domaine de recherche qui bat son plein…
C'est sans doute l’aspect le plus fascinant des réseaux de neurones : avec des opérations basiques et une grosse quantité de données, on arrive maintenant à passer les examens du barreau et poser des diagnostics médicaux.
Bref, même s’il ne faut évidemment pas prendre à la légère les risques que cette technologie présente, nous vivons un moment scientifique absolument fascinant. #Fin
Pour avoir bossé une bonne vingtaine d’année dans la finance, je suis en mesure de vous dire que le meilleur film jamais réalisé par Hollywood sur la (soi-disant) crise des subprimes, c’est #TheBigShort. #Thread
Le meilleur moment, pour un type comme moi qui a assisté en direct-live à ce à quoi il a assisté (en direct-live et avec quelques années d’études sur le sujet), c’est celui-là :
Ok, Margot Robbie dans son bain moussant à quelques arguments à faire valoir. Reste que son explication est un peu courte — c’est pour ça que vous devriez vous attendre à ce que la mienne soit un peu plus longue (entre autres choses déplaisantes).
Une question récurrente qui se pose dans le débat public est celle de la répartition de la richesse créée par notre économie entre travail et capital. Pour tenter d’y répondre, on va avoir recours aux données du comptable national. Par @ordrespontane#Thread
La difficulté, c’est que la comptabilité nationale est un exercice extrêmement complexe qui manipule des concepts souvent mal compris et, notamment, différents de ceux que vous retrouverez en comptabilité privée.
Un point de départ classique, pour répondre à notre question initiale, c’est le tableau 1.107 que vous trouverez ci-dessous.
Pour illustrer le propos, on va utiliser les données de l’Insée pour l’année 2021 (libre à vous de généraliser). insee.fr/fr/statistique…
@ordrespontane L’histoire commence mi 2019 : sentant l’économie américaine au bord de la récession, la Federal Reserve (i.e. la banque centrale des États-Unis) procède comme d’habitude en faisant baisser le niveau des taux d’intérêts à court terme.
@ordrespontane Sur le marché interbancaire, celui où les banques s’échangent de l’argent entre elles et celui que pilote effectivement la Fed, le taux moyen passe d’environ 2.4% durant l’été 2019 à pratiquement zéro à partir d’avril 2020.
Le problème de notre système de retraite par répartition, pour dire les choses simplement, c’est qu’il a été pensé pour un nombre de cotisants par retraité élevé et stable dans le temps. Problème : ce n’est pas ce que l’avenir nous réserve. #Thread
Dans les années 1960, par exemple, on pouvait compter plus de 4 personnes qui cotisent pour financer une retraite. C’est ce qui permettait d’offrir des taux de remplacement (droits à retraite bruts divisés par le salaire brut) élevés.
Sauf que depuis, le nombre de retraités a considérablement augmenté pour un nombre de cotisants globalement stable. Au dernier pointage, en 2021, on comptait 16.8 millions de retraités pour 28.8 millions de cotisants : un ratio de 1.71.
Pourquoi vous ne devriez utiliser que de très bons mots de passe et comment faire pour rendre ça aussi peu pénible que possible. Un #Thread par @ordrespontane.
@ordrespontane Ce contre quoi vous cherchez à vous prémunir, c’est une attaque par la force brute — c’est-à-dire un algorithme conçu pour tester toutes les combinaisons de caractères possibles jusqu’à ce qu’il trouve votre mot de passe.
@ordrespontane Un programme qui tenterait de pénétrer votre compte de cette façon mettrait énormément de temps à y parvenir (parce que le processus de validation de vos paramètres de connexion prend du temps) et finirait sans doute par se faire bloquer par une procédure de sécurité.