SIRIGPT

Avez-vous déjà rêvé de coupler votre assistant vocal préféré sur votre téléphone avec un agent conversationnel dopé à l’intelligence artificielle tel que CHAT GPT ?  

Sachez que sur l’IPHONE c’est possible à moindre effort.

Voici un petit tutoriel malin de 01net que j’ai trouvé judicieux de poster sur mon blog. Pour réaliser cela il vous faudra une clé d’application tierce interfacée (API pour les amoureux des acronymes) issue de la plate-forme OpenAI et l’application présente par défaut sur iOS « Raccourcis ».

Je vous présente rapidement l’application raccourcis pour ceux qui ne la connaissent pas : Cette application a pour but d’automatiser via une génération de scripts adaptés à un large éventail d’actions les tâches que vous souhaitez effectuer régulièrement sur votre IPHONE.

C’est très puissant mais trop peu utilisés par le monde commun.

Un développeur passionné, j’ai nommé Nicolo Diamante a réussi à intégrer la puissance de Chat GPT à l’ergonomie vocale de Siri ce qui fait passer la session avec le chatbot du prompt au vocal. Il l’a baptisé SiriGPT. D’un côté cela reste moins optimal qu’une session avec un clavier mais plus divertissant, mobile et ludique.

Une fois que vous aurez téléchargé SiriGPT sur ce lien

et que vous l’aurez ajouté au package de macros de « Raccourcis » vous aurez besoin d’un compte OPENAI et de générer une clé d’API comme ça :

Copiez là dans un fichier texte à part et copier de fichier sur votre espace Icloud pour pouvoir la coller plus tard dans l’application « Raccourcis ».

Pour finir ouvrez l’application Raccourcis, recherchez votre SiriGPT dans votre catalogue de raccourcis et ajoutez la clé dans la deuxième macro qui est un champs texte analysé tout de suite par une condition comme ceci :

Entrainez-bien Siri au niveau de la reconnaissance vocale pour une expérience optimale avec l’agent conversationnel.

N’oubliez pas que tout ce que toute question ou information que vous posez ou envoyez à CHATGPT est stocké dans sa mémoire et analysé par conséquent.

Récemment j’ai lu un article intéressant qui défendait le point de vue suivant sur lequel je suis assez d’accord : ce n’est pas l’intelligence artificielle qui va prendre votre emploi mais les personnes qui savent l’utiliser de manière productive.

La technologie RSS

Lors de mon premier stage en entreprise, je me rappelle d’un mot de ma tutrice qui m’avait fait part de l’importance de faire une veille hebdomadaire pour se tenir informé du monde en constante évolution dans lequel nous vivons.

Peu de temps après je découvrais par curiosité un service de Google qui était d’une puissance sans égale j’ai nommé Google Reader fermée en 2013 capable d’indexer tout le contenu d’un site web simplement en entrant l’URL du site d’information en question. Ce service était basé sur la fameuse technologie Really Simple Syndication ou RSS.

La technologie RSS est elle même basée sur le langage XML qui sont tous les deux issues du W3C l’association créée par Tim Berners Lee, l’inventeur du protocole Hypertexte et du Web dont j’ai déjà parlé dans cet article.

Pour plus d’informations sur le schéma du RSS :

https://www.rssboard.org/

Le langage XML pour Extensible Markup Language est un langage à balise tout comme le HTML sauf qu’elle est sous forme de nœuds c’est à dire des balises imbriquées les unes dans les autres et que le nom de chaque balise peut-être personnalisé à sa guise pour structurer les données.

Il existe plusieurs versions de la technologie RSS : Le RSS 1, le RSS 2 (le plus utilisé aujourd’hui) et une technologie plus récente standardisé par l’IETF (encore eux) ATOM 1.

Dans RSS des balises XML ont été définies.

La différence entre RSS 2 et ATOM est négligeable, les balises qui structurent la page XML sont très similaires.

@Wikipedia

Comment cela marche RSS ? Pour faire simple, un flux RSS est une page de contenu structurée via le langage XML véhiculée par le protocole HTTP dont on a déjà parlé.

Ce contenu est très facilement indexé par un agrégateur de news dont le code permet : récupération , mise en forme et organisation de tous les flux de vos sites préférés pour faire une veille rapide et efficace. Nous reviendrons aux différents agrégateurs à la fin de l’article.

Sachez qu’il existe un autre langage que XML développé il y a peu basé sur la technologie serveur Javascript Object Notation j’ai nommé JSON (Ryan Dahl) baptisée JSON Feed.

Quels sont les agrégateurs de sites  ? Je n’en citerai que deux :

Le meilleur pour une technologie propriétaire et fermée qui compte le plus d’utilisateurs est baptisé Feedly. Il est utilisé par plus de 18 millions de personnes.

Il est très efficace, ergonomique, simple d’utilisation, complet et puissant. Je l’utilise sur mon mobile et il vous suffit d’une adresse de courrier électronique pour pouvoir l’utiliser gratuitement même si l’ajout récent de nouvelles fonctionnalités liées à l’IA (Ex : Construction de flux à partir d’un lien) nécessite la version pro ou business qui sont payantes.

Si vous êtes sur Linux, le meilleur est certainement RSS Guard.

Il y’a de cela une bonne dizaine d’années j’avais pu ajouter les thèses pluridisciplinaires ouvertes de l’INRIA : l’institut national de recherche en informatique et en automatisation qui est un corps d’état public de recherche.

Les sites wordpress génèrent tous un flux RSS dont le XML se trouve juste derrière la racine du site en rajoutant /feed/

Ex : https://sciencetic.fr/feed/

C’est informatif si vous souhaitez juste consulter le code XML mais des agrégateurs comme Feedly le savent et vous pouvez directement entrer l’adresse du site dans l’agrégateur ou même chercher des flux référencés par domaine via des hashtags #

Pour détecter ou sont loggés les flux RSS d’un autre site d’information culturelles ou scientifiques par exemple celui du point, voici un petit tutoriel :

1 / Rendez-vous sur lepoint.fr qui est la page de base en somme la page des actualités :

2/ Ouvrez la console développeur de votre navigateur favori avec F12,

3/ Sélectionnez « Mise en Page » et faites une recherche avec « Ctrl + F » : tapez rss

4/ Après href pour hypertext référence vous trouverez l’URL à rajouter derrière lepoint.fr/ pour accéder au code XML du flux RSS : Dans l’exemple https://lepoint.fr/rss.xml

Site du Point

Ajoutez cette URL https://lepoint.fr/rss.xml à votre agrégateur et le tour est joué vous avez désormais accès à un flux qui récapitule toutes les dernières informations des actualités du site du Point :

Version vidéo du tutoriel :

Si ce n’est pas clair voici une version vidéo du tutoriel notamment pour les derniers dépôts des archives ouvertes pluridisciplinaires de l’INRIA :

Institut National de Recherche en Informatique et Automatisation

Voilà je ne veux pas faire trop long et j’espère que cela va vous permettre de découvrir l’univers des agrégateurs de news que ce soit sur mobile ou sur ordinateur et la puissance de cette technologie d’information surtout sur un téléphone portable !

Pour finir, j’insisterai sur un dernier point : lorsque vous faites votre veille qu’elle soit informative ou scientifique, n’oubliez pas de toujours faire appel à votre analyse critique. Prendre du recul surtout à l’époque de la guerre d’information, des complotistes, des articles écrits par des algorithmes et des fake news.

Ainsi, lorsque quelque chose vous paraît incongru, cherchez l’auteur, et croisez les sources !

La Fonction logarithme

Je suis heureux de vous apprendre que j’ai commencé à me former sur LATEX (lire l’article précédent) et que c’est facile et puissant. Les images des équations intégrées à cet article ont été formalisés grâce à cet outil.

D’ailleurs le meilleur site pour se former en ligne qui dispose d’un compilateur en temps réel : https://overleaf.com/

Je vous conseille de lire en préambule l’article précédent sur les systèmes numériques : vous comprendrez mieux l’utilité de la fonction logarithme.

Passons aux choses sérieuses :

Littéralement, la fonction logarithme est le nombre de puissances que contient un nombre calculé en fonction d’un autre nombre appelé base.

Prenons un nombre voisin du nombre de ports que l’on peut ouvrir sur un ordinateur : 65535

Par un rapide calcul mental :

Le PI Majuscule est l’équivalent de Sigma ou lettre de somme pour les produits

En effet 65536 est divisible par 4 car ses deux derniers chiffres forment 36 qui se décompose en 9 fois 4. Si il est divisible par 4 il est donc divisible par 2, on aurait pu s’en douter le nombre de ports d’un ordinateur étant codé en binaire ! Ainsi on calcule facilement le logarithme.

Réalisons maintenant à partir de ces résultats une simple équation logarithmique :

Equation simple de changement de base


Voici des équations en passant par trois bases différentes de la base 2 à la base 4, à la base 16.

On change facilement de base dans cet exemple car on passe d’un carré à un carré, le résultat d’un logarithme étant basé sur une fonction puissance ce serait plus difficile de faire une équation en changeant la base vers une base multiple comme 32. Pour réaliser l’égalité on juste placé un coefficient devant la fonction en l’occurrence 2 et 4.

Maintenant, entrainons nous :
Alors quel est le prochain carré ? Et quelle équation allons nous devoir réaliser ?

Oui 256 est le carré de 16 !

J’ai oublié d’ajouter que tout le résultat de ces équations sont égales à 16 !

Simple non ?

Par contre diviser 65536 par 10 ne donnerait pas un entier naturel mais un nombre avec une partie décimale ou à virgule flottante.

On a donc environ 4,81 puissances de 10 dans 65536

Même si il y’a trois bases remarquables (les plus fonctionnelles) qui sont la base de 10, la base de 2 noté lb (binaire) et la base naturelle qui utilise le nombre exponentiel il y’a en réalité autant de bases qu’il y’a de nombres dans notre système numérique.

Autre exemple avec un log de base 10 de 255 :

On a donc la somme du nombre de puissance de 10 dans 17, 5, et 3 = à environ 2,4 pour un le nombre 255.

Notez que si on multiplie les logarithmes de base 10 des nombres additionnées entre eux on obtient 17x5x3=255 qui est le nombre dont on souhaitait calculer le logarithme au départ.

Pourquoi c’est utile en informatique ? Le code machine est dans un système binaire donc sur une base 2 :

Le bit est encodé sur le début du troisième octet (8) soit en 17ème position : 8×2=16 | 16+1 = 17

Sur un encodage positionnel, en binaire, (sur une base 2) le résultat du logarithme donne le nombre de 0 soit 16 avant le premier bit encodé donc sur le 3ème octet.

Notation Hexadécimale basée sur des puissances de 16

En hexadécimal (sur une base 16) le résultat du logarithme donne le nombre de 0 soit 4 avant le premier bit encodé également sur le 3ème octet. En hexadécimal car 16 (base) /8 (nombre de bits dans un octet) = 2 donc un octet est encodé sur 2 valeurs.

Bien sûr, vous pouvez aller plus loin et par exemple comprendre la formule pour le changement de base pour une équivalence non carrée qui est à mon avis une clé pour jongler entre les systèmes !

Pour ceux qui veulent télécharger tout le document au format .pdf compilé par LATEX pour voir à quoi ressemble une publication scientifique, c’est là : Logarithme

Pour ceux qui veulent le code source du document LATEX à titre pédagogique pour connaître le nom de certaines balise, c’est là : Code Source


Lecture : Intelligence Artificielle, Manuel de Survie

Jean Claude Heudin a été le directeur du laboratoire mon école supérieur, l’institut Internet et du multimédia pendant des années, c’est un ami, un mentor qui nous a donné les bonnes méthodes d’apprentissage et ses mots clés. Diplômé d’un doctorat en Intelligence artificielle à ORSAY, université de Paris Sud, il a été habilité à faire des recherches pour l’armée et a travaillé dans de nombreux domaines de pointes comme l’architecture du processeur RISC, les algorithmes génétiques ou bio-inspirés et l’intelligence artificielle plus généralement.

J’ai décidé à travers cet article de vous faire part d’un de ses derniers livres intitulé : « Intelligence Artificielle : manuel de survie » dans une synthèse non exhaustive détaillant d’abord les principaux axes de recherches de l’IA, ses différentes formes, les peurs qui y sont liées, les idées reçues, et un dernier point sera fait sur l’éthique. Je me suis aussi inspiré de ce que j’ai lu dans un autre de ses livres intitulé « Immortalité Numérique »

Je vous recommande vivement d’acheter ces livres qui sont à mon sens des trésors de connaissance, de réflexion et de travail.

Les 17 axes de recherches de l’IA

  1. Les systèmes multi-agent.

Champ de domaine capital en Intelligence Artificielle, le concept a été inventé par Marvin Minsky de l’université de Stanford. Les systèmes multi-agents se sont tellement développés au cours des dernières décennies qu’ils sont devenus incontournables.

Les systèmes multi-agent font partie de ce qu’on appelle l’intelligence artificielle distribuée, le but d’un système multi-agent est par exemple de fractionner un calcul complexe en série de petits calculs que la machine sera mieux à même de traiter. On peut appeler cela en Informatique le parallélisme massif par exemple : effectuer des tâches de calculs sur un nombre important d’ordinateurs connectés entre eux. (réseau)

En Informatique chaque agent est donc un petit programme exécutant un certain nombre de tâches qui s’inscrit dans une structure hiérarchisée. Je définirais à l’aide d’un autre livre de Jean-Claude (Immortalité numérique) l’ensemble de ces structures.

Définition de l’agent : L’agent peut-être de différentes formes, on peut parler de petits programmes implémentés dans un logiciel, d’animaux au sein d’un groupe, de personnes physiques.

Deux grandes catégories : les agents réactifs et les agents cognitifs.

Les agents réactifs sont des agents comportementalistes ou « behavioristes » qui vont se contenter de subir leur environnement par exemple selon le fameux modèle SIR :

  • Stimulation de l’environnement
  • Individu
  • Réaction par rapport au stimulus

Plus précisément dans un système Informatique ils ont une fonction réflexe c’est à dire qui des programmes qui réagissent immédiatement à des informations reçues en entrée.

Les agents cognitifs quant à eux vont influer sur leur environnement, ils passent à l’action, ils sont capables de prise de décision.

On distingue parmi ces agents les nèmes qui stockent des connaissances qu’on pourrait qualifier d’agents réactifs, des nomes qui sont capables de traiter ces connaissances qui sont donc des agents cognitifs. Parmi ceux là : Les polynèmes sont capables d’activer des agents représentant différents aspects d’un même objets tandis que les paranomes sont capables de traiter simultanément différents représentations de connaissances.

Ces agents spécialisés sont accompagnés d’agents gestionnaires chargés de planifier et d’organiser. Tous ces agents se structurent alors pour former des tableaux (frame-array) qui sont capables d’exécuter des calculs complexes. Quels sont alors les différents modes d’organisation hiérarchiques de ces structures ? :

On compte 9 typologies :

  • Hiérarchie

La hiérarchie se structure sous la forme d’un arbre avec des nœuds représentés par l’agent qui possède une autorité sur un noeud-fils.

  • Holarchie

La holarchie est une hiérarchie sans autorité, les agents sont inclus comme si on greffait des feuilles à l’arbre.

  • Coalition

La coalition est une alliance temporaire dont la valeur de l’objectif doit être supérieur à la somme des agents qui la composent

  • Équipes

Les équipes ont pour but de maximiser les intérêts de l’équipe dans un objectif commun à tous les agents.

  • Congrégations

Les congrégations sont voisines des équipes et des coalitions sauf que les agents peuvent sortir ou rentrer dans la congrégation. Il n’y a aucune permanence.

  • Sociétés

Les sociétés sont des ensembles d’agents hétérogènes de nature différentes mais soumis à des lois communes

  • Fédérations

Les fédérations sont des entités qui laissent place à un système de délégations ou les interactions se font entre délégués des agents.

  • Marchés

Les marchés sont un système d’agents vendeurs et acheteurs qui permettent de définir des stratégies de négociation.

  • Matrices

Les matrices sont des agents interconnectés (lignes et colonnes) et interdépendants entre eux.

Ces typologies dans un système multi-agent peuvent s’associer entre-elles, on peut par exemple avoir des fédérations de sociétés d’agents.

Passons aux champs suivants que je développerai moins :

  1. La perception et la vision par ordinateur sont les systèmes de reconnaissance faciales mis en place par nos caméras installés sur nos smartphones ou ordinateurs.

Par exemple Face ID cherche à enregistrer numériquement l’empreinte mathématique de votre visage à des fins biométriques de sécurisation. Ces applications utilisent des réseaux de neurones convolutifs qui simulent notre cortex visuel.

  1. L’apprentissage machine aussi appelé machine learning (ML) compte 3 types d’apprentissage : supervisé, non supervisé, ou par renforcement (système de récompense). Derrière le terme d’apprentissage machine assez généraliste se cachent d’autres algorithmes qui ont connu un grand essor ces dernières années tels que les réseaux de neurones profonds (deep-learning) ou les algorithmes évolutionnaires.

  2. Les algorithmes évolutionnaires  s’inspirent des théories de l’évolution biologique, ils comprennent par exemple les algorithmes génétiques (néo-darwinisme voir John Holland) et ses fonctions d’évaluation dites « fitness ». Une fonction fitness est par exemple une fonction destinée à évaluer les personnes les plus aptes à faire évoluer ou avancer l’humanité. Rien à voir avec la programmation génétique qui est un outil d’optimisation de la performance d’une chaîne de programmes.(voir John Koza)

  3. Le connexionnisme qui est à la base du réseau de neurones comme vous l’avez peut-être vu sur mon article sur les sciences cognitives notamment la synapse de Hebb. Plus généralement le connexionnisme s’intéresse à tout ce qui peut être connecté pour maximiser les performances s’opposant à la centralisation des calculs par le processeur d’un ordinateur par exemple. Le parallélisme massif organisé en réseau est une forme de connexionnisme.

  4. L’intelligence affective est le domaine de recherche pour un ordinateur de percevoir, exprimer et ressentir des émotions. Le chatbot Eliza créé par Joseph Wieszenbaum était capable de percevoir et d’exprimer des émotions mathématiquement mais le ressenti est encore hors de portée, en effet la machine ne dispose d’aucune fonctions physiologiques.

  5. L’intelligence collective s’intéresse par exemple à l’organisation en groupe d’un ensemble d’individus ou pourquoi pas d’agents qui interagissent ensemble dans un but commun, par exemple dans la nature, une colonie de fourmis qui œuvrent toutes ensemble pour le bien de la fourmilière.

  6. La résolution de problèmes et de raisonnements est la base du domaine de recherche de l’intelligence artificielle. Le but étant de simuler le raisonnement humain par exemple lors d’un syllogisme ou d’une inférence. Le principal problème de ce champ de recherche est l’explosion combinatoire qui peut être occasionnée de par la multiplicité de variables ou de fonctions à calculer. On va donc chercher à palier à ce problème par de la recherche heuristique c’est à dire en filtrant les paramètres de sortie et en excluant certaines solutions.

  7. Traitement symbolique et logique représente également un des premiers champs de recherche de l’IA. Le symbolisme par opposition au raisonnement quantitatifs (variables binaires) permet de calculer par association d’objets catégories ou concepts. Deux langages ont été créé à ces fins : Prolog par Alain Colmerauer et Philippe Roussel deux informaticiens français et Lisp pour traitement par liste crée par John McCarthy(1958)

  8. Le langage naturel ou NLP s’intéresse à la compréhension par l’ordinateur des chaînes de caractères que forment notre alphabet qui peut se décliner en mots, en phrase, et en texte. Fortement lié à la linguistique et ses branches comme la sémantique, l’orthographe, la grammaire, la traduction automatique dans différentes langues (analyse de récurrences) sont des domaines du traitement naturel du langage.

  9. La planification est l’étude de principes organisationnels visant à réduire les coûts, et optimiser les durées de travail par exemple pour agir en temps réel afin de réaliser un objectif de manière optimale pour un robot ou un agent (prise de décision).

  10. La robotique est intimement lié à l’IA, dès qu’il s’agit d’implémenter à un robot un fonctionnement intelligent ou un système de perception l’IA représente une passerelle obligatoire. La robotique est donc un terrain d’expérimentation privilégiée de l’IA.

  11. Les réseaux de neurones  ont vu le jour dès la création de la discipline cybernétique dont j’ai déjà parlé dans mon article sur les sciences cognitives. Mais les réseaux de neurones profonds changent aujourd’hui la donne tant les avancées sont significatives durant les dernières années : On distingue les réseaux simple-couche, multi-couche (couches cachées, couches visibles) , récurrents (qui bouclent sur eux même), non récurrents, convolutifs (traitement de l’image). Supervisés, (main de l’homme dans l’apprentissage), à priori non supervisés (réseau par adversaire, voir Ian Goodfellow) ou encore par renforcement. (système de récompenses).

  12. La vie artificielle aussi appelée A-life, représente l’étude du vivant et de son comportement dans un environnement artificiel tel que l’ordinateur.

  13. Les systèmes à base de connaissance est une des formes de l’IA regroupés sous le champ de recherche des systèmes experts très utilisés en médecine dans les années 1980. Un des plus connus fut Mycin développé par Edouard Shortliffe qui permettait de diagnostiquer et traiter les leucémies grâce à un système de base de connaissance basé sur des faits, des règles et un moteur d’inférence. Une inférence peut-être déductive (syllogisme), abductive (élimine les solutions improbables) inductive(basé sur l’observation factuelle)

  14. Les représentations de connaissances est la mise en forme pour une IA d’un ensemble d’objets, de données, d’informations sur un problème pour aider l’algorithme à calculer de manière efficace. On parle alors d’ontologie complètes ou spécifiques représentés sous forme de graphiques.

  15. La logique floue conceptualisée par Lofti Zadeh part de variables réelles plutôt que binaires, une information peut-être vrai et fausse. Plus exactement, une information vraie à un moment donné peut-être fausse l’instant d’après.

Les 6 formes de l’IA

  1. L’intelligence inférieur à un humain pour une tâche spécifique
  2. L’intelligence égale à un humain pour une tâche spécifique
  3. L’intelligence supérieure à un humain pour une tâche spécifique
  4. L’intelligence supérieure à un humain pour une multiplicité de tâches
  5. L’intelligence supérieure à tous les humains pour une multiplicité de tâches on parle alors d’AIG pour Intelligence Artificielle Générale
  6. La singularité technologique représente une prise de contrôle de l’humanité par une intelligence artificielle.

On peut faire une césure entre les quatre premières formes d’IA qui sont regroupés sous la forme d’une IA Faible alors que les 2 dernières 5 et 6 font parties des IA Fortes. Aujourd’hui on recherche particulièrement à développer ces deux dernières formes.

Les Peurs liées à l’IA

1.La singularité technologique

La singularité est technologique, j’en ai déjà parlé dans le premier article du site sur la super-intelligence. C’est l’avènement d’une IA qui s’imposera comme un singleton et qui contrôlera l’humanité. Plus encore Kurzweil décrit la singularité technologique comme l’avènement d’une super-intelligence en 2045 dont le fonctionnement nous paraîtra impossible à comprendre et qui pourra créer des machines également plus intelligentes que notre cerveau.

La première conséquence positive défendue par le transhumaniste Ray Kurzweil part du principe que les hommes seront augmentés, que les maladies incurables seront guéries et que l’IA sera bienveillante.

La deuxième conséquence dite pessimiste : pour Stephen Hawking et Elon Musk, part du principe que l’IA sera inamicale et qu’elle décidera par exemple pour sauver la planète si c’est réellement son but et par extension de se débarrasser de l’humanité le considérant comme un danger pour celle-ci.

Pour Nick Bostrom dont j’ai déjà parlé dans mon premier article l’IA, celle-ci raisonnera par l’orthogonalité (une fonction de deux variables en x et y) par volonté et intelligence, elle choisirait toujours la solution la plus simple.

2. Le spectre des armes autonomes

Il existe quelques exemples d’armes autonomes en voie de développement par différents pays : RoBattle, ou l’IA antiaérienne Alpha en fait partie, et la course à l’armement est déjà engagée. C’est contraire à un des 23 principes d’Asilomar qui veut que l’on évite d’utiliser l’IA pour développer des armes létales, cependant on trouvera toujours des partisans au développement de la robotisation armée ne serait-ce que pour éviter des pertes humaines.

3. L’IA va détruire l’emploi

L’intelligence Artificielle ne détruira pas l’emploi, au contraire elle visera à créer des emplois hautement qualifiés pour être conçue et appliquée et permettra à la société d’arrêter l’exploitation des humains pour des tâches répétitives et sur le long terme contre productive pour notre esprit. Il est intéressant de noter que les pays robotisés sont les pays ou le taux de chômage est le plus bas.

4.Des boites noires

Les boîtes noires sont une crainte tout à fait avérée de l’IA, derrière le terme « boite noire » relatif à ces dispositifs aériens qui sont censés expliquer les causes d’un crash, se cache tout le fonctionnement opaque de l’algorithme. Aujourd’hui un des futurs de l’IA est l’XAI pour « explicable AI » lire le deuxième livre d’Aurélie Jean  « Les algorithmes font-ils la loi ? ». La commission européenne a notamment déjà sommé les GAFAMI d’expliquer leurs algorithmes que ce soit un algorithme de recommandation dit explicite basé la plupart du temps sur des arbres de décisions ou un algorithme de neurones profonds dit implicite. Tout l’enjeu est d’auditer et comprendre le code pour tenter d’expliquer les résultats de l’IA et comprendre d’éventuels biais. (concept défini par Aurélie Jean dans son premier livre « Une fille au pays des algorithmes »)

5.IA sexistes et racistes :

On a déjà assisté à de nombreux biais sexistes et racistes de la part de l’IA, le premier biais sexiste fut l’algorithme d’Amazon qui discrimina les femmes à l’embauche ou bien celui de l’Apple Card dénoncé en personne par Steve Woszniak. Votre banque vous accorde un crédit immobilier déjà sur la base de paramètres algorithmisés. Aux États-Unis des biais ont notamment été constatés lors de la libération de détenus suite à une peine de prison pour éviter la récidive. « Voir Coded Bias » sur Netflix . Ces biais cognitifs sont implémentés par les concepteurs de l’algorithme dans leur logique programmatique ou dans le jeu de données sélectionnées pour entraîner l’IA. Il faut implémenter un mécanisme d’auto-régulation entre les ingénieurs à la conception de l’algorithme.

6.Les IA peuvent être détournées

Il est important de comprendre que le développement d’une IA super intelligente passe par le développement de la cyber-sécurité afin de limiter les piratages de ces IA d’une part, et d’autre part restreindre l’accès des IA omnipotentes à une personne légitime et éclairée et responsable.

7.Notre vie privée est violée

Le big data mis en place par les GAFAMI a été le socle pour que le développement d’une IA qui permette de mieux classer, analyser, trier les données qui sont présente sur le web. Les micros et caméras des smartphones sont partout et constamment en marche, ce n’est pas nouveau et rien n’empêche aujourd’hui une entreprise même dans toute cet océan d’information de mettre en place une IA qui permette l’analyse et la récupération de données ciblées.

Les 8 idées reçues sur l’IA

1.Les IA sont meilleures que les humains

A proprement parler les IA ne sont pas meilleurs que les humains, d’une part car ce sont les humains qui les codent et d’autre part parce que toutes les IA qui ont battu les humains par exemple aux échecs (Deep Blue basés sur des algorithmes min-max) ou dans le jeu de Go (Alpha go développé par l’IA DeepMind de google sont entraînés sur une base de données de parties humaines.

2. Les IA veulent nous remplacer

L’IA n’a pas de volonté propre, elle n’a pour but que la réalisation de l’objectif que le code lui a implémenté.

3. La courbe de l’IA est exponentielle

La loi de Moore qui veut que la croissance de la puissance des composants électroniques et autres semi-conducteurs obéit à une fonction exponentielle (puissance) dont l’ordonnée pour une variable x à 0 est égal à 1 est fausse car elle ne prend pas en compte les réalités géopolitiques, géo stratégiques et l’approvisionnement en matières premières nécessaires pour les produire. On a a notamment vu avec l’impact de la pandémie de COVID, la ruée sur les cartes graphiques pour le minage de cryptomonnaies et l’appauvrissement des ressources de notre planète terre que la réalité rattrape toujours les prévisions.

4. L’IA a des sentiments

L’IA n’a pas de sentiments, elle peut exprimer des émotions, percevoir des émotions notamment grâce aux grandes avancées des travaux de neurones profonds mais le champs de recherche concernant la sensation des émotions est encore complètement neuf Même si le projet Living Mona Lisa (Heudin 2015) faisait apparaître des émotions à la Joconde, c’était plus de l’ordre de la simulation.

5. L’IA est consciente

On distingue deux types de consciences, la conscience primaire qui mêle perception et mémoire : « Edelman » et la conscience supérieure qui naît avec la sémantique et les facultés de langage : « John Eccles ». Pour moi cette conscience supérieure naît avec l’émergence du libre arbitre. Les aires de la parole qui interviennent dans l’intervention de la mémoire de la linguistique interagissent avec les aires conceptuelles déjà existantes du cerveau. La conscience de soi est la caractéristique la plus fondamentale de l’espèce humaine pour Théo Dobzhansky . Aucune IA n’a cette conscience mais cela ne veut pas dire que dans le futur aucune machine avec une conscience ne pourra émerger. J.C Heudin suggère de nouvelles pistes illustrées par les travaux de Francisco Varela et d’algorithmes bio-inspirés pour des nouvelles machines basés par exemple sur l’autopoièse  qui se définit par l’auto-reproduction des cellules similaires aux divisions telles que la méiose et mitose.

6. L’IA est autonome et apprend seule

L’apprentissage non-supervisé sur le papier nécessite quand même l’intervention d’ingénieurs et chercheurs hautement qualifiés. Même si une IA apprend effectivement de manière autonome, il faut encore lui donner le volume de données approprié pour qu’elle puisse apprendre. En quelques sorte il faut l’alimenter.

7. L’IA ne sera jamais créative

Un homme comme une intelligence artificielle base sa création sur un patrimoine informationnel ou un nombre de connaissances qu’il a reçu, emmagasiné et interprété. Dire qu’une IA ne sera jamais créative est faux. Même si le processus artistique est créatif, les réseaux de neurones profonds ont permis aux IA des avancées spectaculaire dans le domaine musicale et pictural ces dernières années.

8. L’IA est vivante

On peut tout simplement résumer cette partie par un syllogisme : tout ce qui a une conscience est vivant, une IA n’a pas de conscience, donc une IA n’est pas vivante.

L’éthique en IA :

En 2017 s’est tenu à Asilomar en Californie une conférence organisée par le Futur of Life Institute qui a abouti à la rédaction de 23 principes rédigés sous la forme d’une charte pour une IA éthique qui a obtenu un franc succès auprès de la communauté scientifique puisqu’elle a été très largement signée. Certains de ces principes sont redondants ou vont de pair mais intéressons nous à cette dimension éthique si chère au site.

Les 23 principes d’Asilomar :

1. Objectif de recherche

bénéfice Le premier principe suppose que l’objectif de recherche sur l’IA doit tendre vers le bénéfique.

2. Investissements

Le deuxième principe concerne les investissements liés à l’IA selon 3 points :

  • Préservation des ressources Les ressources de la planète doivent être préservés
  • Piratage Les IA doivent être sécurisées à l’extérieur et à l’intérieur du programme pour empêcher l’utilisation détournée de l’IA par un groupe dissident.
  • Evolution du système juridique Il est impératif d’améliorer notre système juridique et notamment les relations entre scientifiques et décideurs politiques pour permettre une législation pro-active et non à rebours de la technologie.

3. Relation entre les scientifiques et les juridictions

Conglomérat de scientifiques et de législateurs.

4. Culture ou esprit de recherche

Les scientifiques qui travaillent à améliorer les IA doivent avoir une vraie culture de la recherche.

5. Prévention

Respecter les normes de sécurité

6. Sécurité

Éviter le piratage

7. Transparence

Pouvoir expliquer la causalité d’un choix discriminant ayant causé des dommages faits par un algorithme d’intelligence artificielle.

8. Transparence judiciaire

Superviser la prise de décision d’un système autonome par un humain afin de corroborer la décision dans le cadre d’une décision judiciaire.

9. Responsabilité

Les concepteurs et les Constructeurs doivent répondre de l’utilisation abusive de leur système et endossent la responsabilité morale.

10. Concordance des valeurs

Les systèmes d’intelligence artificielle doivent être en adéquation avec les valeurs du genre humain.

11. Valeurs humaines

Des droits fondamentaux tels que la liberté, la diversité culturelle, le droit et la dignité doivent être respectés.

12. Données personnelles

Les données des utilisateurs doivent rester sa propriété, chacun devrait pouvoir contrôler, gérer, et organiser ses données.

13. Liberté et vie privée

La vie privée devrait être préservée, la restriction de cette liberté réelle devrait être interdite.

14. Bénéfices partagées

Devrait bénéficier à autant de personnes que possible

15. Prospérité partagée

Préservation des ressources économiques

16. Contrôle humain

Décision d’une délégation dans le cadre de la réalisation d’objectifs fixés.

17. Anti-renversement

Pouvoirs accrédités à une personne qui contrôle les systèmes d’IA devraient bénéficier à la société sur un plan global, social et moral.

18. Course aux IA d’armement

La course aux armes autonomes létales devrait être évitée.

19. Alertes sur les capacités

Toute prévision par rapport aux capacités supérieures de l’IA devrait d’abord faire l’objet d’un consensus entre chercheurs.

20. Importance

Important changement de paradigme de la vie sur terre.

21. Risques

Prévision des risques en vue de minimiser leur impact.

22. Auto-développement

Contrôle de sécurité des IA qui se répliquent de manière autonome.

23. Bien commun

Les IA super-intelligentes ne devraient être crées que pour la réalisation du bien commun et conférés à des Etats ou à des organisations.

Pour terminer je vous ai dessiné une flèche du temps spectrale retraçant les naissances et morts des plus grands hommes de l’IA au cours des trois siècles derniers à partir du glossaire du livre : A mon sens c’est un bonne exercice pour travailler sa physionomie en fonction de ce qu’ont réalisé ces hommes. Je ne vous fais pas la liste exhaustive mais sachez que Boltzmann pour ne citer que lui est le père de la physique statistique et qu’il a donné son nom à certains réseaux de neurones profonds appelés « Machines de Boltzmann ». Pour les autres, je laisse toute latitude à votre curiosité.

Les grands hommes de l’IA de 1844 à 2022

Voilà j’ai résumé les parties du livre qui me semblaient les plus intéressantes, cependant si vous souhaitez approfondir vos connaissances sachez que le glossaire qui accompagne ce livre à la fin est immensément riche et vulgarise des termes et concepts mathématiques compliqués. Je vous recommande encore une fois d’acheter ces deux livres qui sont des perles de savoir.

Immortalité numérique @Jean-Claude Heudin

Latex, Knuth, Unicode et plus encore…

Je me rappelle lorsque je passais mon jury de fin d’études et que je disais que je voulais prolonger mes études. Mon auditeur m’avait dit « Monsieur connaissez-vous les algorithmes de Donald Knuth ? » Je répondis « Non » et il rétorqua que j’étais d’une ignorance crasse ! C’est sûrement la meilleure chose qui me soit arrivée. Donald Knuth est probablement un des plus prestigieux des programmeurs informatiques :

Donald Knuth

Il a écrit le fameux livre the art of computer programming :

Ce livre est un manuel en quatre volumes qui décrit l’algorithmique pour le code informatique. Le but de cet article n’est pas de vous détailler le TAOCP qui d’ailleurs est un peu désuet compte tenu des cadences fréquentielles et mémorielles actuelles du hardware.

Cependant Knuth mérite d’être connu, il a créé un processeur de texte (langage à balises) Tex qui vient du grec τέχνη (tekhnê) signifiant habileté manuel car il trouvait tellement peu facile de formaliser les mathématiques sur les logiciels de traitement de texte.

Inutile d’utiliser TEX, mais sachez que Leslie Lamport a adapté ce langage et a créé LATEX qui est aujourd’hui utilisé par la plupart des scientifiques qui font des mathématiques sur informatique et certains forums de maths pédagogiques. Latex demande un temps d’apprentissage similaire au HTML, voici l’exemple d’un code Latex :

Et son résultat formalisé :

 

Je vous ai déjà parlé de la table Américaine ASCII pour encoder les lettres de l’alphabet, sachez que Latex a été crée quand Unicode n’existait pas encore mais que Latex/Tex est le langage utilisé si vous voulez contribuer mathématiquement à l’encyclopédie libre Wikipédia de Jimmy Wales.

Qu’est ce qu’Unicode ?

Unicode est un standard qui a été crée pour se substituer à l’ASCII trop limité en nombre de caractères. Unicode comprend 144 697 caractères. Ces jeux de caractères ont un numéro héxadécimal comme par exemple U+2F12. Cet identifiant universel sera le même pour toutes les typographies qui comprennent le caractère. Vous pourrez trouver les tables d’unicode sur wikipedia qui comprennent les différents plans.

Vous voulez utiliser n’importe quel caractère ? Une intégrale quaternion ou un Katakana japonais ? Voici un petit tutoriel :

  • Rendez-vous dans la table de caractères par exemple par la commande run ou exécuter de windows :
  • Sélectionnez la typographie Cambria Math dans le menu
  • Cliquez sur le symbole de votre choix, repérez le code 2A16,
  • Lancez Libre Office (ça ne marche pas sur mon word… bizarre 🙂 ? )
  • Sélectionnez la police dans Libre Office, Cambria Maths
  • Tapez 2A16 et faites la combinaison Alt + X !

Magique l’intégrale quaternion apparaît !

Dans un autre article je m’attaquerai à l’UTF-8 qui est un dérivé du standard Unicode qui transforme à la fois les caractères ASCII et Unicode et qui s’est imposé comme une norme sur le web aujourd’hui puisque que 95 % des caractères encodés sur l’ordinateur sont encodés selon ce format.

Systèmes Numériques

Lorsque l’on me demande ce qu’il faut apprendre en premier lieu en informatique, je répondrai sans hésiter les systèmes numériques et essentiellement le binaire. Vous savez cette suite de 0 et de 1 traduction du langage maternel de la machine dérivés des mathématiques et de la physique.

Ce langage est celui que comprend et utilise le processeur pour fonctionner au plus bas niveau. Son inventeur Claude Shannon (inventeur de la théorie de l’information) l’a utilisé en électronique et en informatique pour représenter l’information d’une impulsion électrique qui passe « 1 » ou ne passe pas « 0 ».

Shannon ayant travaillé lors de sa thèse sur l’algèbre de Boole basé déjà sur des variables à deux états VRAI OU FAUX, les suites de bits « binary digit » que sont 1 ou 0 ont permis un meilleur contrôle du signal électronique et sa numérisation. Ces suites, ont été appliqués, interprétés et encodés via d’autres tables ou schémas.

Par exemple pour représenter l’alphabet par exemple la fameuse table ASCII « American Standard Code for Information Interchange » qui comprend 128 caractères et notamment les 26 lettres de l’alphabet encodés sur une suite de 7 bits.

Table ASCII Alphabet

Comprendre le binaire c’est savoir le transformer dans d’autres systèmes numériques, j’ai nommé le système décimal basé sur 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Ou encore de plus en plus répandu même si moins familier le système hexadécimal voir octal (permissions Linux).

Par curiosité ou si vous êtes intéressé par une carrière d’administrateur réseau, vous devrez jongler pour calculer vos masques avec au moins deux systèmes : décimal et binaire.

Bien sûr, il existe pléthore de petits logiciels, calculatrices qui feront la conversion pour vous, mais c’est important de comprendre la mécanique derrière ces séries de nombres.

Dans le cas d’une adresse IP par exemple, on a utilisé le système décimal pour représenter l’adresse bien que cela soit des bits. Une adresse IPv4 est encodé sur 32 bits soit 4 fois 8 bits. Ainsi lorsque que vous voyez 192.168.0.100 c’est en fait 32 1 ou 0 que vous avez en fait.

Mais alors comment passer du système décimal au système binaire ? En fait le système binaire est basé sur des mathématiques et plus précisément des puissances de 2. Cette puissance est positionnelle et croissante en fonction de la place du bit dans un sens de lecture de droite à gauche.

Prenons un exemple : 192 le premier terme de notre adresse est codé sur 8 bits mais comment transformer 192 en binaire ?

192 = 01100000

Comment ai-je fait ?

Connaissez vos puissances de 2 ! Tous les informaticiens connaissent leurs puissances de 2 au moins jusqu’à 4096 et sont ainsi habitués à jongler notamment avec d’autres concepts mathématiques : logarithme (base 2)

Dans l’exemple : 192 = 01100000 en commençant par la droite on a alors 0x2^0 = 0 puis 0x2^1 et ainsi de suite pour arriver aux bits qui nous intéressent et qui sont eux en état « on » ou « allumés » c’est-à-dire à l’état « 1 » :  1×2^5 et 1×2^6 qui valent respectivement en système décimal : 128 et 64.

Au final vous faites la somme de 128 et 64 vous obtenez 192 ! Alors pas si compliqué ?

Attendez en 1956 vient la création du langage hexadécimal très répandu parmi les électroniciens et qu’on est de plus en plus amené à voir :

On a décidé ainsi de rajouter 6 nombres aux 10 chiffres arabes que l’on connaît : ceux si sont représentés par des lettres :

  • A = 10
  • B = 11                                                                                           
  • C = 12
  • D = 13                                                 
  • E = 14                                                
  • F = 15

Pourquoi ? Sûrement pour gagner de la place, faciliter la lecture, et gagner en grandeur ! En effet on a plus 10 chiffres avec le 0 mais 16 nombres avec le 0 : Ainsi on ne se basera plus sur des puissances de deux mais de 16 !

Le système pour calculer est le même bien que l’on connaisse moins de puissance de 16 que de puissance de 2.

Exemple :

A2C8 = 41672

Le principe est le même en partant de la droite :

8×16^0 = 8 x 1 = 8

C= 12×16^1 = 192

2 x 16^2 = 512

A = 10×16^3 = 40960

= 40960 + 512 + 192 + 8 

= 41672.

Vous avez compris ? Entrainez vous avec des petits nombres sur un tableur excel : Toutes les fonctions des systèmes numériques binaires, hexa et décimal ont été codé et vous permettent de passer de l’une à l’autre facilement.

HTTP, HTML et la Démocratisation du Savoir

Est-ce que Tim Berners-Lee avait conscience lorsqu’il inventa le web en 1989 de la portée de son invention dans la démocratisation du savoir ? Je veux parler bien sûr du protocole de transfert hyper texte et de son langage référent le Hyper texte Markup Language.

Si il avait pour but de révolutionner le cheminement de l’information lors de son passage au Centre Européen de recherche nucléaire il y’a un élément fondamentale qu’il n’avait peut-être pas prévu, ou du moins dont il a sûrement sous-estimé la portée : cliquer sur un lien ou un mot pour en connaître le sens…

Je veux parler de la fameuse balise « Anchor » ou ancre du langage HTML qui permet de transformer un bloc, une image ou un mot en un « hyperlien » pour faire référence à une autre page ou à une page de définition. Sur ce modèle a été bâti le succès de Wikipedia et toutes les encyclopédies en ligne ou autres dictionnaires numériques qui sont des véritables accélérateurs de mémorisation.

Il a rendu accessible ce qui était réservé à une élite lors de processus de discussions ou deux interlocuteurs rebondissent sur un mot ou une idée pour se l’approprier ou la définir.

Il n’est pas étonnant que le vieux monde ou les régimes totalitaires aient été réfractaire à l’avènement du web et des technologies de l’information quand chaque étudiant ou autodidacte avait accès à des trésors de connaissances.

Si on en a la volonté tout est à notre portée pour pouvoir apprendre et s’exercer : en quelques clics, prises de notes, sites spécialisés pour peu que l’on connaisse les bases du domaine que l’on souhaite approfondir : mathématiques, biologie moléculaire.

Certes, cela ne remplacera jamais les livres et leurs approche pédagogique mais avouez que nos bons vieux Larousse ont pris un vrai coup de vieux lorsque nous devons passer d’une page à l’autre rangées par ordre alphabétique pour approfondir un ensemble de définition…

Une initiative intéressante dont je souhaitais parler ici est celle du CNRS avec son trésor de la langue française qui a été mis en ligne vers 2008 que j’ai découvert pendant mes études accessibles sur cnrtl.fr et dont chaque mot contrairement à wikipedia est un hyperlien.

Sur un simple clic gauche un menu s’ouvre et vous avez accès à la lexicographie, la morphologie ou l’étymologie complète du mot comme le montre cette image de la définition du terme « primitive »

Exemple du mot « primitif » sur le centre de ressources textuelles et lexicales

Comme dans un dictionnaire vous disposez de toutes les acceptions du mot en question par discipline le tout surligné peut-être pour stimuler votre mémoire visuelle.

Le pouvoir de la connaissance est entre nos mains…

Le Modèle TCP/IP

Après avoir abordé le modèle OSI et ses différentes couches, intéressons au nous au modèle TCP/IP. (Protocole de contrôle de transmission) (Protocole Internet).

Composé de deux protocoles un pour le transport et un pour l’adressage, le modèle tcp est plus ancien et plus simple que le modèle OSI, il se divise en 4 couches.

Le schéma suivant présente les correspondances entre les couches du modèle OSI et du modèle TCP :

OSI Model vs TCP Model @Electronic Design

Pour bien comprendre, les protocoles de plus haut niveau tels que HTTP se basent sur le protocole TCP pour fonctionner. Il existe un autre protocole de transport moins fiable et plus léger que nous verrons plus tard : UDP.

Le protocole TCP s’encapsule et se désencapsule (tout dépend si l’ordinateur est émetteur ou récepteur) vers la couche suivante d’un en-tête qui contient des informations cruciales telles que la source et la destination.

Les cinq premières couches totalisent 160 bits. Chaque couche est donc de 32 bits soit 4 octets, on trouve 5 couches dont le numéro de séquence, le numéro d’acquittement, une autre couche pour la taille de l’en-tête, une réservation et les flags qui sont des bits de contrôle ou signalisation qui représentent 4 bits chacune. Il est très important de souligner le protocole TCP ouvre des ports logiques sur l’ordinateur. Ces ports sont complémentaires de l’adresse IP et tous ensemble : 192.168.1.100:41340 cela représente ce que l’on appelle un socket.

Attachons nous à décrire le protocole TCP en détail en analysant son en-tête :

Mais qu’est ce qui se passe quand vous utilisez concrètement le protocole TCP ? Je vous invite à consulter les RFC (Request for comments) de l’IETF (Internet Engineering Task Force) :

RFC 793 @IETF

Ce schéma est assez difficile à lire mais il a le mérite d’être très fidèle à ce qui se produit quand deux ordinateurs communiquent via TCP.

SYN, ACK, FIN sont donc les flags, bits de contrôle ou signalisations comme les panneaux du code de la route que j’ai évoqué qui sont les indicateurs clés du fonctionnement du protocole.

Les encadrés sont les différents états de TCP que vous pouvez retrouver en tapant encore une fois « netstat » via une invite de commande sur votre ordinateur.

Il existe encore d’autres bits de contrôles ou signalisation tels que PSH pour push, RST pour reset, URG pour urgent, CWR pour la congestion réseau, la congestion réseau est étudiée via une RFC à elle seule (3168).


Le protocole IP a également son propre en-tête :

Qu’est-ce qu’une adresse IP ?

Une IP par exemple 192.168.100.254 interprété ici dans sa forme décimale mesure 32 bits soit 4 octets :

Si vous savez lire le binaire encodé sur un octet cela fait :

192 = 11000000

168 = 10101000

L’en-tête se lit de haut (départ) en bas (fin) en fonction si vous êtes l’émetteur ou le récepteur voir modèle OSI.

1ère ligne :

Version : 4 bits | Donne des informations sur le type d’en-tête, savoir si vous êtes V4 ou V6 par exemple. Le format présenté est celui de la V4.

Longueur de l’en tête : 4 bits | code la longueur de l’en-tête, l’unité étant un mot de 32 bits, il indique le commencement de la donnée.

Type de service : 8 bits | donne une indication sur la qualité de service demandée cependant cela reste un paramètre abstrait. Cette option est utilisée pour guider le choix de paramètres quand un datagramme transite a partir d’un réseau spécifique. Certains réseaux offrent un mécanisme de priorité. Certains types de trafic vont êtres traités préférablement plutôt qu’un autre. Le choix principal obéit à trois contraintes : un court délai, un débit d’erreur bas, ou un gros volume de sortie.

Taille totale : 16 bits | Le champ taille totale est un la longueur du message de données complet ou datagramme incluant l’en-tête et la data mesurées en octets. Ce champs peut seulement coder un datagramme de 65,535 octets. Une telle longueur serait impossible à gérer pour la majorité des réseaux. L’hôte acceptera un datagramme d’une longueur d’environ 576 octets que ce soit un datagramme ou un fragment. Il est par ailleurs recommandé de ne pas envoyer de datagramme de plus de 576 bits à moins qu’ils soient sure que la destination est capable de les accepter.

2ème ligne :

Identification : 16 bits | Une valeur d’identification, allouée par l’émetteur pour identifier les fragments d’un seul datagramme ou message.

Flags : 3 bits | Ce sont des bits de signalisations ou contrôle : le bit 0 est réservé il doit rester à 0. Le bit 1 pour (DF) (Don’t fragment) à 0 indique que la fragmentation est possible, à 1 il indique que le bit est non-fractionnable donc il sera détruit. Le bit 2 pour (MF) More fragments : si il est à 0 c’est le dernier fragment, si il est à 1 on a un fragment intermédiaire.

Fragment offset : 13 bits | Ce champ indique l’écart du premier bit de fragment en lien avec tout le message. Cette position relative est mesuré en 64 bits soit 8 octets. L’écart du premier fragment est égal à 0.

3ème ligne :

Time to live : TTL : 8 bits | Ce champ limite le temps qu’un datagramme reste dans le réseau, si ce champ est égal à zéro, le message doit être détruit. Ce champ est modifié durant le traitement de l’en tête Internet. Chaque module Internet (routeur) doit retourner au moins une unité une fois de ce champ durant la transmission d’un paquet même si la prise en charge de ce message par le module dure moins d’une second. Ce temps de vie doit être vue comme la durée de temps maximum pour qu’un datagramme existe . Ce mécanisme existe par nécessité de détruire n’importe quel message qui n’a pas été correctement transmis au réseau.

Protocol : 8 bits | Ce champ indique quelle version du niveau supérieur de protocole est utilisée dans la section de donnée du message Internet. Les différentes valeurs allouées pour des protocoles variés sont listés dans les nombres assignés de la RFC 1060.

CRC(contrôle de redondance cyclique) 16 bits | Somme de redondance cyclique calculée uniquement dans l’en-tête. Certain des champs de l’en-tête sont modifiés durant leur transit a travers le réseau, cette somme de contrôle doit être recalculée et vérifié à chaque endroit du réseau ou l’en-tête est réinterprété.

Adresse Source : 32 bits : Adresse IP

Adresse de Destination : 32 bits : Adresse IP

Toute adresse IP est masquée par un masque de sous réseau, lorsque l’on lit 192.168.100.0/24, cela veut dire que comme l’adresse est codée sur 32 bits que 24 bits sont masqués. En fait mon masque compte 24 bits en binaire ce qui veut dire que mon masque est 255.255.255.0 soit 11111111.11111111.11111111.00000000

La partie /24 correspond à la notation CIDR. Si 24 bits sont masqués, les 8 derniers sont disponibles mais les autres constituent ce qu’on appelle le net id ou l’adresse réseau.

J’obtiens donc une adresse réseau en 192.168.100.X avec 8 bits soit 2^8 hôtes disponibles. Dans ce plan d’adressage, je ne pourrai avoir que 255 machines qui communiquent entre elles : le dernier octet mis en gras.

Mon sous réseau correspond a 192.168.100.X et me donne un nombre d’hôtes disponibles soit 255 ce qui correspond au nombre d’hôtes ou machines qui pourront avoir une adresse dans ce plan d’adressage. En effet je peux avoir une machine en 192.168.100.1 ou en 192.168.100.2.

Ces deux machines étant sur le réseau 192.168.100.X elles pourront communiquer entre elles.

Une métaphore simple pour comprendre : l’adresse réseau ou net id est le nom de la rue, le reste de l’IP ou host id est le numéro de la rue et le nom du bâtiment, et les ports sont les étages et les numéros d’appartements.

Il existe cinq classes d’adresses IP toutes définies par le premier octet de l’adresse :

  • Une adresse IP de classe A dispose d’une partie net id comportant uniquement un seul octet.
  • Une adresse IP de classe B dispose d’une partie net id comportant deux octets.
  • Une adresse IP de classe C dispose d’une partie net id comportant trois octets.
  • Les adresses IP de classes D et E correspondent à des adresses IP particulières.

Le Modèle OSI (Open System Interconnexion)

J’ai étudié le modèle OSI par curiosité au cours de mon premier cursus universitaire. Il représente un guide efficace pour la compréhension des communications électroniques entre deux ordinateurs notamment pour le binôme client/serveur. Ce modèle est vraiment pratique et vous le rencontrerez très certainement dès que vous souhaitez toucher au réseau.

OSI MODEL ©Electronicdesign

Il divise la communication réseau en 7 couches : 3 couches physiques ou matérielles qu’on pourra appeler les couches basses et 4 couches hautes qu’on appellera les couches logicielles. Dans cet exemple pour comprendre le chemin que les données puis les bits (binary (0,1) digit) traversent. Imaginons un utilisateur sur son ordinateur qui navigue sur Internet on l’appellera l’émetteur : partez du haut à gauche de l’image puis descendez jusqu’aux impulsion s électriques représentés par des bits et le lien physique pour arriver jusqu’au serveur qu’on appellera récepteur. Ce schéma se reproduit et s’inverse en boucle chaque fois que les deux ordinateurs communiquent. L’émetteur devient récepteur et vice et versa.

Si ce modèle est aussi utilisé c’est parce que comme son nom l’indique il vulgarise le fait que les ordinateurs et Internet est un monde ouvert (OSI veut dire Open System Interconnexion) dans lequel chaque fois que vous que consulter votre site favoris vous vous connectez à un autre ordinateur pour peu qu’on vous laisse y accéder par une porte (PORT (65 535 sur un pc)) selon un protocole défini et codé.

Ces protocoles vous les retrouvez lorsque vous cliquez sur un lien (HTTP) (Protocole de Transfert HyperText) ou lorsque vous établissez la connexion avec l’ordinateur distant. Le modèle OSI permet à peu près de classer tous ces protocoles dans les différentes couches :

OSI MODEL

HTTP est donc un protocole très haut au niveau de la machine, plus on se rapproche des impulsions électriques et plus on est bas niveau. Pour le protocole TCP/IP qui a son propre modèle plus ancien, il est divisé lui même en deux protocoles : TCP, Protocole de contrôle de transmission et IP, Protocole Internet. Ils ont été conçus pour fonctionner ensemble, pour cette raison on les associe souvent.

Pourtant on retrouve le protocole IP sur la couche 3 (Réseau) et TCP sur la couche 4 (Transport). Chaque couche a son propre lexique, dans les 3 plus hautes on parlera de données, au niveau transport de segments, au niveau réseau de paquets , au niveau liaison de trames et au niveau physique de bits.

Si vous voulez avoir un aperçu qu’Internet est un monde ouvert ouvrez une interface de commande et tapez « netstat » vous aurez la liste des communications établies entre vous et le monde, Microsoft si vous êtes sur Windows, Google si vous êtes sur chrome.

Amusez vous a tracer les IP avec un « tracert » (traceroute) avec l’adresse IP pour voir tout le chemin que traversent les électrons jusqu’aux différents routeurs mis en place par les entreprises de télécommunications. Utilisez un logiciel comme Wireshark pour une analyse poussée de tout ce qui se passe au niveau réseau de votre machine. Investissez dans un pare-feu très configurable et lisible.

Super Intelligence

Nick Bostrom

Ce livre d’environ 400 pages d’un éminent professeur d’Oxford est une thèse qui présente l’émergence d’une super intelligence sous la forme d’une Intelligence Artificielle qui prendra le contrôle inévitablement sur l’humanité. Compte tenu des progrès exponentielles des ressources computationnelles (Hardware, Internet) Elle part du postulat qu’un ordinateur calcule bien plus vite (proche de la vitesse de la lumière) que ne l’est le débit de transmission entre les neurones d’un cerveau humain.

La Super Intelligence pourra par exemple s’appuyer sur l’énorme patrimoine informationnel en ligne pour assoir sa domination. Si les premiers chapitres font l’état de beaucoup de concepts propres à l’apprentissage machine ou à l’apprentissage profond tels que la rétropropagation des gradients, les modules de markov cachés utilisés par nos assistants vocaux tels que Siri et Alexa ou encore les classifieurs bayésiens naïfs, la progression exponentielle des capacités du hardware et de nos connaissances sur la cognition nous permettra d’émuler dans un premier temps grâce à un ordinateur le cerveau humain et son fonctionnement. Première étape transitoire à la réalisation d’une machine super intelligente qui une fois développé cherchera à assurer sa survie.

Si les conjectures sont parfois délirantes (colonisation et prise de possession de toutes les ressources terrestres et spatiales par cette nouvelle entité), elles ne sont pas farfelues pour autant.

Une fois que la super intelligence sera créée, elle apprendra plus vite que n’importe quel être humain ou autre machine et même dans un scénario multipolaire dans lequel d’autres travaux seraient entrepris sur d’autres continents pour parvenir à cette fin, l’avantage décisif pris par la première qui émergera fait qu’elle s’imposera sûrement comme un singleton : Elle cherchera à être la seule. On comprend mieux la multiplication des financements par les Etats-Unis et la Chine dans le domaine de l’IA.

Vient alors une très grande partie sur la façon dont on pourrait réduire ce risque en régulant la super intelligence par des mécanismes de contrôles (confinement, pièges) ou l’implémentation de valeurs. Pour autant l’auteur est assez pessimiste sur nos chances de réussite de par la complexité pour des informaticiens d’inculquer un sens moral adéquat à la machine pour la préservation de l’humanité mais aussi car en tant qu’entité super intelligente elle chercherait par nature à y échapper.

Je recommande vivement ce livre à tous ceux qui s’intéressent de loin ou de près à l’intelligence artificielle. La multiplicité des concepts évoqués sont très bien résumés en fin de chaque chapitre. Il a le mérite de poser de nombreuses questions au moins au niveau éthique.

Et si ces recherches plutôt que d’être portées par des intérêts étatiques étaient plutôt réservés à des organisations supranationales telles que l’ONU dont le but est de régler les conflits et préserver la paix dans le monde ? La question a le mérite d’être posée.