Pourquoi ne pas confier au hasard ce qui est trop compliqué à estimer ?02/07/07 Il y a des choses qu'on sait avec certitude, d'autres qu'on peut estimer assez facilement... Moi, j'aime bien les imprévus, pas vous ?
L'union fait la force de la précisionEh, les gars : quelle heure est-il ? 21h03 ! 21h09 ! 22h17 ! Bon, clairement, il y a un ahuri qui est resté à l'heure d'été, avec une montre qui avance. Mais les deux autres doivent être dans le vrai, à quelques minutes près.
h qui minimise { [h - 21h03] / 1 } + { [h - 21h09] / 2} On minimise la somme des deux différences pondérées par la précision de chaque mesure. J'ai essayé, 21h04, 21h05, 21h06 : c'est 21h05 qui me donne la meilleure valeur pour le critère ci-dessus : cela fait zéro. Bon, chouette, j'ai réussi à trouver l'heure encore plus précisément... que si j'avais une montre numérique. Tiens, je vais demander à l'autre ahuri qui se croit encore à l'heure d'été ce qu'il pense de tout ça : il paraît qu'il est informaticien. J'y crois pas ! Il critique !! Même pas capable de donner l'heure et ça veut donner des leçons !!! Il paraît que je pouvais « résoudre l'équation directement »... Et les ordinateurs, ils ne sont pas là pour ça, des fois ? Oui, il faudrait que l'ordinateur puisse faire la même chose, mais sur des problèmes plus compliqués. Je vais y penser. Trouver un modèle pour expliquerOh, un objet volant ! J'ai vu quelque chose dans le ciel qui clignotait. Quatre fois. J'ai noté les points sur la fenêtre :
Mais je n'ai pas pu distinguer ce que c'était. Pas assez de lumière. Je vais tracer une ligne pour voir sa trajectoire, mais j'hésite :
(a) si je fais passer une ligne droite au mieux par les quatre points, on dirait un avion qui décolle ; Mmm... il faudrait que je puisse comparer la qualité de mes modèles
Donc si je n'ai que trois points par exemple, il passe forcément un cercle par ces trois points, comme en (d), donc y faire passer un cercle ne m'apprend rien sur ces points. En revanche, si par ces trois points il passe aussi une ligne droite sans trop d'erreur, alors là, comme en (c), j'ai appris quelque chose : que ces points sont alignés. Bon, j'ai donc besoin de définir le nombre d de degrés de liberté de mon modèle. C'est le nombre de mesures (mon nombre de points) moins ce qu'il me faut de points pour calculer mon modèle : la dimension du modèle, son nombre de paramètres en fait (deux pour la droite, trois pour le cercle). Par exemple, (a) 4 points et une droite à 2 paramètres : d = 4 - 2 = 2 Ah bien. Maintenant, je vais faire comme tout à l'heure : regarder ce qui me donne la plus petite erreur. Ici, l'erreur c'est la distance des points à mon modèle : droite ou cercle. Je vais donc estimer le minimum de : C = { sommepoints de mesure [distance (modèle, point de mesure) / précision sur ce point de mesure] } / nombre de degrés de liberté
Et le meilleur modèle sera celui qui me donnera la plus petite valeur de ce critère. Tiens : le modèle à zéro degré de liberté, celui qui ne m'apprend rien, sera automatiquement éliminé (si je divise par zéro le résultat est absurde) : c'est parfait. La distance du point de mesure au modèle, ici, c'est la distance d'un point à une ligne droite ou la distance d'un point à un cercle, j'ai la formule dans un vieux bouquin de math du collège, quand j'étais en 3e, aucun problème. Enfin... sauf que ça fait bien longtemps que je suis plus en 3e ! Mais c'est sûrement pas cet escogriffe d'informaticien qui risque de s'en rendre compte, le benêt. En fait, ce critère C me permet de faire trois choses en une :
C'est vraiment super. Et j'ai essayé avec mes quatre points : c'est le premier modèle le moins mauvais. Un avion qui décolle, donc : une ligne définie par les quatre points, c'est la solution la moins improbable. Probablement pas de flash Iridium non plus, pour le quatrième point. J'ai même vérifié sur le site web de l'aéroport qui indique, selon le vent, le sens de décollage et d'atterissage des avions...et je ne me suis pas trompée. Évidemment, appliquer cette méthode à tous les modèles, ça fait beaucoup d'essais, mais bon, les ordinateurs c'est fait pour ça, hein ? Et puis y'a toujours un ahuri d'informaticien pour les programmer ! Tiens, à propos, ça va lui en boucher un coin à l'abruti d'informaticien de service. Je vais lui expliquer tout ça, tu vas voir s'il va encore me trouver transparente, ce crétin. Estimer pas à pas la solution à optimiserOh comme c'est amusant, qu'il a dit ! Abruti. Que je minimise une
distance de Mahanalobis Sinon, figurez vous qu'un vieux collègue de Môssieur-je-sais-tout avait même concocté le petit logiciel ci-dessous, où on peut sélectionner des points et essayer diverses estimations.
Si l'applet ne s'affiche pas correctement : Vérifiez votre configuration technique Un spécialiste d'estimation non-linéaire complète mon mécanisme de deux façons. La distance du point de mesure au modèle est en fait la distance entre le point de mesure et le point du modèle le plus proche du point de mesure comme on le voit sur le schéma ci-dessous :
C'est donc la projection (au plus proche) sur le modèle du point de mesure, c'est-à-dire le « point de mesure corrigé ». Ou encore, le point de mesure qui s'adapte parfaitement au modèle. équation du modèle (projection de la mesure sur le modèle, valeur des paramètres du modèle) = 0 Par ailleurs, pour toutes les inconnues, on choisit en fonction de l'application une estimation initiale, disons une valeur par défaut de la valeur de ces paramètres. Ce nouvel élément est très utile :
Son critère prend donc la forme de : C = { [distance (valeur des paramètres du modèle, valeur initiale des paramètres) / précision sur la valeur initiale]2 + sommepoints de mesure [distance (projection de la mesure sur le modèle, point de mesure) / précision sur ce point de mesure]2 } / nombre de degrés de liberté
Avec pour chaque point de mesure : équation du modèle (projection de la mesure sur le modèle, valeur des paramères du modèle) = 0
Il estime donc la valeur des paramètres du modèle et chaque projection de la mesure sur le modèle. Et il évalue aussi la précision du résultat à partir de la valeur finale de ce critère. Pour minimiser le critère :
Regardez par exemple l'animation ci-dessous, on y voit comment un critère analogue permet au modèle rouge de la bille d'aller se coller aux mesures bleues (cliquer sur l'image pour voir l'animation) : Cela illustre bien comment on minimise les distances pour arriver à la meilleure estimation. Tirer au hasard les points pour éliminer ceux qui peuvent gênerSon petit mécanisme est bien joli, mais il n'est pas aussi malin que le mien ! Moi, non seulement j'estime les paramètres d'un modèle, mais je compare plusieurs modèles, et surtout, je sélectionne les points qui ne sont pas douteux. Et ça, ce n'est pas facile ! Car si vous avez N points de mesure il y a 2N = 2 x 2... x 2 (N fois) sous-ensembles de mesures à tester, puisqu'il faut faire le choix binaire si oui ou non vous le prenez : 2 possibilités, pour chaque point !!! Alors, comment faire ? Je connais la méthode la plus maligne, regardez :
Bien entendu, vous faites recommencer votre ordinateur autant de fois que nécessaire pour que tous les points se trouvent un modèle pour les représenter. Quand il y a le choix entre plusieurs modèles ou plusieurs groupes de points, les meilleurs sont gardés, selon le critère que nous connaissons bien. L'informaticien bien sûr a des mots compliqués pour dire tout ça : il parle d'« estimation statistique robuste » par une méthode « randomisée ». Ah c'est bien les garçons ça, tiens, de se gargariser de mots compliqués. En tout cas, ça marche plutôt bien, essayez :
Si l'applet ne s'affiche pas correctement : Vérifiez votre configuration technique Oh bien sûr, il y a aussi des résultats bizarres, puisque nous avons confié au hasard ce qu'il aurait été bien trop long d'énumérer. Mais il est si facile de ne garder que ce qui colle bien. Évidemment, s'il n'y a pas assez de points de mesure, ou si les formes qu'ils dessinent sont ambiguës, on obtient des choses inexploitables. Les méthodes industrielles partent de cet algorithme, mais l'adaptent à leur problème pour garantir que le fonctionnement se fera dans de bonnes conditions. Oh, eh ! Vous n'allez pas vous y mettre vous aussi, hein ? Avec l'autre ahuri qui reste à l'heure d'été, ça suffit bien, merci !! Ce n'est qu'un simple algorithme qui fait déja beaucoup, pas une boîte magique, OK ? Une méthode « universelle » pour qui en a besoinIl est tard, la soirée est finie, je suis rentrée avec devinez qui : mon ahuri ! Dans la voiture il avait l'air un peu gêné. C'est timide ces animaux là. Moi je lisais la doc technique de sa voiture. Eh oui, j'aime bien ça. Je lui demande aussi un peu son travail, tout ça, et là il commence à se raconter. Polytechnique Par exemple, un modèle qui est l'avatar d'une main : on voit le modèle géométrique à gauche, la façon dont on colle le modèle aux données à côté (on voit les traits qui correspondent aux projections pour calculer les distances) et un résultat d'une estimation sur une séquence réelle. Les applications sont multiples, transmission de la langue des signes, nouvelles interfaces homme-machine, etc.
Il l'a aussi appliqué à un avatar de corps humain, pas très détaillé mais suffisant pour analyser dans une séquence vidéo des postures, des gestes, etc. Il est utilisé dans des systèmes de vidéo-surveillance par exemple. Vous découvrez comme précédemment le modèle et le résultat d'une estimation (avec toujours les traits des distances).
Et puis, plus généralement Moi, ça vous étonnera peut-être de la part d'une jeune femme, mais c'est en mécanique que je suis très forte |