 Le très grand plaisir et l'honneur d'accueillir Emmanuel Candès qui est professeur de statistiques à l'université de Stanford Alors quelques éléments de biographie donc donc Emmanuel a fait toutes ses études en France jusqu'à sa thèse où il est parti donc réaliser sa thèse sous la direction de David Dono avec qui il a travaillé sur des sur des questions de théorie de l'approximation et vous avez notamment généralisé les raisons de lettes enfin vous avez appelé ça les curve lettes, les ridgelettes pour des problèmes d'imagerie alors tu as fait plein de choses mais en particulier Emmanuel il a travaillé sur les problèmes de compress sensing en deux mots le compress sensing c'est l'ensemble des techniques qui permet de regarder les solutions de systèmes sous-déterminés quand on prend en compte des questions de parsimony voilà et puis vous avez obtenu donc des résultats absolument remarquables notamment avec avec Terrence Taot qui ont eu un impact très important et puis donc ça a permis de résoudre beaucoup de questions pour pour les problèmes en grande dimension qui sont extrêmement important pour pour plein de champs disciplinaires alors c'est pour nous c'était vraiment important d'avoir Emmanuel présent aujourd'hui donc c'est pour ça qu'on est contents de l'entendre. Voilà je te laisse, je te laisse là-bas. Merci bien ça marche, ça marche, ok. Bah écoutez merci pour cette introduction je remercie la société française de statistiques de m'inviter et aussi d'organiser cette journée spéciale qui s'annonce merveilleuse je vais eu avant de commencer je voudrais dire que bon bah j'ai comme Vincent l'a dit j'ai fait toute ma carrière aux états unis et je n'ai pas l'habitude de faire beaucoup d'exposé en français donc si jamais vous entendez des mots anglais je m'en excuse il y a même des mots que je ne vais pas essayer de traduire du tout donc et en fait aujourd'hui je vais vous essayer de vous parler d'un sujet qui est peut-être un peu orthodoxe qui pas tellement orthodoxe qui est et qui en fait avoir avec comment est-ce qu'on peut organiser le calcul dans les big dans le big data world dans ce que j'appelais le big data world à partir de maintenant en utilisant des idées statistiques finalement et c'est un sujet un peu surprenant qui est un peu entre les statistiques et l'informatique et dont je voudrais vous parler alors le on est officiellement dans l'ère des big data et une caractéristique de l'ère des big data c'est que les data deviennent bigger bigger and bigger and it's on a l'impression que ça va s'arrêter c'est-à-dire que on était dans le pétascale maintenant on commence à rentrer dans l'exascale il n'y a absolument aucune limite à notre capacité à acquérir des données de très très très grande dimension et en fait l'idée de cette conférence qui n'est pas vraiment sur mon travail personnel bon évidemment vous allez voir que j'ai fait quelques petites choses mais c'est pas du tout mon travail que j'essaye de promouvoir ici et venu alors que j'assistais à une table ronde à la foundation Siemens il y a à peu près ça un an sur justement les challenges que représente cette entrée dans le monde des big data et alors c'était une table ronde très très intéressante où il y avait autour de la table des gens merveilleux de toutes les disciplines et en particulier il y avait Alex Chalek qui était un astronome de john sopkins et nick Patterson qui était qui faisait la population généale ex qui est du broad Institute tous les deux aux états unis et en fait je vais vous dire un peu ce qu'ils ont communiqué et ce qu'ils ont communiqué je pense que c'était quelque chose que vous avez tous entendu et on va commencer par Alex qui dit qui fait quelque chose d'observation qui sont absolument pas controversés je crois qui dit ben évidemment les données sont en train de croître avec une vitesse exponentielle et ça ça touche toutes les sciences à la fois que ça tout ça se passe très très très rapidement que les données deviennent de plus en plus publiques tout le monde a accès à beaucoup de données en particulier dans l'astronomie etc et que ça s'appose des changements à toutes les sciences qui sont pas du tout par epsilon mais qui sont des changements très profonds et ce qu'on a ce à quoi on assise aujourd'hui qui me semble très très intéressant c'est qu'il y a une sorte de convergence des sciences de la vie et des sciences physiques autour des big data et moi je dirais un peu je ça c'est les mots de Alex moi je dirais plutôt autour de la statistique et du calcul en fait du calcul scientifique alors une des choses que Alex avait mis en avant c'est que dans ce monde des big data et ben les disciplines ne sont plus isolés que tout d'un coup on a des problèmes multifaces c'est plus simplement le problème des astronomes c'est plus un problème de statisticiens mais c'est un peu les problèmes de tout le monde ensemble et Alex disait ben voilà il faut établir les nouvelles fondations mathématiques et statistiques de ce monde et là je dois bien dire que quand je regarde un peu la communauté statistique elle a été merveilleuse de réponse c'est à dire que la agenda on avait eu une blague aux états unis qui dit quand j'étais étudiant à Stanford en statistiques on disait si fichier revenait il faudrait combien de temps pour le mettre au courant de ce qu'on a fait et une semaine deux semaines et aujourd'hui je pense que si fichier revient il comprendrait pas le monde dans lequel on vit dans le ce monde où tout d'un coup le nombre de variables est beaucoup plus grand que le nombre d'observation etc la statistique a complètement changé et là je voudrais vraiment tirer mon chapeau à la communauté statistique qui a complètement transformé la recherche pour adresser les problèmes posés par le big data en parallèle il faut évidemment des nouvelles approches calculatoires, computationnelles pour deal avec ce big data world et une chose qu'on entend beaucoup aux états unis c'est ben maintenant ça sert plus à rien de discuter d'algorithmes dans le vide ce qu'il faudrait faire c'est plutôt changer le paradigme et de dire ben quelle est l'algorithme que je dois utiliser si j'ai une heure si j'ai une semaine si j'ai un mois si j'ai une minute et les réponses peuvent être complètement différentes et finalement il y a aussi le dernier point d'Alex donc en fait il y a eu des des journées à propos de la statistique de l'année de la statistique et donc j'étais à Londres pour le peut-être la cérémonie de clôture de la statistique anglo-saxon et en fait dans mon allocution j'avais parlé beaucoup du problème des big data qui est en fait le fait que la science devienne on a du mal à reproduire les expériences scientifiques et en fait ça s'est un peu créé par justement ce changement dans la dans l'approche scientifique des gens où on est passé d'une approche popérienne où on formule des hypothèses on on collecte les data et on vérifie si l'hypothèse tient a une approche complètement moderne où maintenant on génère plein de data on regarde les data et on formule les hypothèses et on les teste à la fois et alors ça ça crée des problèmes ça crée des problèmes parce que si vous regardez les journaux anglo-saxons et c'était le sujet de mon exposé à l'ondres si vous regardez les sujets les journaux anglo-saxons vous dites bah y'a un problème avec la méthode scientifique donc si vous regardez l'économie je sais pas s'il y avait des journaux des articles équivalents en france mais quand vous oeuvrez la presse anglo-saxon que ce soit le new york times que ce soit le new yorker que ce soit l'économiste vous voyez énormément d'articles comme ça en disant y'a une crise dans la science on n'arrive plus à la reproduire et et qu'est ce qu'on fait et donc tout ça c'est très très inquiétant par exemple pour vous donner des exemples de ce qu'on peut voir dans les journaux grand public je vais prendre le cas de deux sociétés une société qui est américaine qui s'appelle amgen et cette société a essayé de reproduire 53 études qui sont considérées comme des landmarks dans la recherche sur le cancer ils en ont pris 53 et ils en ont réussi à reproduire six 47 on trouvait plus rien les allemands elles de hell square ont pris pareil 67 études qui considèrent séminal et on n'arrive pas les trois quarts ne l'arrivent pas à le reproduire donc il y a vraiment une crise dans la méthode scientifique si on regarde c'est pas nouveau si on regarde un peu le rapport kaplan pour ce qui concerne la food and drug administration aux états unis et bah quand vous arrivez au dernier test il y a plusieurs tests la phase 1 la phase 2 la phase 3 quand vous avez les 50% de ce point de la politique et donc là il y a une une une une crise et en fait ce que je vois moi c'est qu'il y a un danger qui est qui est très très important d'avoir une érosion de la confiance du public dans la méthode scientifique et dans le discours des scientifiques et si moi aux états unis j'étais perçu par le public américain comme un politicien c'est vraiment la fin du monde d'une certaine manière et donc ce que je voulais juste vous dire c'est que ça c'est un sujet qui moi me tient énormément à coeur sur lequel je m'informe sur lequel qui va dominer beaucoup de ma recherche à venir il me semble que la communauté scientifique est en train de répondre à cette à ce changement et je dirais que avec tous les travaux par exemple de bénie aminier-ochberg sur les ce que beaucoup de choses sont pas reproductibles par exemple parce qu'on ne on ne tient pas compte des faits que quand on génère des hypothèses en gardant les data on génère un nombre d'hypothèses qui manquent extrêmement grand et donc quand on essaye de décider ce qui est vrai il faut il faut tenir compte de cet univers d'hypothèses qui est non et les gens n'ont tienne pas souvent compte et je voudrais dire que encore une fois c'est un domaine sur lequel la statistique est confrontée et répond de manière magnifique par exemple à travers les travaux de bénie aminier-ochberg et donc les statisticiens sont appelés à répondre je pense que c'est vraiment puisque on parle d'horizon de la statistique je pense que les statisticiens par nature sont un peu les garants de l'intégrité de la science et qu'il faut que ça continue et que on est on continue à jouer un rôle prépondérant dans dans l'analyse des données dans les conclusions qui sont tirées de l'analyse des données etc alors moi j'ai été contacté par le journal science pour savoir science tous les grands journaux scientifiques qui n'ont rien à voir que journaux de notre domaine science nature sont très très impliqués et très inquiète de cet état des choses et par exemple si vous regardez dans ce qui se passe de moi je trouve de très positifs dans le monde aujourd'hui si vous regardez nature pour exemple ils ont complètement changé leur ligne éditoriale et donc il y a un article de nature des éditeurs du 25 avril 2013 qui dit maintenant la statistique ça avait l'air d'être ennuyeux pas intéressant ce qui nous intéresse est la mémoire de l'eau et c'est en train de complètement changer où ils disent maintenant on veut voir le modèle statistique on veut votre software on veut vos data on va tout vérifier etc et donc ça je trouve que c'est des moyens des choses très très très intéressantes pour redonner une place importante à la statistique dans le discours scientifique et en même temps moi j'ai été contacté par science pour aussi voir ce qu'ils peuvent faire de leur côté pour éviter de publier des articles qui se révèlent être faux finalement alors je vous ai un peu parlé d'un des choses moi j'estime que de tout le temps j'ai fait mon doctorat en statistique il n'y a jamais eu pénurie de statistique toujours eu pardon une pénurie de statisticiens et donc si je sais pas s'il y a des gens sur youtube qui nous écoutent là je vois cette je sais pas combien il y a de jeunes dans cette salle je n'arrive pas trop à voir mais j'ai des enfants et moi je leur dis écoutez mais je dis à mes enfants si vous l'êtes sûr de trouver un job étudier la statistique parce qu'il n'y a pas de science que je considère plus d'avenir que la statistique aujourd'hui donc je dis ça aux jeunes qui peuvent être sur youtube et moi je me souviens très bien quand j'étais étudiant à stanford les golden boys qu'on appelait les golden boys les gens qui avaient le monde à leurs pieds c'était les gens qui faisaient de electrical engineering dans la silicone valet ou de l'informatique et aujourd'hui je dois vous dire que les gens qui ont le monde à leurs pieds c'est nos étudiants c'est à dire les google facebook ça râche les gens qui ont une expertise en statistiques et donc je pense que pour les jeunes qui nous regardent c'est un sujet très très important alors je vous ai parlé un peu de la crise de la méthode scientifique et en fait mais c'est pas le sujet de mon taux que je voudrais revenir un peu sur un autre point que vous avez alex et on arrive bien à voir mais ça est peut-être qu'il faut que j'éteigne le le fond et en fait je vais vous parler un peu des un peu de ce qui concerne les scientifiques aujourd'hui qui est comment est-ce qu'on calcule avec le big data je crois que Jean-Luc va vous vous parler du big data dans l'astronomie mais ce qui est intéressant dans l'astronomie c'est que ben ils sont ils ont des petabytes of data maintenant ils vont avoir des exabytes of data qui arrivent etc et donc ils ont des problèmes d'une massivité qui est absolument phénoménale où il faut qu'ils processent des terabytes des petabytes de data on est de manière quotidienne quasiment et donc et c'est ça qui les intéresse c'est-à-dire qu'est-ce que nous on peut offrir comme méthode même de calcul quand on a des données gigantesques de data alors cédric parlait du du cerne et du boson par exemple cerne il y a tellement de data que dès que les data sont collectés elles sont voyées au coin du monde parce qu'on sait même plus les stockés etc et la raison pour laquelle c'est que des gens comme Jean-Luc et on est capable de de construire des télescopes qui sont plus en plus puissants etc et donc on génère des quantités données absolument faramineuses donc je vous apprends rien quand je vous dis ça et donc la question c'est comment est-ce qu'on calcule même comment on fait des choses simples comme l'analyse principale en composant le principal quand les données sont de taille gigantesque et alors d'après l'intervention de Alex qui est vraiment une personne absolument remarquable nick Patterson donc qui est étudié la population genetics au broad institute et aux états unis lui a d'autres problèmes qui sont un peu les mêmes finalement donc lui il fait plutôt de la génétique il fait de la génétique et en fait il essaie de trouver les endroits sur les génomes qui pouvaient être corrélés avec une chose que vous n'avez pas envie d'avoir comme l'autisme ou je sais pas et le problème dans les dans les problèmes et je vais passer les détails du problème d'Alex parce que je voudrais arriver de nick qui devrait arriver au point principal c'est que bon les populations ne sont pas bien pas bien match donc il faut essayer d'éliminer des variables confondantes et ils le font par une méthode d'analyse en composant le principal qui me dit marche bien et le problème que nick voit c'est que bas maintenant lui il est dans son institut il a des études de plus en plus grandes avec des gens de nombre de gens dans son étude peut-être 50 000 100 000 des normes de variables qui sont dans le lors du million et à la et nick dit bah voilà je sais pas quoi faire à ce moment là c'est à dire j'ai une matrice qui a 100 000 rangés 1 million 2 millions 3 millions de colonnes il faut que j'extraie les faire une analyse en composant le principal je sais pas quoi faire et donc c'est un peu ça dont je vais vous parler c'est aujourd'hui donc le sujet dans la demi-heure qui me reste c'est je vais vous parler un peu de une approche nouvelle sur comment est-ce qu'on peut organiser le calcul scientifique en très très grande dimension c'est à dire et on peut prendre un exemple simple maintenant mon taux va être très très simple on m'a dit que j'allais parler de maths mais en fait pas tellement on va on va savoir on va s'intéresser au problème de calcul des composants principales de matrice qui ne qui ne qui ne rentre pas en mémoire et ce qu'on va voir un peu suivant ce que cédric disait tout à l'heure c'est que les méthodes aléatoires sont extrêmement puissantes alors évidemment c'est un un sujet qui est qui est un peu à la limite entre les statistiques et l'informatique et le calcul donc c'est un peu ça les big data c'est des statistiques du calcul etc et donc on va parler de randomize d'algorithmes d'algorithmes aléatoires et on va voir que ces algorithmes sont rigoureusement très précis alors il y a des choses qu'on savait faire avant donc cédric on a parlé un petit peu dans la dans son introduction on utilise des méthodes aléatoires depuis très longtemps maintenant pour résoudre des problèmes extrêmement durs comme par exemple tout le monde connaît doit connaître le traveling salesman problème voilà c'est un problème qui est connu notoirement pour être extrêmement difficile et effectivement il y a des approches type mark of chaine monté carlot qui permettent de ça d'avoir une bonne solution grosso modo si on a si on a un temps nécessaire mais c'est pas ça dont je vais vous parler ça c'est bien connu vous parlez de en regardant un peu dans le futur de choses un peu nouvelles qui ont moi ce qui m'intéresse c'est des choses beaucoup plus simples que le traveling salesman problème c'est comment est ce que je peux faire calculer faire d'analyses en composant de principales quand la matrice elle est peut-être distribuée aux quatre coins du monde ou elle est peut-être distribuée sur le campus de stand fort sur plusieurs machines qui sont qui sont connectées mais qui sont pas la même et finalement quand est-ce que les data qui ne peuvent pas être rentrés en mémoire vives sont stockés sur ce qu'on appelle en anglais le second de la mémoire device alors ça la mémoire morte ou mémoire morte mémoire morte très bien d'accord alors je vais vous parler un peu de ces nouvelles méthodes et comme je l'ai dit c'est pas vraiment mon travail je voulais juste un peu soumettre ces idées à la comité statistique française et je dois remercier pergunard martinson avec qui j'ai eu de nombreuses discussions et qui m'a aidé à préparer cette cette cette présentation et si vous êtes intéressé si j'arrive à faire quelque chose aujourd'hui c'est vous donnez l'envie de lire cet article somptueux qui un peu résume l'état de l'art sur les idées stochastiques pour le calcul très pratique en grande dimension et moi même j'ai fait un travail avec avec raffi witten là dessus ok donc comme je vous l'ai dit qu'on soit clair c'est pas vraiment mon activité de recherche alors le problème qu'on va regarder aujourd'hui il est extrêmement simple c'est un problème de de trouver des des approximations de rent faible donc je vous donne une matrice de taille gigantesque qui va voir de maintenant m rangé et n colonne vous pensez à m égale un million et n égale un million il va falloir trouver une approximation de cette matrice qui est un problème complètement central dans le statistique enfin toutes les sciences il va falloir essayer de représenter cette matrice qui est une matrice énorme avec un million de colonne et un million de il faudrait plusieurs hard drive pour la stocker etc et on va essayer de l'approcher on va essayer de la la construire de la représenter donc cette matrice énorme ma matrice a comme le produit de deux matrices comme ça donc on va trouver une approximation de rent faible donc réduire la dimension et essayer de factoriser cette matrice comme le produit de b et c ou en fait la matrice b elle n'a que très peu de colonne et des factorisations de ce type c'est un calcul absolument primitif qui ça pourrait être la des factures de son type ça pourrait être la la décomposition en valeur propre ça pourrait être la décomposition en valeur singulière ça peut être la décomposition qr etc ça peut être des choses un peu plus modernes mais de toute façon dès qu'on regarde un problème de appliquer il y a souvent un problème de dimension de réduction de la dimension qui est à cette forme alors les applications si vous avez fait ça vous avez fait plein de choses parce que c'est le l'outil essentiel dans l'analyse en composant le principal évidemment mais aussi dans le multidimensional scaling si vous faites du clustering ça apparaît si vous voulez résoudre des problèmes de moindre carré bah il va falloir écrire factoriser la matrice etc donc évidemment c'est le c'est le b à bas du calcul scientifique de pouvoir faire ce genre de choses donc tout le monde est intéressé dans l'analyse multivarié à à faire du clustering à faire du principal components etc etc donc aujourd'hui si on regarde un peu quand vous ouvrez votre software paquets j'ai que vous regardez bah quels sont les outils pour faire ce genre de choses bah vous avez des algorithmes en R en MATLAB en ce que vous voulez qui sont très très bien qui c'est pour une matrice de taille n par n tourne en temps de calcul qui est n cube et qui ont été tous désignés enfin qui ont tous construit pour minimiser le nombre de floating point operation donc le nombre de flops que on puisse faire et si jamais je cherche à avoir une décomposition en gardant en essayant de trouver que les premières vecteurs principaux bon bah je peux faire un peu moins un peu mieux que n cube je peux faire n carré x k le nombre de vecteurs de l'ordre de ça et il y a des méthodes classiques aussi qui font ce genre de choses mais je vais pas parler de ces méthodes parce que ces méthodes ont été on n'ont pas été faites pour le big data world elles ont été faites pour un monde où le coût du flop est très élevé or et là c'est un peu mon analyse de la situation aujourd'hui et bien aujourd'hui donc si j'essaye de regarder de surveiller un peu l'état de l'art dans les dans l'architecture des ordinateurs et du calcul en général c'est pas du tout le flop qui est le bottleneck qui limite le statisticien qui limite le biologiste c'est plutôt le ce que je vais appeler le data transfer le data movement qui est le facteur limitant et en fait si on regarde un peu les progrès en informatique et en hardware on voit on se rend compte que le coût du flop continue à baisser parce qu'on a des aujourd'hui des graphicoles processing unique des gpu il y a le cloud computing il y a des architectures multicore etc le coût du stockage en mémoire morte continue de baisser lui aussi à cause de flash memory le hard drive etc les coûts de communication baissent mais pas très vite et par contre je dirais que le coût de la mémoire vive lui ou la quantité de mémoire vive qu'on a disponible et bah ça m'éliore pas beaucoup ça et en fait on pourrait même dire que ça se décroie parce qu'en fait comme il y a aujourd'hui on a de plus en plus de corps le nom la mémoire vive par corps elle elle tend à diminuer en fait et alors la conséquence de ça c'est que en fait bah déjà pour un statisticien de comme nick de pouvoir faire l'analyse composante en principal c'est très compliqué et si j'utilise les algorithmes dits classiques ce qu'ont été développés depuis 1950 et bah ils vont j'ai donné leur complexité en tant que flops mais en fait ce qu'on comprend c'est que dans ce monde des big data le coût de calcul le temps de calcul n'est pas en fait proportionnel en nombre de flops il est proportionnel au nombre de fois que je vais devoir lire les données donc la la constrain de algorithmes quand vous voulez construire des algorithmes pour faire du big data c'est vraiment d'essayer de garder le data mouvement de le rendre minimal il n'y a pas de transit des données et donc c'est ça c'est-à-dire que vraiment ce qui limite le calcul aujourd'hui c'est pas tellement le flop c'est plutôt d'amener si vous voulez les données qui sont ces données gigantesques de mémoire morte en mémoire vive de les lire et quand on quand on désit quand on veut construire des algorithmes qui font ça et bah il faut essayer de minimiser ces mouvements et aussi il faut essayer d'utiliser au maximum ce qu'on sait bien faire est ce qu'on sait bien faire c'est multiplier les matrices et ça on sait bien le faire sur les le cloud on sait bien le faire sur le multicore processeur sur les gpu etc donc on va regarder un problème très simple qui est en fait essayer de trouver les composants le principal donc je vais vous donner une matrice de taille énorme et ce qu'on voudrait avoir c'est calculer sa décomposition en valeur singulière ok j'imagine que tout le monde sait ce que c'est la décomposition en valeur singulière oui ok si on sait pas ce que c'est c'est pas du tout grave non non c'est pas du tout grave non sérieusement c'est pas grave du tout considérer qu'on veut calculer les composants le principal c'est tout là que la matrice est symétrique et on veut calculer les composants le principal c'est exactement la même chose tout est pareil ok donc on veut factoriser cette matrice comme une matrice orthogonal une matrice diagonale et une autre matrice orthogonal ok et en fait on va faire ça par une méthode probabiliste qui est nouvelle et qui à mon avis va transformer le calcul tel qu'on le connaît de manière très profonde alors l'idée c'est bah voilà donc j'ai j'ai j'ai une une matrice de taille énorme et je vais essayer de trouver ces ces composants le principal les plus grandes composants le principal donc voilà donc on a une matrice de taille énorme et on va et enfin énorme voilà il faudrait que je dessine en très grand parce qu'elle est énorme mais et on va essayer de trouver une matrice orthogonal u une matrice diagonale sigma et une autre matrice orthogonal pour décomposer la la matrice de cette forme ok ça tout le monde veut faire ça et en fait on va décomposer le problème en deux étapes la première étape qui est l'étape que vous voyez en rouge sur le slide elle va dire bah voilà en fait il faudrait le premier étape je vais essayer de trouver une matrice orthogonal q voilà je vais essayer de trouver une matrice orthogonal q telle que comme la matrice q est orthogonal bah bon c'est juste un le seul élément d'algèbre linéaire que je vais utiliser la matrice qqqq transpose bah c'est en fait une matrice qui projette sur les colonnes de q c'est une matrice de projection qui qui qui projette sur les colonnes de q et donc je vais essayer de trouver une matrice orthogonal telle que bah la matrice a puisse s'écrire grosso modo comme une matrice de projection x a donc en fait qu'est ce que dit cette approximation elle dit que et ben quand je projette a sur les colonnes de q j'ai en fait a donc q c'est une bonne approximation de l'image de a d'accord donc c'est ça l'étape numéro 1 c'est l'étape dont on va parler énormément et une fois qu'on a cette matrice q bah je dis qu'une fois qu'on a cette matricule le problème est fini quoi que vous vouliez faire le problème est réglé pourquoi parce que voilà donc voilà donc on a trouvé cette matrice q donc on a trouvé une matrice q orthogonal voilà a c'est à peu près qq prime fois a donc si j'utilise mes dessins encore une fois ben on a la matrice énorme a qui en fait une matrice très fine maintenant q fois la matrice b et comme maintenant j'ai un tout petit nombre de colonnes parce que je sais pas moi j'essaye de combien de composantes principales vous voulez 10 on va être 200 peut être 300 voilà quelque chose comme ça donc mais ça c'est tout d'un coup c'est matrice maintenant elle rentre en mémoire j'avais un million de colonnes maintenant j'ai réduit la dimension maintenant j'ai 300 400 c'est matrice rentre en mémoire et maintenant j'ai cette matrice b et en fait j'ai a égal qq prime a et voilà j'ai cette matrice b et en fait a s'écrit comme q fois b et maintenant je dis la matrice b bah elle est petite parce qu'il y a très peu elle a très peu de rangée 300 etc elle est tout petit donc elle bah je peux calculer son a je peux faire l'analyse en composant le principal sur b c'est plus un problème ça ça rentre en mémoire je peux utiliser tous les agroïdes classiques dont je vous ai parlé tout à l'heure je calcul ces composants le principal donc je remplace b par maintenant ça devient complètement classique et puis voilà donc j'ai b qui est une matrice orthogonal matrice diagonale une autre matrice orthogonal et puis bah c'est le produit du matrice orthogonal par une matrice orthogonal c'est matrice orthogonal et donc bah voilà c'est c c c'est ce que je voulais et alors quand je fais ça bah tout d'un coup quand je vais sous des sous des étapes la seule approximation que je fais elle est au début et après tout est exact tout est exact et tout est classique donc la question fondamentale c'est bah comment je fais ça alors alors c'est ça dont on va parler en fait le problème computationnel qui se pose maintenant au statisticien et à l'informaticien et le suivant et dire bah oui mais comment on va trouver cette matrice Q qui grosso modo est une bonne approximation du plan de variation principale en fait c'est ça que je cherche donc on va on va on va essayer de trouver une matrice Q et ça va être l'objet de de l'exposer on essaie de trouver une matrice Q telle que la distance entre A et la projection de A sur l'espace engendré par les colonnes de Q soit le plus petit possible donc la la plus petite erreur que je puisse avoir c'est bah c'est ce que je ferais classiquement c'est-à-dire l'analyse en composant le principal je cherche la l'approximation de rank A la la meilleure ça s'est donné par hotelling voilà on calcule la svd on seuille etc donc sigma k plus 1 c'est la la valeur singulière de A la k plus la k plus 1 grande et je sais que parmi toutes les randes de rank A je ne peux pas avoir une approximation qui est meilleure que ça ça n'existe pas et pour la calculer le problème c'est que ça c'est quasiment impossible à calculer dans les big data et nous ce qu'on va essayer de faire c'est de trouver une matrice Q qui fait quasiment la même chose alors l'idée elle est extrêmement simple et c'est là où vient arrive les a dit les premiers ils disent bah voilà ce qu'on va faire c'est très très simple on va prendre une matrice aléatoire x qui a un nombre de colonne qui est k plus p donc pensez à p égale 10 donc je cherche une approximation de rank A et je me donne une matrice aléatoire de rank A plus 10 et l'algorithme il est très simple et dit maintenant calculons A4x alors là je reviens un peu à ce que je disais avant ça c'est un un produit de matrice qui est complètement optimisé sur tous les ordinateurs du monde auquel je puisse penser toutes les architectures auquel je puisse penser calculons y égale A4x et ensuite prenons y et y est une matrice maintenant qui est de dimension très petite et maintenant on va construire une base orthogonale pour par la méthode de QR des des colonnes du y et ça c'est ma matrice ok donc en fait qu'est ce qui se passe c'est que c'est là que intervient le calcul aléatoire c'est que jd si vous voulez jd jd je me donne des vecteurs aléatoires et j'ai cette peut-être je vais pas faire de dessin peut-être qu'il est au tableau je me donne des vecteurs aléatoires qui sont les colonnes de cette matrice x j'applique ma matrice A à ces colonnes et en fait quand j'applique ma matrice A à ces colonnes et bah en fait j'ai des vecteurs dans l'image de A ok donc j'essaie de découvrir un peu de manière un peu stochastique par le par l'échantillonnage stochastique aléatoire qu'est ce qu'est l'image de A et donc si la matrice à un rang qui est exactement égal à K et bah on se rend compte très vite que si je prends des vecteurs aléatoires et bah en fait si j'en prends K et bah les vecteurs j'ai avoir quatre vecteurs qui vont complètement spanne l'image de A alors évidemment serait dangereux d'en prendre exactement K et on va le voir de manière très précise mais on va en prendre un peu plus pour que non seulement il se panne mais que il y a un système bien conditionné pour qu'il n'y ait pas d'erreur numérique plus tard mais en fait on va en prendre plus aussi pour une autre raison c'est que la matrice elle a jamais exactement un rang K, elle a toujours un rang qui est proche de K, elle a un rang qui est grand mais qui une matrice est bien approximée par une matrice de rang plus faible et donc on va ce qu'on va voir c'est qu'en fait effectivement quand le rang est pas exactement K bah ces vecteurs ils vont être autour distribués autour du plan qu'on cherche à calculer numériquement mais ils vont pas être exactement sur le plan qu'on cherche à calculer numériquement et en prendre un peu plus on va voir que c'est une très très bonne idée donc voilà on calcule cette chose et en fait maintenant alors l'algorithme il est d'une simplicité extraordinaire c'est cinq lignes de AR ou de MATLAB c'est voilà je génère une matrice aléatoire qui a un nombre fou de colonne de rangé mais un nombre très faible de colonne je calcule à xx je fais la décomposisseur orthogonal donc je trouve la matrice Q et puis ensuite bah tout devient classique et maintenant je vais me tourner vers cette audience je vous dis alors ici là si je regardais un peu le temps de calcul que je vis dans les big data je suis comme nick j'ai 100 000 personnes un million de gens je vous dis où est ce que je dépense tout mon temps en fait voilà alors tout le temps de calcul exactement là tout le reste ça coûte absolument rien le temps de calcul exactement là pourquoi parce que c'est là où je dois lire la matrice a et la multiplier je vous ai dit tout à l'heure que tout ce qui limite aujourd'hui le calcul c'est de lire d'amener la matrice en mémoire vive donc tout le tout le temps de calcul il est là et vous vous allez me dire que là aussi parce qu'il faut que je relise la matrice a mais ça je vais vous dire qu'il y a des méthodes aujourd'hui modernes qui permettent de pas le faire et donc il va falloir lire la matrice a une seule fois en fait enfin si vous regardez l'algorithme tel qu'il est présenté au tableau sur l'écran et ben en fait il est si on considère que tout le temps de calcul et je vous demande de me croire à ce sujet c'est tout le temps de calcul et sur la lecture de la matrice a et sur cette opération et ben finalement en fait qu'est-ce qu'il faut que je fasse il faut que je l'eau de les donner une fois en mémoire vive faire un un un un produit de matrice et puis c'est terminé tout le reste ça compte pas donc on a un un coût pour cette algorie pour cette cette algorie qui est très très faible c'est-à-dire lisez les données deux fois si vous le faites de cette manière et et en fait on sait le faire que avec un seul une seule lecture et faites un calcul de produit de matrice pour lesquels comme je disais toutes les les architectures computationnelles que je connaisse sont en fait le produit matriciel et est optimisé sur toutes les architectures que je connais et classiquement en fait si vous regardez tous les algorithmes qu'aujourd'hui les gens utilisent et ben il faudrait l'eau des data un nombre énorme de fois c'est-à-dire mille deux mille trois mille quatre mille fois et pour ça que tout était extrêmement lent ok donc si on utilise cette méthode en pratique vous allez me dire oui mais alors c'est très très dangereux parce que ben il c'est vous avez un résultat aléatoire et donc qu'est ce qu'on fait avec un résultat aléatoire donc là je vais vous montrer un peu le le ce que fait l'algorithme donc vous avez une matrice peu importe ce qu'elle est vous avez son son spectre de valeur propre si vous voulez sur une échelle géométrique qui décroit voilà et en ça c'est la la meilleure approximation de ren cas ce serait l'erreur que j'ai en calculant la meilleure approximation de ren cas et voilà l'erreur qu'on obtient en utilisant notre algorithme aléatoire et ben on voit qu'effectivement il calcule exactement une une approximation qui est d'une d'une précision phénoménale vous dites ah oui mais là j'étais c'est un algorithme aléatoire donc j'ai eu de la chance et en fait non j'ai pas eu de la chance en voilà un autre c'est dire là c'est une autre j'ai on rerun l'algorithme avec parce que c'est un algorithme aléatoire donc il faut que je génère cette matrice x aléatoire donc je je refais l'expérience et j'ai la même courbe finalement et voilà je vais le faire dix fois et dix fois j'ai exactement la même chose pour le faire cent fois mille fois deux cent mille fois ça change absolument rien l'algorithme est aléatoire mais le résultat de l'algorithme ne l'est pas ok et bon je vais peut-être passer ces ces choses mais en fait ce que ce que j'essaye de dire c'est que ben voilà que vous avez une méthode aléatoire mais le le résultat de cet algorithme n'est pas du tout lui aléatoire donc est-ce qu'on comprend comment pourquoi ça marche cette chose et la réponse est oui donc je vais vous présenter un petit peu de théorie stochastique de cet algorithme et donc c'est justement les travaux que j'avais fait avec un étudiant fabuleux qui s'appelle Rafi Whitten qui était en fait un étudiant undergraduate à Stanford et en fait ce qu'on peut démontrer mathématiquement c'est que l'erreur d'approximation donc on a cette matrice à qu'on veut approximer par une matrice de Ranka si on avait le temps de faire la svd etc et de computer toute la svd on aurait une erreur qui est sigma k plus 1 là on va avoir un quelque chose qui est un peu moins bon et comment c'est un peu moins bon ben il y a une constante en face de sigma k plus 1 qui est grosso modo racine de n parce que k cette dimension k elle est beaucoup plus petite enfin je pense à n égale quelques millions et k est peut-être qu'un millier donc etc cette dimension est beaucoup plus petite que celle là donc c'est grosso modo racine de n fois la norme d'une matrice à la toite que je que je vais décrire et c'est la norme si je prends une matrice à la toite gaussienne k k plus pas est rangée et k colonne et je regarde la valeur en fait je regarde la norme de l'inverse de cette matrice d'accord fois la norme de cette une matrice à la toite donc elle a théorie des matrices à la toite qui rentre fois bah la meilleure chose qu'on puisse faire donc on a on a inestimé qui ressemble à ça et dans l'autre sens on a inestimé qui en fait exactement la même donc vous avez un résultat qui est d'une qui est d'une précision assez intéressante vous dit bah voilà d'un autre côté je peux pas vraiment mieux mieux faire que ce que vous avez là haut parce que quand k est très petit par rapport à n bah vous avez la même la borne supérieure la borne inférieure sont les mêmes en fait alors ce qui est intéressant c'est ce terme là qui est exponentie qui est la la norme d'une matrice gaussienne qui intervient dans l'erreur d'approximation et c'est là qu'on comprend qu'il faut que si vous cherchez une approximation de rang k il va falloir utiliser un peu plus que k colonne dans votre matrice aléatoire pourquoi parce que si je prends une si j'utilise p égale 0 donc je prends une matrice gaussienne donc je teste si je cherche une approximation de rang k j'applique une matrice qui a k une matrice aléatoire qui a k colonne à ma matrice a donc ce serait le k ou p égale 0 dans ce cas là là vous regardez la distribution de l'inverse de la plus petite valeur singulière c'est une matrice gaussienne vous savez sûrement enfin je sais qu'il y a énormément de gens très talentueux vous savez très bien qu'une matrice gaussienne qui est carrée elle est presque singulière donc ça veut dire que la plus petite valeur singulière elle est très petite donc quand je l'inverse elle devient très très grande et c'est ce que vous voyez sur ce gras vous voyez que là vous voyez l'inverse qui a qui la constante qui apparaît dans la borne et bien quand on fait des expériences on voit que c'est très très grand donc la qualité de l'approximation peut être peut être assez mauvaise mais maintenant je vais augmenter p un petit peu donc je vais prendre p égale 2 et tout d'un coup on a une on a réduit tout ça par deux ordres de grandeur ça c'est encore une échelle géométrique tout d'un titre quand je prends p égale 2 donc je prends deux deux colonnes de plus que le rendre que je cherche la situation change complètement si je prends p égale 5 je gagne encore un ordre de grandeur et si je gagne p égale 10 tout ça c'est des constantes c'est deux trois c'est c'est rien du tout et donc si je les mets tous ensemble j'ai quelque chose comme ça donc je vois que tout d'un coup tout devient mieux et c'est pour ça que je dis si je veux trouver les valeurs principales toutes les valeurs les les les composants de principales je trouve les 100 premières bon bah je vais utiliser une matérieuse qui n'a peut-être pas 100 colonnes mais qu'on a 110 115 de 7 ordres de grandeur ok donc voilà donc c'est ce qui se passe au niveau du calcul comme je vous ai dit tout à l'heure et bien quand le nombre de composants principales qu'on cherche est beaucoup plus petit que le nombre de la que la dimension de cette façon si c'était pas le cas ces méthodes dont je vous parle sont pas du tout intéressantes et bah l'erreur de calcul et enfin l'erreur d'approximation et racine de n racine de la dimension fois la norme de cette matrice et puis c'est tout et en fait dans les théories des matrices aléatoires on sait très bien calculer la la la valeur singulaire la plus petite du matrice gaussienne c'est à peu près ça ça c'est quelque chose qu'on connaît depuis 30 ans et quand on met tout ça ensemble on a que l'erreur d'approximation c'est exactement ça c'est racine de n sur racine de k plus p moins racine de k donc on a une approximation très très précise de ce qu'on peut faire et quand on fait des expériences numériques bah voilà on se rend compte donc à chaque point que vous voyez sur ce graph alors là on est dans un dans un dans un régime où chaque point que vous voyez sur ce graph et bah finalement c'est l'erreur qui a été effectué par l'algorithme et en noir c'est vous voyez la prédiction théorique que je viens de vous donner qui est vraiment exactement la même chose et en bleu et en rouge vous voyez nos bornes qui sont non asymptotiques elle ça c'est la borne asymptotique et voyez que c'est exactement ça et en fait ce qu'on voit c'est que bah on arrive à des tailles de n qui sont très très grandes comme de l'ordre de 100 000 etc et tout tout tout semble se passer exactement comme la théorie à l'air de le prédire et là c'est un exemple où on cherche un nombre de composants de principales qui est 1% de la taille de la matrice donc on pourrait chercher on pourrait aussi fixer le nombre de composants de précipients la sang et faire grandir la taille de la matrice à ce moment là on voit une courbe qui ressemble un peu à racine de haine ce que je vous montrerai tout à l'heure et voilà la prédiction théorique la courbe noire le résultat de l'expérience c'est exactement la même chose ok donc donc on en est là et je voulais juste encore une fois un peu vous montrer le peu de danger qu'il y a utilisé à ces méthodes et en fait nous avons répété par exemple sur une matrice par exemple qu'il y a 100 000 lignes et 100 000 colonnes et on cherche à peu près 1000 composants de principales et bah on va commettre une erreur d'approximation et cette erreur d'approximation est à peu près de ce qu'elle est et en fait quand je regarde la distribution il y a une concentration phénoménale vraiment le résultat de l'algorithme lui n'est pas aléatoire c'est sous-jacent il y a évidemment toute la concentration de la mesure mais je n'ai pas en parlé et voilà et que quel que soit le setting enfin quel que soit le l'environnement dans lequel je me place il y a tout d'un coup le résultat de l'algorithme lui est jamais aléatoire quasiment pas d'accord donc tout ça bah on a on a on a réussi à quand je dis que on a assez borne encore une fois c'est vraiment pas vraiment mon travail tout ça bon les bandes que vous avez vu c'est c'est ce qu'on a fait mais il est très important de comprendre que il y a des bandes pas aussi pas aussi précises évidemment qu'il y avait été donné par martinson rocklin et tiger en 2006 par halco martinson entropes en 2011 et que et que c'est un sujet qui est aujourd'hui en pleine expansion voilà donc ça c'est un peu l'idée et puis peut-être je vais pas vous ennuyer avec bah comment on arrive à établir ces choses en fait on arrive à établir ces choses de manière assez simple c'est-à-dire qu'on dit bah voilà un algorithme stochastique qui prend qu'il y a une matrice input qui a qui prend une matrice stochastique aléatoire comme input et va nous retourner une approximation q et basé sur cette matrice aléatoire et le une des choses qu'on avait découvert avec raffi c'est l'idée que c'est une idée de de monotonicité si vous préférez qui est que la matrice si j'ai une matrice si j'ai deux matrices a et b et une à des valeurs propres plus grandes que l'autre dans le sens que une la matrice a est plus grande que la matrice b qui veut dire que les valeurs propres de la matrice a sont plus grandes que les valeurs propres de la matrice b alors quand j'applique l'algorithme au sens stochastique mais au sens de la distribution et bah les valeurs propres du résidu de a est plus grand que le valeur propre du résidu de b donc finalement quelle est la matrice qui me cause le plus de difficultés bas c'est celle qui a des valeurs propres les plus grandes et donc on peut analyser l'algorithme sur une matrice très simple tout dépend du spectre de la matrice et on peut utiliser l'algorithme stochastique de manière très simple on dit bah voilà j'ai juste qu'à regarder ce que fait l'algorithme sur une matrice qui a des certaines valeurs propres qui vont à l'infini les autres sont constant des gala 1 et il suffit de regarder ce que fait l'algorithme sur cette matrice pour comprendre exactement la performance de cette algorithme stochastique et et quand on regarde ça et bah maintenant on a quelque chose qui déploie plus de rien donc on prend la limite de ça quand t va à l'infini on a un objet un objet stochastique et cet objet stochastique ça caractérise la qualité du calcul qu'on est en train de faire voilà il y a des résultats un peu plus fin qui disent qu'ils sont des résultats intéressants parce que il va y avoir une variation sur ce que vous allez voir que sur ce que je viens de dire qui est très importante quand on fait de l'analyse de données réelles et un résultat plus fin dit que bah oui bon bah je peux poser cette analyse en disant bah voilà donc si j'en savais plus sur le spectre et bah j'aurai une constante fois sigma k plus 1 ça c'est le graal et en fait l'erreur d'approximation elle est toujours la matrice l'erreur de l'inverse de cette matrice gaussienne dont je vous parlais tout à l'heure multiplié par bah la somme des carrés des des valeurs propres que je n'essaye pas de résoudre alors quand c'est quand la matrice à un spectre de décroissance qui est comme ça et puis toutes les matrices après ne décroissent les valeurs propres ne décroient plus bon bah elles ont toute la même taille ces trucs là et puis bah vous retrouvez ce qu'on avait avant donc la somme elles sont toutes la même taille et donc c'est on les compte fois le la taille de la première donc ça c'est exactement le résultat que vous avez montré avant et si elle décroit en en en particulier et bah si elle décroit de manière par exemple géométrique et bah ça ça devient finalement c'est la somme c'est la grosse mode de la taille de la première et on a une approximation qui est extrêmement précise ok donc quand je les les valeurs propres décroissent on est toujours sur notre échelle logarithmique décroissent de manière très vite et bah on fait très très bien maintenant le twist c'est que si je vous donne des vraies data set qui viennent du computer vision etc vous allez voir une chose comme ça c'est-à-dire que tout d'un coup quand je regarde des matrices de données réelles et bien le spectre décroit mais pas là on est plus sur une échelle géométrique on est sur une échelle linéaire le spectre décroit mais pas pas très très rapidement et maintenant quand j'applique ma méthode ma méthode la méthode dont je parle à ce problème bah j'ai une approximation qui elle n'est pas bonne et en fait on voit ça un peu sur le graphe vous par exemple comme statisticien vous les calculer les valeurs propres si vous calculer les valeurs propres sur ma mais sur la méthode dont on parle méthode stochastique vos yeux cette courbe violette alors que les vrais sont en rouge vous allez complètement sous-estimer les vraies valeurs propres et ça ça avait l'erreur d'approximation à avoir avec le fait que le spectre décroit pas très vite et donc quand j'essaye de trouver les le plan de variation principale et que j'applique ma méthode aléatoire les vecteurs sont pollués par les composantes qui sont qui décroissent pas assez vite en fait voilà un autre exemple sur des données réelles même problème là on voit l'erreur d'approximation si je pouvais calculer la svd qui en fait je peux pas mais tant pis mais si je pouvais faire j'aurais ça et quand on applique la méthode on voit ça et encore une fois on voit cette tendance à complètement sous-estimer les valeurs propres qui a un vrai problème et donc souvent on a un problème comme ça et alors qu'est ce qu'on fait dans ce cas là et bah c'est simple on va dire et ben on va on va on va on va on va prendre à et on va le montrer à une puissance pour que on va en fait faire que en mettant une vous savez qu'en mettant une maîtrise à une puissance en fait le les valeurs propres vont être élevés à la puissance et donc elles vont décroître beaucoup plus vite tout d'un coup et donc il y a une modification à l'algorithme qui est d'une simplicité extrême au lieu de calculer a x on va calculer une puissance de a x et tout le reste est le même alors ça c'est c'est très bien peut-être je vais passer ça donc d'un point de vue algorithmique le le seul changement qu'on voit c'est que au lieu de lire les data une fois bah c'est que vos deux il va falloir les lire cinq fois donc l'algorithme va être cinq fois plus lent mais ce qu'on gagne ce qu'on gagne c'est absolument énorme c'est à dire qu'on gagne en fait que peut-être je vais pas de dire comme ça je veux dire que ce qu'on gagne c'est que on a la borne qu'on avait avant que j'ai écrit un peu de manière différente et je m'en excuse on avait la borne qu'on avait avant mais en fait cette borne elle était élevée à la puissance 1 sur le nombre de fois qu'on passe sur les data deux fois le nombre de fois qu'on passe sur les un sur le nombre de fois qu'on passe sur les data et donc cette borne on s'en va pas la lire ce que je vais vous dire juste c'est que si je prends q égal 3 donc je vais passer sur les data 7 fois donc je vais lire les data 7 fois et 7 fois seulement et bah quand n est de la taille de 10 puissance 18 qui est quand même un truc qui devient c'est un triiard ces 10 puissance 12 donc ce serait un million de triiards de colonne j'ai calculé cette constante que vous voyez là et c'est 3 d'accord donc voilà quand q vaut 3 et en fait ce qu'on voit c'est qu'on voit l'algorithme en action maintenant avec q égal 1 q égal 2 en verre q égal 3 en noir et dès que q égal 2 ou 3 et bah tout d'un coup on a le réel on a le comportement qu'on voulait et tout se passe infiniment bien et maintenant j'estime les valeurs propres de ma matrice avec mon algorithme stochastique et voyez que quand q égal 2 ben il n'y a pas de j'espère j'espère que les les différents statistiques sont pas dans le 6e dans le 6e chiffre après la virgule parce que sinon voilà d'accord donc ce que j'essaie de dire c'est que bah tout d'un coup on sait organiser le calcul en très très grande dimension avec très très grande accueil ici et on a des résultats même si la méthode est stochastique le résultat lui ne l'est pas et que ça c'est en train de changer la manière dont les gens pensent le calcul alors cette manière que de penser le calcul elle n'a pas encore pénétré les communautés appliquées mais j'espère quand vous en parlant et vous allez en parler peut-être à vos amis que peut-être que en tout cas moi j'en parle à aux gens que j'ai vu à la fondation simons et c'est un donc là il y a on peut aller encore plus vite alors pour ceux qui sont intéressés par l'informatique vous dites ah oui mais bon il va falloir calculer ça est-ce que je pourrais pas encore accélérer le produit de la matrice avec le produit de la matrice une matrice aléatoire x et oui on peut le faire parce que alors qui connaissent les les outils un peu informatique à la mode où vous pouvez avoir des matrices aléatoires mais structurées qui ont des des maitris acteurs product qu'on peut calculer comme dans un temps de fft grosso modo donc au grosso modo on peut disait des utiles des idées sophistiquées dû à hélène et chaselle en informatique pour aller encore plus vite et là ça devient vraiment très très rapide où en fait pour calculer une colonne du y en fait c'est une fft et donc ça va très très vite et ce qui est amusant c'est que et ben même sur des tailles de données qui sont classiques qui sont qu'on pas besoin d'être grande ce dont on se rend compte c'est que on peut aller beaucoup plus vite par un facteur ici six plus vite sur des tailles infimes que les méthodes ont été optimisées par pendant 50 ans mais évidemment le point de cette lecture c'est pas de parler des matrices des tailles faibles c'est une matrice de grande taille et aujourd'hui si je vous demande qu'est ce que vous allez faire pour calculer vous avez une matrice un million par un million quelle algorie de vous allez utiliser pour faire de l'analyse en compte principal moi je connais pas beaucoup mais celui là s'en est alors juste pour finir je y avait un article qui a été perdu dans le la conférence un scientifique computing où les auteurs disaient bon je vais lire en anglais randomisation is arguably the most exciting and innovative idea to have hit linear algebra in a long time je suis tout à fait d'accord moi je trouve qu'il ya une interface entre les probabilités les statistiques le calcul scientifique les idées d'informatique est très féconde et moi en tant que que practicien que practicien je vois arriver sur le marché enfin sur le marché de l'intellect des méthodes qui permettent d'envisager le calcul des choses simples de réduction de la dimension avec des tailles de matrice pas possible chose que je savais pas encore faire il ya cinq ou six ans merci merci beaucoup émanuelle on va prendre quelques questions qu'on a collé cédric vinalny on peut coller émanuelle condescent peut-être est ce que la façon de générer la matrice aléatoire x à une influence ou non la théorie est le la théorie la plus facile c'est dans le cas où x est gaussien mais qu'en fait des expériences si x avait des plus ou moins un etc c'est exactement la même chose en fait sauf que théoriquement l'analyse est plus difficile et et alors il ya une chose dont je vous dis pas c'est qu'en pratique on aimer bien utiliser ces matrices de fourrier pour calculer à 4x encore plus de manière plus vite et la théorie là il ya des brains de théorie mais qui n'explique pas ce qu'on voit c'est à dire que là il ya un un un gap entre ce qu'on voit numériquement et ce qu'on est capable d'expliquer théoriquement alors pour les matrices gaussiennes comme j'essaie de le démontrer c'est le fit est exceptionnel bonjour merci pour la présentation on avait une petite question parce que quand tu veux améliorer l'algorithme tu tu pas c'est la puissance qui coûte assez cher si tu est ce que c'est comparable de moyenne des projections aléatoires et quand les faits est-ce qu'on a une idée de l'erreur par exemple si on surestime alors moyenne les projections aléatoires c'est c'est une bonne idée mais le problème c'est en fait c'est grossement est ce que ça cherche à faire moyenne les projections aléatoires c'est de prendre plus de colonne dans x grosso modo parce que les colonnes de x sont indépendantes et donc c'est comme si on prenait plus de colonne de x et ça en fait c'est vous dire si je prenais paix de manière un peu plus grande est-ce que tout d'un coup j'aurai quelque chose de beaucoup mieux la réponse est non malheureusement il est il est beaucoup plus efficace de mettre de calculer des puissances dehors pour ceux pour ceux en fait vous voyez c'est-à-dire que nous on veut trouver des vecteurs qui soient très proches du plan de variation principale et quand le spectre ne décroît pas en fait ces vecteurs ne sont pas très proches pourquoi parce que le spectre est très plat en fait et donc d'envoyer la matrice à une puissance ça envoie à zéro toutes les trucs et tout d'un coup plus rien n'est pollué tout d'un coup c'est pour ça que la matière des en pratique on n'a pas besoin d'utiliser q enfin moi je n'ai jamais vu qu'on avait besoin de plus que plus grand que trois maintenant la question c'est est-ce que vous c'est pas on a travaillé on a acquéré des données etc on veut les analyser est-ce qu'on peut les lire cette fois si on peut pas je sais pas si on peut à mon avis le monde resouvre tout d'un coup surtout au cerne ou c'est pas si vous avez une idée de ce que coûte un jeu de données oui juste pour un peu sur ces questions je veux dire on connaît tous l'interaction des statistiques avec l'informatique sur les domaines du machine learning moi ce que c'est de dire un peu dans ce truc c'est qu'il y a des interactions des statistiques avec le calcul scientifique et toutes les autres sciences dans des domaines qui n'ont rien à voir avec le machine learning qui ont l'idée des idées c'est pour moi c'est absolument merveilleux de voir des idées provélyste qui permettent de résider calcul honnêtement aujourd'hui je sais pas faire autrement ok en petite question ici j'ai une question sur la taille de la matrice à est-ce que tu as déjà travaillé par la matrice par blocs c'est à dire ce que tu as si de paralléliser ton code parce que élever au carré ça va coûter énormément en transfert de données non on n'élève jamais la matrice au carré attention on l'élève jamais au carré non non non non non non élever une matrice au carré absolument pas non parce que mettons que la colonne la matrice mettons que cette matrice a une seule colonne d'accord donc vous devez vous devez juste faire à fois la colonne quand je vous demande de faire à carré fois la colonne vous faites à fois la colonne vous avez un nouveau vecteur vous réappliquer à il n'y a rien d'autre à faire donc c'est juste à fois la colonne maintenant quand la matrice ne rentre pas en mémoire c'est le calcul mais ça c'est embarrassingly parallèle c'est ça qui donc j'ai pas j'ai pas souligné là cet aspect peut-être et je m'en excuse mais ça c'est embarrassingly parallèle c'est à dire que vous avez combien le processeur vous avez dites-moi 100 000 100 000 voilà donc je vais dire cette matrice je vais la diviser en 100 000 en 100 000 blocs et chaque processeur prend un bloc calculer fyi x tu le décompose par blocs par colonne ça peut-être pas ça change absolument rien donc cette méthode en plus d'avoir un en plus d'avoir absolument aucun data movement quasiment elle est ce qu'on appelle en anglais embarrassingly parallèle je comprends quand c'est ax mais ax à ax fois c'est la même chose c'est c'est ax j'ai un vecteur que je vais appeler y et maintenant il faut que je fasse à y et quand j'ai fait je sais pas moi à carré x c a appliqué au vecteur ax donc je calcule ce vecteur j'ai un résultat je le calcule une nouvelle fois voilà donc en fait je dois répéter l'algorithme deux fois je suis pas clair je suis pas sûr qu'on n'est pas à faire du transfert de données quand même oui mais ah oui on a on a un fait on a un fait correctement on a un fait du transfert de données mais un transfert qui est minimal c'est que maintenant il faut que faut pas que j'envoie des gros blocs de données ça c'est minimal ça la matrice à elle elle peut pas être transférée mais un vecteur lui il peut être parce qu'il est un vecteur il a un million de colonne vous m'avez dit un million de colonne mais ce vecteur il a un million d'entrée c'est tout bon bah ça c'est rien ça coûte rien à transmettre ça j'avais pas le vu le fait d'embarquer par l'aile du système voilà donc cet algorithme il est stochastique il est extrêmement rapide parce qu'il ne lit pas les données et c'est ça qui rend le temps de calcul très long c'est lire les données c'est ça le problème donc il est et en plus il a dans pour certaines architectures il a il est il est d'un niveau de parallélisme qui n'y a même pas en parlé bonjour vous n'avez pas évoqué d'application mais on a vu quand même passer des slides que vous n'avez pas commenté où il y avait l mols est-ce que vous avez des applications sur moi non parce que si vous regardez mon slide il y avait un petit petit footnote qui disait donc les gens adorent faire ça en physique par exemple aujourd'hui ou est-ce que c'était le truc vous avez bien vu parce que ça j'ai même pas montré slide vous avez vraiment un œil extraordinaire oui alors les gens bah voilà donc ça vous avez une matrice de l nulle donc typiquement des choses qui sont données par la physique et ce qui est merveilleux dans les opérateurs de la physique c'est que bah le spectre décroit très vite beaucoup d'opérateurs de physique ont quelques valeurs propres significatives et puis après tout d'un coup ça décroit de manière exponentielle là c'est ce que vous voyez pour l mols et c'est le champ applicatif idéal pour ce genre de choses que vous avez une décroissance exponentielle des valeurs singulaires donc la méthode qu'on voyait en vert la méthode en vert la la la la la la la courbe bleue c'est une méthode qui permet d'estimer de manière encore stochastique l'erreur qu'on est en train de commettre à comment ça apprend plus de colonne et à résoudre le spectre et donc la méthode la courbe en vert bah vous voyez qu'elle follow enfin le suit la courbe rouge et donc ça c'est l'idéal les matrices que j'aime moins bah c'est les matrices donc il y a un spectre qui ne décroise pas parce que là il faut que j'utilise cette puissance tric des puissances ou voilà c'est ça donc c'est les matrices typiquement que vous allez former quand vous faites de la computer visionne ou ou quoi que ce soit et là effectivement le spectre ne décroit pas très vite et donc il va falloir que peut-être je passe cinq fois sur les data au lieu d'une seule fois mais pour elle môles une seule fois ah oui alors donc ça c'est un sujet qui intéresse moi je pense que dans air par exemple ou dans matlab vous allez voir ça il faut que je prenne que je me mouille un peu en mon avis dans cinq ans c'est là quoi c'est pas là aujourd'hui il y a des gens que ça inquiète d'avoir des résultats stochastiques des gens que ça inquiète moi quand je vois ces histogrammes ça m'inquiète pas parce que puis si j'étais inquiet je referai une fois pour être sûr donc moi je suis pas du tout inquiété par ça parce que de toute façon ce qui est très joli dans ce sujet c'est de c'est quoi l'alternative qu'est ce que vous allez faire regarder les données aux quatre coins du monde et c'est pas ce que c'est l'alternative en fait alors la référence il y a c'est un sujet en pleine expansion donc il y avait il y a beaucoup de gens qui ont travaillé un peu à l'interface entre les probabilités les statistiques et le et l'informatique sur ces sur ces thématiques donc là vous avez une liste donc je suis ravie de vous donner mais si vous voulez avoir un overview du sujet mais moi j'ai lu cet article de alco martinson entropes avec un intérêt très profond et dans cet article bas vous aurez toutes enfin jusqu'aux choses un peu plus récentes toutes les références qui peuvent vous intéresser ok on va s'arrêter là on remercie encore émanuelle charlie heureusement