Aller au contenu

Vilain rapport


Messages recommandés

  Je suis en train de lire le rapport Villani sur l'IA. Il est disponible par exemple ici : https://www.aiforhumanity.fr/pdfs/9782111457089_Rapport_Villani_accessible.pdf

 

   Je pense que ça mérite un fil. Pour le moment je n'ai pas grand chose à dire si ce n'est qu'on voit que Villani est passionné par le sujet mais n'y connait pas grand chose et a peu de recul. C'est vraiment un matheux qui parle d'informatique. Il y a d'ailleurs un chapitre entier intitulé "ouvrir la boite noire" qui montre à quel point il peut être à l'ouest sur certains aspects. Ce qu'on appelle l'IA, où les problèmes pour lesquels on l'utilise, sont précisément ceux qu'on ne peut pas bien expliquer (ie construire un algorithme dédié). C'est très étrange, et également technocratique, cette manière de penser qu'il y a forcément une explication et qu'en plus on doive la fournir de manière humainement compréhensible.

 

 

  • Yea 2
Lien vers le commentaire
1 hour ago, Kassad said:

Ce qu'on appelle l'IA, où les problèmes pour lesquels on l'utilise, sont précisément ceux qu'on ne peut pas bien expliquer (ie construire un algorithme dédié). C'est très étrange, et également technocratique, cette manière de penser qu'il y a forcément une explication et qu'en plus on doive la fournir de manière humainement compréhensible.

 

A mon avis l'emploi du terme "boîte noire" est malheureux parce qu'il est vrai que le problème n'est pas qu'on ne connaisse pas les algorithmes d'entraînement de réseaux de neurones, ou qu'ils soient difficile à expliquer parce que mathématiquement complexes. Le problème est que, bien que l'on sache que l'entraînement d'un réseau de neurone est un modèle d'approximation d'une fonction, on ne sait pas grand chose ni de la fonction approximée, ni de la fonction approximante représentée par le réseau entraîné. Ici, ne pas savoir c'est essentiellement qu'on n'a ni une idée symbolique de ces fonctions, bien sûr, ni de garantie sur l'erreur d'approximation. Pour sa défense, Villani recentre ensuite le débat sur la question de la garantie relative à l'erreur de prédiction, qui est plus terre à terre.

 

Je trouve par ailleurs que le fait que les deux problèmes (représentabilité/prévisibilité) soient découplés dans le cas du réseau de neurone est assez intéressant du point de vue de la théorie de l'approximation. J'ai du mal à mettre le doigt dessus mais j'ai l'impression qu'en mathématiques on a quand même une vision de l'approximation qui s'attache soit à des aspects symboliques (on ajoute des termes) soit à des aspects graphiques (on linéarise). La manière dont on approche le problème de l'approximation avec les réseaux de neurones est assez déroutante parce qu'on perd très vite la connexion entre les deux (si je comprends bien ce que mes amis théoriciens des modèles me disent, dans le domaine des classifieurs on commence à approcher le problème en terme du cardinal de l'ensemble de points qu'une fonction apprenable par un réseau donné peut séparer). Et pourtant quand on a une architecture simpliste et peu de layers, on a l'impression de comprendre un peu ce qui se passe... Bref je me mouille pas trop parce que c'est pas exactement mon domaine de spécialité.

Lien vers le commentaire
il y a 41 minutes, Kassad a dit :

Je viens de le lire merci.

 

 Sinon je commence la "Partie 6 – Pour une intelligence artificielle inclusive et diverse", le titre me laisse rêveur...

C'est de Villani un titre pareil? Ça veut bien dire ce que ça veut dire?

Il me déçoit.

Lien vers le commentaire
Il y a 1 heure, Anton_K a dit :

A mon avis l'emploi du terme "boîte noire" est malheureux parce qu'il est vrai que le problème n'est pas qu'on ne connaisse pas les algorithmes d'entraînement de réseaux de neurones, ou qu'ils soient difficile à expliquer parce que mathématiquement complexes. Le problème est que, bien que l'on sache que l'entraînement d'un réseau de neurone est un modèle d'approximation d'une fonction, on ne sait pas grand chose ni de la fonction approximée, ni de la fonction approximante représentée par le réseau entraîné. Ici, ne pas savoir c'est essentiellement qu'on n'a ni une idée symbolique de ces fonctions, bien sûr, ni de garantie sur l'erreur d'approximation. Pour sa défense, Villani recentre ensuite le débat sur la question de la garantie relative à l'erreur de prédiction, qui est plus terre à terre.

 

C'est autrement plus simple et écrit dans le paragraphe. Ça n'a rien à voir avec le risque. Tout simplement le législateur interdit d'utiliser certaines variables d'entrée (par ex. le sexe) ; rien ne dit que quelque part l'algorithme ne reconstruit pas un estimateur de cette variable "cachée" (le sexe) à partir des autres variables mise en input.

Et ça fait vraiment suer les ronds de cuir.

 

Il y a 1 heure, Anton_K a dit :

 

Je trouve par ailleurs que le fait que les deux problèmes (représentabilité/prévisibilité) soient découplés dans le cas du réseau de neurone est assez intéressant du point de vue de la théorie de l'approximation. J'ai du mal à mettre le doigt dessus mais j'ai l'impression qu'en mathématiques on a quand même une vision de l'approximation qui s'attache soit à des aspects symboliques (on ajoute des termes) soit à des aspects graphiques (on linéarise). La manière dont on approche le problème de l'approximation avec les réseaux de neurones est assez déroutante parce qu'on perd très vite la connexion entre les deux (si je comprends bien ce que mes amis théoriciens des modèles me disent, dans le domaine des classifieurs on commence à approcher le problème en terme du cardinal de l'ensemble de points qu'une fonction apprenable par un réseau donné peut séparer). Et pourtant quand on a une architecture simpliste et peu de layers, on a l'impression de comprendre un peu ce qui se passe... Bref je me mouille pas trop parce que c'est pas exactement mon domaine de spécialité.

 

Les réseaux de neurones, et les techniques de boosting, sont déroutantes parce que ce ne sont pas des mathématiques ; ce sont des bidouillages d'informaticiens qui ont le bonheur de marcher sans qu'aucun théoricien ne comprenne pourquoi. J'ai cru entendre qu'on avait quelques pistes pour le boosting.

 

Il y a 1 heure, Alchimi a dit :

C'est de Villani un titre pareil? Ça veut bien dire ce que ça veut dire?

Il me déçoit.

 

Faut voir à quel point il a été piloté par la technocratie... Parce que c'est quand même bien jargonnant leur rapport.

Lien vers le commentaire
Il y a 3 heures, Kassad a dit :

C'est vraiment un matheux qui parle d'informatique. Il y a d'ailleurs un chapitre entier intitulé "ouvrir la boite noire" qui montre à quel point il peut être à l'ouest sur certains aspects. Ce qu'on appelle l'IA, où les problèmes pour lesquels on l'utilise, sont précisément ceux qu'on ne peut pas bien expliquer (ie construire un algorithme dédié). C'est très étrange, et également technocratique, cette manière de penser qu'il y a forcément une explication et qu'en plus on doive la fournir de manière humainement compréhensible.

Les matheux ont mis pas mal de temps avant d'admettre que certains problèmes n'admettaient pas de solution analytique, et qu'il fallait au mieux en attendre des approximations (ce qui n'a par ailleurs jamais gêné les ingénieurs, pour le meilleur comme pour le pire). Là, c'est l'étape d'après : c'est le problème lui-même (i.e. ce que le réseau de neurones résout) qui n'est plus exprimable de manière analytique.

Lien vers le commentaire
1 hour ago, Bézoukhov said:

Les réseaux de neurones, et les techniques de boosting, sont déroutantes parce que ce ne sont pas des mathématiques ; ce sont des bidouillages d'informaticiens qui ont le bonheur de marcher sans qu'aucun théoricien ne comprenne pourquoi. J'ai cru entendre qu'on avait quelques pistes pour le boosting.

 

Je suis d'accord avec la prémisse, c'est avant tout un bidouillage à l'origine et une pratique empirique à l'heure actuelle, et je ne suis pas certain que ce qu'on cherche en général en matière "d'explication" des modèles entraînés soit bien défini. Maintenant, l'idée qu'on peut peut-être contraindre l'ensemble des fonctions apprenables par un réseau de neurone, même si je ne sais pas à quel point ça vaut une "explication", me semble intéressante en elle même, et on parle de travaux fondés sur des considération mathématiques en un sens assez classique du terme. Après, il y a aussi des approches non mathématiques qui peuvent relever de l'explication dans ce contexte, du type apprendre quelles sont les régions de l'images sont les plus déterminantes pour la classification, ce qui peut permettre de prévenir des erreurs de généralisation (cf. l'exemple du classifieur chien/loup dont on peut "voir" de cette manière qu'il ne regarde que la neige pour classifier... après comment approcher ça formellement, j'en sais rien, à ce stade ça relève d'une intelligence des données purement intuitive). En ce qui concerne le boosting je connaissais pas.

Lien vers le commentaire

 

La lecture contient de bon gros morceaux de technocrassie. J'en retiens une volonté assumée de mieux contrôler les choses par l'état : par exemple la mise en place d'un fichier "Dossier Médical Partagé" qui sera, sic, "alilenté par les données de remboursement de soins de l'assurance maladie". 

 

Bref je vois un chemin tranquille vers une évolution à la chinoise avec note des citoyens etc. 

 

C'est une inversion totale : on devrait se demander comment les IA peuvent nous libérer du monde de d'hier (en faisant sauter des verrous à l'action économique comme Uber ou Airbnb) alors que là on voit comment le premier réflexe est d'assujettir les IA au monde d'avant.

Lien vers le commentaire
il y a une heure, Kassad a dit :

 

La lecture contient de bon gros morceaux de technocrassie. J'en retiens une volonté assumée de mieux contrôler les choses par l'état : par exemple la mise en place d'un fichier "Dossier Médical Partagé" qui sera, sic, "alilenté par les données de remboursement de soins de l'assurance maladie". 

 

Genre une extension de ça ? http://www.dsn-info.fr/

 

Tout ce que les technocrates ont compris c'est que "+data => meilleur modèle" donc eux veulent faire ++data pour être les meilleurs et ça les arrange parce que chez eux ++data égal ++centralisation et ++gros systèmes informatiques.

Lien vers le commentaire

Bon je vais voir si je trouve le temps.

 

 

Pour le moment j'ai trouvé ça :

 

Citation

Résoudre le problème du partage de la propriété intellectuelle


Les meilleurs projets de collaboration académie-industrie se heurtent inévi-
tablement à des problèmes de partage de propriété intellectuelle (PI). Mais 
est-il possible de faire autre chose que du cas par cas ? Une possibilité serait 
de trouver des accords de partage équitable de la valeur créée et des droits 
de PI. On pourrait également, comme suggérée dans le projet d’Institut inter-
gouvernemental européen, purement et simplement abandonner la PI aux 
partenaires industriels, à condition qu’ils soient clairement et sans ambiguïté 
européens. Ou, comme cela se pratique outre-Rhin, séparer clairement les 
domaines applicatifs et fondamentaux, avec répartition de la PI en rapport. 
Il semble essentiel en tout cas que ce point ne soit pas bloquant, ni même 
retardateur du début des travaux communs.
Encourager la création de startups par les chercheurs

 

Qui donne une bonne idée de la tonalité du truc. Des grands moulinets d'air chaud. On s'apercevra que jamais la question du "comment faire concrètement" n'est abordée. 

Lien vers le commentaire

Quelques pépites glanées dans la lecture : 

 

Il doit être possible d’ouvrir les boîtes noires, mais également de réfléchir en amont aux enjeux éthiques que les algorithmes d’intelligence artificielle peuvent soulever

     

 

  Ben non on ne voit pas d'où ce "doit" sort. C'est une pétition de principe d'autant plus discutable que justement on utilise l'IA là où on ne comprend pas bien comment faire.      

                                                                                                                                                               

En matière d’IA, la politique d’inclusion doit ainsi revêtir un double objectif : s’assurer que le développement de ces technologies ne contribue pas à accroître les inégalités sociales et économiques ; et s’appuyer sur l’IA pour effectivement les réduire

 

Un contresens qui court tout le long de ce rapport : contresens entre la politique qui est l'expression d'une volonté et l'IA qui justement n'a jamais montré aucune volonté. Il est évident que l'IA ne sert qu'à optimiser ce qui existe (et donc in fine assoit le statu quo). Je n'ai jamais vu une rupture dont une IA serait à l'origine. Et pour cause : elles se basent sur les données de ce qui existe par sur ce qu'il pourrait exister.  

 

Cela pourrait passer par la constitution d’un corps d’experts publics assermentés, en mesure de procéder à des audits d’algorithmes, des bases de données et de procéder à des tests par tout moyen requis

 

Je passe sur les fondements théoriques vaseux (théorème de Rice et dépendances) que n'importe quel scientifique sérieux ayant suivi un cours de validation d'algorithmes possède qui font que la citation n'a aucun sens. Je veux bien avoir un débat scientifique avec Villani et son équipe pour qu'ils me montrent que ça ne veut pas rien dire. Ils vont passer tous les algos d'IA sous Coq ? 

Lien vers le commentaire
il y a 5 minutes, Kassad a dit :

Ils vont passer tous les algos d'IA sous Coq ? 

Je passe et j'en profite traîtreusement pour faire un petit HS.

 

Certains auraient des outils d'audit de code à recommander ?

Il s'agit de déterminer, pour du code open à installer, s'il contient des trucs craignos ou pas.

 

Avec un simple grep on peut déjà débusquer des choses,

mais j'imagine qu'il existe des outils spécialisés.

(Il y a peut-être aussi des forums dédiés sur ce sujet ?)

 

Merci.

 

Lien vers le commentaire
19 minutes ago, Rübezahl said:

Je passe et j'en profite traîtreusement pour faire un petit HS.

 

Certains auraient des outils d'audit de code à recommander ?

Il s'agit de déterminer, pour du code open à installer, s'il contient des trucs craignos ou pas.

 

Avec un simple grep on peut déjà débusquer des choses,

mais j'imagine qu'il existe des outils spécialisés.

(Il y a peut-être aussi des forums dédiés sur ce sujet ?)

 

Merci.

 

La réponse théorique est que ce que tu cherches ne peut pas exister. Toute classe non triviale de fonctions récursives partielles est indécidable (théorème de Rice). Donc il ne peut exister d'outil automatique d'audit te prouvant que ton code ne sera pas néfaste. 

 

Au mieux tu peux avoir une liste de cas particulier (type les antivirus) que ton programme va scanner dans le logiciel que tu cherches à auditer.

 

 

 

 

  • Ancap 1
Lien vers le commentaire
il y a 1 minute, Kassad a dit :

La réponse théorique est que ce que tu cherches ne peut pas exister. Toute classe non triviale de fonctions récursives partielles est indécidable (théorème de Rice). Donc il ne peut exister d'outil automatique d'audit te prouvant que ton code ne sera pas néfaste.

Au mieux tu peux avoir une liste de cas particulier (type les antivirus) que ton programme va scanner dans le logiciel que tu cherches à auditer.

Je ne cherche en effet pas de soluce miracle prouvant l'innocuité.

Plus modestement, juste un outil à repérer les trucs (failles de sécurité) classiques craignos.

Lien vers le commentaire
4 hours ago, Rübezahl said:

Je ne cherche en effet pas de soluce miracle prouvant l'innocuité.

Plus modestement, juste un outil à repérer les trucs (failles de sécurité) classiques craignos.

 

J'imagine que tu trouveras pas beaucoup mieux que de faire un checksum ou autre signature sur le source  que tu compares à un repository sur site réputé fiable. 

Lien vers le commentaire
il y a 2 minutes, Kassad a dit :

J'imagine que tu trouveras pas beaucoup mieux que de faire un checksum ou autre signature sur le source  que tu compares à un repository sur site réputé fiable. 

Le checksum c'est très bien.

Mais je pense à des saletés introduites volontairement, avant, dans un code open.

Planqué discretos parmi 5000 fichiers.

 

Petits embryons de piste :

* https://en.wikipedia.org/wiki/Code_audit

* https://www.openfoundry.org/en/resourcecatalog/Security/Source-Code-Audit

 

... ça doit forcément exister.

Lien vers le commentaire

Bah, on peut détecter certains code smells, mais on ne peut pas simuler un programme plus simplement qu'en l'exécutant. Donc la seule manière de détecter tous les codes malfaisants, c'est de le faire a posteriori. Les code smells détectables, c'est une petite partie des codes malfaisants qui existent (et une partie encore plus petite, quasiment négligeable, de tous les codes malfaisants possibles).

 

Au final, un tel détecteur détecte moins le code malfaisant que les limites de l'imagination des gens qui pondent du code malfaisant.

Lien vers le commentaire
29 minutes ago, Rincevent said:

Au final, un tel détecteur détecte moins le code malfaisant que les limites de l'imagination des gens qui pondent du code malfaisant.

En fait si on veut produire un virus immunisé on va justement prendre le programme d'audit et répandre le virusdans le soft en fonction du programme d'audit qu'on veut tricker.

 

De la même manière que dans la hiérarchie arithmétique on construit des problèmes indécidables "mécaniquement" pour des oracles de plus en plus puissants. C'est le Turing Jump : on définit K^O comme l'ensemble des indices de MT relativement à un oracle O qui convergent sur leur propre code. On peut alors prendre K^O comme nouvel oracle (on peut alors décider l'appartenance à K^O) pour lequel on peut construire K^(K^O) qui est de nouveau indécidable. Etc.

Lien vers le commentaire
6 hours ago, Rübezahl said:

Certains auraient des outils d'audit de code à recommander ?

Il s'agit de déterminer, pour du code open à installer, s'il contient des trucs craignos ou pas.

 

On m'a parle de https://www.sonarqube.org mais j'ai jamais essaye.

Évidemment ça ne détectera jamais tout, mais ça doit être mieux que rien. Si il ne reste plus que des bugs très difficile a trouver c'est déjà bien (les personnes capables de les trouver sont rares et ne vont pas forcement chercher).

 

 

  • Ancap 1
Lien vers le commentaire
29 minutes ago, Kassad said:

En fait si on veut produire un virus immunisé on va justement prendre le programme d'audit et répandre le virusdans le soft en fonction du programme d'audit qu'on veut tricker.

 

De la même manière que dans la hiérarchie arithmétique on construit des problèmes indécidables "mécaniquement" pour des oracles de plus en plus puissants. C'est le Turing Jump : on définit K^O comme l'ensemble des indices de MT relativement à un oracle O qui convergent sur leur propre code. On peut alors prendre K^O comme nouvel oracle (on peut alors décider l'appartenance à K^O) pour lequel on peut construire K^(K^O) qui est de nouveau indécidable. Etc.

 

J'ai pas compris, comment tu produis un virus immunise ?

 

Lien vers le commentaire
1 hour ago, jubal said:

 

J'ai pas compris, comment tu produis un virus immunise ?

 

Ce que je décrivais est le résultat théorique sur le fait que même en prenant une machine magique qui rend décidable certain problèmes indecidables on arrive quand même à construire de nouveaux problèmes indécidable pour ces machines augmentées.

 

En pratique pour produire un virus immunisé il faut avoir l'anti-virus de la personne que tu cherches à infecter. Typiquement il va chercher une certaine classe de signature pour un virus spécifique.  Par exemple si l'anti virus cherche à le reconstituer en récoltant des lignes de codes : en imaginant que le méchant transforme le programme p1;p2;p3 en p1;v1;p2;v2;p3 alors en réarrageant les lignes je peux retrouver le virus v1;v2. Si je sais que l'antivirus fait ça alors je vais bidouiller p1;p2;p3 en utilisant les variables du programmes (par exemple quand il y a y:=f(x) je vais faire y:=f(x)+v et quand il y a des utilisations légitimes de y je les remplacé par y-v et sinon je fais les calculs de virus en réutilisant les variables du programme d'origine. Même en réarrageant les lignes on ne pourra retrouver sa trace. Là encore on peut retrouver cette manière de cacher un virus ... Mais il me suffit de 45 secondes pour trouver une nouvelle méthode pour embarquer le virus d'une manière invisible pour ce nouvel antivirus. La course est  infinie.

Lien vers le commentaire
Le 10/04/2018 à 15:35, Rübezahl a dit :

Le checksum c'est très bien.

Mais je pense à des saletés introduites volontairement, avant, dans un code open.

Planqué discretos parmi 5000 fichiers.

 

Petits embryons de piste :

* https://en.wikipedia.org/wiki/Code_audit

* https://www.openfoundry.org/en/resourcecatalog/Security/Source-Code-Audit

 

... ça doit forcément exister.

 

De façon auto, pas encore.

Lien vers le commentaire
Le 10/04/2018 à 16:02, Rincevent a dit :

Bah, on peut détecter certains code smells, mais on ne peut pas simuler un programme plus simplement qu'en l'exécutant. Donc la seule manière de détecter tous les codes malfaisants, c'est de le faire a posteriori. Les code smells détectables, c'est une petite partie des codes malfaisants qui existent (et une partie encore plus petite, quasiment négligeable, de tous les codes malfaisants possibles).

 

Au final, un tel détecteur détecte moins le code malfaisant que les limites de l'imagination des gens qui pondent du code malfaisant.

 

L’ideal ce serait d’inoculer volontairement le virus dans une machine test faite pour révéler les virus...

Lien vers le commentaire

@kassad pour ton article tu pourrais creuser sur le contre sens que tu décris, puis élargir ensuite à cette volonté de politiser la science en introduisant des objectifs de réduction des inégalités sociales et economiques...si on reflechit deux secondes cette idée de passer l IA à la moulinette du politique c’est complètement inutile et infaisable, comme si on faisait la même chose avec la recherche scientifique en général. Les plus grands progrès scientifiques ne sont pas fait de cette manière. On dirait vraiment que Vilani veut faire le bon élève en reprenant les éléments de langage de réduction des inégalités gnagnagna. As t il ne serait qu’une fois dans ses recherches en math contribue à réduire les inégalités ?

 

Lien vers le commentaire
57 minutes ago, POE said:

 

L’ideal ce serait d’inoculer volontairement le virus dans une machine test faite pour révéler les virus...

 

Ça se fait déjà de manière automatique avec des machines virtuelles. C'est pour ça que pas mal de virus/malware/backdoor essayent de voir si ils sont dans une machine virtuelle, et si ils le sont ils ne s'activent pas.

Lien vers le commentaire

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...