0100011 Posté 5 avril 2018 Signaler Posté 5 avril 2018 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. 2
Bézoukhov Posté 5 avril 2018 Signaler Posté 5 avril 2018 Tu as lu ça : http://www.oezratty.net/wordpress/2018/rapport-villani/ ? Je ne sais plus qui l'a posté sur le topac Macron 1
0100011 Posté 5 avril 2018 Auteur Signaler Posté 5 avril 2018 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... 3
Anton_K Posté 5 avril 2018 Signaler Posté 5 avril 2018 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é.
Alchimi Posté 5 avril 2018 Signaler Posté 5 avril 2018 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.
Bézoukhov Posté 5 avril 2018 Signaler Posté 5 avril 2018 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.
Rincevent Posté 5 avril 2018 Signaler Posté 5 avril 2018 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.
Anton_K Posté 5 avril 2018 Signaler Posté 5 avril 2018 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.
0100011 Posté 6 avril 2018 Auteur Signaler Posté 6 avril 2018 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.
Bézoukhov Posté 6 avril 2018 Signaler Posté 6 avril 2018 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.
Rincevent Posté 6 avril 2018 Signaler Posté 6 avril 2018 @Kassad et @Anton_K : faites un article pour CP, nos lecteurs n'attendent que ça !
0100011 Posté 6 avril 2018 Auteur Signaler Posté 6 avril 2018 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.
0100011 Posté 10 avril 2018 Auteur Signaler Posté 10 avril 2018 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 ?
Rübezahl Posté 10 avril 2018 Signaler Posté 10 avril 2018 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.
0100011 Posté 10 avril 2018 Auteur Signaler Posté 10 avril 2018 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. 1
Rübezahl Posté 10 avril 2018 Signaler Posté 10 avril 2018 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.
0100011 Posté 10 avril 2018 Auteur Signaler Posté 10 avril 2018 Faut que je trouve un nouvel angle d'attaque...
0100011 Posté 10 avril 2018 Auteur Signaler Posté 10 avril 2018 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.
Rübezahl Posté 10 avril 2018 Signaler Posté 10 avril 2018 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.
Rincevent Posté 10 avril 2018 Signaler Posté 10 avril 2018 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.
0100011 Posté 10 avril 2018 Auteur Signaler Posté 10 avril 2018 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.
Mathieu_D Posté 10 avril 2018 Signaler Posté 10 avril 2018 Sur le sujet initial ma boîte et d'autres ont fondé un club pour faire du virtue signaling du point de vue producteur et integrateur d'IA. Le rapport a fait peur.
jubal Posté 10 avril 2018 Signaler Posté 10 avril 2018 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). 1
jubal Posté 10 avril 2018 Signaler Posté 10 avril 2018 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 ?
0100011 Posté 10 avril 2018 Auteur Signaler Posté 10 avril 2018 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.
h16 Posté 13 avril 2018 Signaler Posté 13 avril 2018 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.
POE Posté 14 avril 2018 Signaler Posté 14 avril 2018 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...
POE Posté 14 avril 2018 Signaler Posté 14 avril 2018 @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 ?
jubal Posté 14 avril 2018 Signaler Posté 14 avril 2018 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.
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant