samedi 26 novembre 2016

La programmation des humains

Nous entendons souvent parler de langage source dans lequel les applications de nos ordinateurs ou smartphones sont écrites. S'agit-il vraiment du même concept que celui utilisé lorsque nous voulons évoquer le langage, faculté qui permet de communiquer entre être humains ?
Au cœur de la notion de langage, qui se définit pour Saussure comme la faculté qui permet de communiquer, se trouve la notion de langue. La langue est un produit du langage, un système qui permet de générer et de comprendre des messages. La parole est elle-même le produit d'une langue par lequel s'actualise un message. Le message implique un émetteur, un code transmis via un canal, et un récepteur.
Qui parle à qui ?
Que retrouvons nous de ces notions lorsqu'il est question de langage informatique ? Prenons le processus d'écriture d'un programme informatique.
Le premier problème consiste à reconnaître l'émetteur et le récepteur, qui parle à qui ? est ce le développeur qui parle ? En première approche nous pouvons l'admettre bien qu'il ne s'agisse pas de parole mais d'écrit. Qui reçoit le message ? Dans un premier temps personne, le message va être simplement mémorisé, comme si l'humain parlait à un magnétophone. Puis à un autre moment ce message sera interprété par la machine.
Comment se comporte le récepteur ?
Le récepteur humain reçoit des sons linéairement. Il les découpe en unités, les phonèmes, transformées en  suite d'images acoustiques, format des termes, appariés à des concepts, ce qui constitue les couples signifiant-signifié. Les unités  s'identifient non positivement, mais négativement, par différence. Le phonème "p" dans le son "pain" ou "pin" sera déterminé comme n'étant ni "bain", ni "vin" , ni "tain" ..., mais s'il est suivi du son "dur", lui même comparé à "dur","pur", alors il peut s'agir de pain, mais peut être de "pin dur" ou de "pain dur" mais non de peinture. La compréhension n'est rendue possible que contextuellement par une deuxième échelle de différences: celle des signifiés. Si dans le contexte du message le signifié "j'ai mangé du pin dur" n'offre aucune logique, c'est une autre virtualité: "pain dur" qui sera finalement retenue.  Ainsi s'effectue le découpage continu du son en unités discrètes. Il en va autrement dans la lecture, ou les unités sont prédécoupées et séparées par des espaces et des signes de ponctuation.
Comme pour la lecture humaine, la machine va recevoir linéairement un flux d'information dont l'unité est le caractère alphabétique. Pour reconnaître un mot, elle va de même procéder par élimination, en comparant d'abord chaque caractère à tous les autres puis en comparant le mot en formation à d'autres mots de la langue ( du langage ). S'il s'agit du mot "repeat", la machine visitera  tous les mots  qu'elle connaît pour identifier celui qui s'écrit "repeat" ( en simplifiant...).
Nous sommes loin de l'identification d'une unité par ses différences dans une langue parlée car nul signifié n'est à l’œuvre ici.
Concepts et actions
Lorsque le récepteur humain  associe un concept à une image acoustique par une langue partagée avec le locuteur, il ne le fait pas en associant une valeur particulière à un son, mais par la place qu'occupe ce son dans un découpage  possible: "le pain" n'est pas la même chose que "rupin" ou "alpin". C'est par sa position que l'élément linguistique prend sa valeur, pas par le son. C'est ce que Saussure appelle l'arbitraire du signe. Il n'y a aucun rapport entre le son "pain" et son référent réel, pour preuve les anglais disent "bread" et les allemands "brot".
De même dans les langages informatique, le mot "repeat" aurait pu être "iteration" ou "xrptrz", le choix du mot lui même n'ayant aucun rapport direct avec ce qu'on en fait.
L'image acoustique, ou le mot écrit sont associés à un concept, mais le mot clé du langage informatique est lié directement à une suite d'actions. Quand la machine reconnaît "repeat", la seule chose qu'elle puisse faire c'est de déclencher un, et seulement un, ensemble d'actions associées à ce mot. Ces actions consistent à délimiter l'ensemble de la "phrase" à venir qui est concernée par le "repeat", puis à répéter effectivement plusieurs fois les actions indiquées dans cet ensemble. Alors que le signe Saussurien est composé de deux faces inséparables: le signifiant et le signifié, le signe dans le langage informatique accole un signifiant et une action, ce qui donne à la machine sa qualité d'automate.
 La machine n'associe aucun concept aux unités de la langue. Elle  est dépourvue de tout concept n'ayant aucune connaissance, et ne peut agir que par des automatismes lorsqu'elle reconnaît des unités lexicales. Ces automatismes sont très peu nombreux: exécuter des traitements conditionnels répétés ou non, des opérations mathématiques,  des échanges avec la mémoire et sous traiter des tâches d'entrée/sortie ( lire / écrire des caractères ).
Même si les langages informatiques partagent quelques notions communes avec les langues humaines, ce qui est vraisemblable puisque l'émetteur/concepteur du message est humain, nous nous en écartons fondamentalement puisqu'il n'y a, (comment s'en étonner? ) aucune transmission de concept partagé, ce qui constitue la base fondamentale de la communication humaine.

Identifier une unité lexicale à une action, comme le fait l'ordinateur, fait sa spécificité d'automate. Son comportement apparemment ne laisse place à aucune liberté. Tout ce qu'il peut "connaître" de nouveau c'est la prochaine instruction à exécuter, instruction qu'il n'aura pas choisie puis qu'imposée par le programme se déroulant. Mais est-il si différent dans ce cas du militaire qui prend ses ordres ? celui ci n'est il pas comparable à un automate pour qui une phrase doit être traduite en un ensemble d'actions ?
 Cette analogie est évidemment une réduction du comportement du militaire, qui n'est pas une machine mais également une réduction du comportement de l'ordinateur qui est beaucoup plus qu'une simple machine.
Car exécuter des instructions de façon déterministe n'empêche pas de provoquer des actions aléatoires. L'ordinateur peut mathématiquement, et en utilisant quelques autres procédés, comme l'heure courante, ou des caractéristiques matérielles, générer des nombres aléatoires et par ce biais, sélectionner au hasard ( ou presque ) un traitement parmi d'autre possibles. On retrouve ici l'idée de "déviation" des atomes ou de "clinamen" chère à Epicure qui lui permet de sauver l'idée de liberté. Car comment concevoir la liberté si, comme le prévoyait Laplace, tout les états du monde et des êtres peuvent être calculés donc prédits ? Si l'aléatoire intervient dans la machine, il lui procure les prémisses de la liberté, ou de la folie...
Si l'ordinateur ne connaît aucun concept, il peut malgré tout apprendre. Au fur et à mesure que l'homme modélise ses propres processus cognitif, le programmeur peut permettre à la machine de simuler ces processus et les actions qui les constituent. En analysant les signaux chimiques qui circulent entre les neurones, il est ainsi possible de modéliser de manière très dégradée la façon dont ils fonctionnent. En remplaçant dans l'ordinateur les signaux chimiques et les neurones, par des fonctions mathématiques, il est possible de l'exercer à reconnaître une forme. Ainsi cette machine idiote peut-elle reconnaître un gribouillis d'adresse postale, une signature, un iris, une empreinte digitale, un visage, simplement par un apprentissage programmé basé sur un réseau de neurones numérique, laissant espérer qu'elle possédera un jour un pouvoir de connaître supérieure au nôtre.
L'ordinateur témoigne de ce que, malgré lui, l'homme tend à augmenter à l'infini ses capacités mentales et physiques à travers la machine, peut être pour tempérer son angoisse et tenter de comprendre ce qu'il ne saura jamais, dût il parcourir l'univers en tous sens: la cause première de toutes choses. Il témoigne aussi du primat délivré de nos jours à la vitesse. La principale qualité de l'automate réside en sa rapidité, processus qui déteint sur l'homme lui même, pour lequel la lenteur devient un défaut à chasser. Enfin la capacité multitâche des machines imprègne aussi l'homme d'une exigence de commutation rapide dans ses occupations diverses. Finalement est ce l'homme qui programme la machine où l'inverse ? 
Heureusement l'homme libre, archaïque et naturel, lorsque la contrainte se relâche, loin de la vitesse et des trépidations, se révèle-t-il encore une fois par an, pendant les vacances, allongé à ne rien faire sur le sable doré accompagné du murmure répétitif du ressac, ou sommeillant dans la verdure au bas d'un arbre sous le regard d'oiseaux pépiants dans la ramure.



Aucun commentaire: