Question:
Je veux lancer une discussion sur la façon dont les gens définissent les paramètres algorithmiques lorsqu'aucune validation contre la vérité du sol n'est possible (peut-être parce que la vérité du sol ne peut tout simplement pas être obtenue ou est très difficile / fastidieuse à obtenir).
J'ai lu de nombreux articles et mis en œuvre les algorithmes sous-jacents dans lesquels --- un ensemble de paramètres aurait été défini "empiriquement" --- et souvent j'ai trouvé que ce sont ceux qui affectent la généralité de l'algorithme (même si le la théorie sous-jacente à la méthode est élégante, séduisante et solide).
Je vous serais reconnaissant de bien vouloir partager vos réflexions. Et, il n'y a pas de bonne ou de mauvaise réponse à cette question. Je veux juste savoir comment tout le monde gère cela.
Contexte / source de question:
Je suis un informaticien travaillant dans les domaines de l'analyse d'image, de la vision par ordinateur et de l'apprentissage automatique et cette question me vient à l'esprit depuis un certain temps, car je fais face à ce dilemme à maintes reprises chaque fois que je conçois un nouvel algorithme et je je me suis retrouvé à passer beaucoup de temps à régler les paramètres.
De plus, je pense que ma question ici est plus générale dans tous les domaines où les algorithmes de calcul sont fortement impliqués, et je veux inviter les pensées de personnes de tous les domaines concernés.
Je voulais vous donner un exemple concret, juste pour que cela vous aide à réfléchir:
--- Prenons le cas de la détection de caractéristiques (disons des taches circulaires ou des points saillants). Vous exécutez certains filtres (paramètres requis) à différentes échelles (paramètres d'échelle) et définissez probablement un seuil de réponse (paramètre seuil). Il n'est généralement pas possible d'obtenir une vérité fondamentale pour valider et ainsi régler automatiquement vos paramètres dans de tels scénarios.
--- Prenez n'importe quel cadre de calcul qui implique beaucoup de composants de traitement du signal. Il y a toujours des paramètres à régler et généralement il n'y a pas de vérité fondamentale et lorsque vous les ajustez subjectivement sur un petit sous-ensemble aléatoire de votre ensemble de données, vous rencontrerez un jour le cas auquel il ne se généralise pas.
Ce paramètre diable est plus gênant lorsque vous définissez des paramètres pour certaines étapes intermédiaires de votre algorithme.
Et j'ai souvent constaté qu'il n'était pas possible de présenter le problème de la recherche de bonnes valeurs pour ces paramètres comme un problème d'optimisation avec une fonction objective dont vous pouvez prendre une dérivée et ainsi utiliser des algorithmes d'optimisation standard pour trouver de bonnes valeurs.
De plus, dans de nombreux scénarios, exposer ces paramètres à un utilisateur final n'est pas une option, car nous développons souvent des applications / logiciels pour les utilisateurs finaux non informatiques (disons les biologistes, les médecins) et ils deviennent généralement ignorants lorsque vous leur demandez de régler à moins que sa très intuitive (comme la taille approximative de l'objet).
Veuillez partager vos pensées.
la source
I want to kick up a discussion ...
est vraiment une bonne indication que ce que vous demandez n'est pas adapté au format * .SE.Réponses:
Si l'on suppose qu'il y a une vérité au sol, ( au moins théoriquement ) l' un des moyens possibles pour résoudre le problème de « pénibilité » est une « amorce » la création de la vérité au sol. Si vous avez déjà un algorithme décent qui fait le travail dans environ 80% à 90% des cas, vous pouvez exécuter votre algorithme sur un grand nombre d'instances et demander à un utilisateur de ne marquer que les erreurs. Cette approche a ses propres défauts, tels que le biais vers votre algorithme.
Cependant, il y a des cas où il n'y a pas du tout de vérité sur le terrain, seulement des compromis de système différents. Par exemple, un système de traitement d'image est nécessaire pour produire une image nette, précise et sans bruit. De toute évidence, vous ne pouvez pas les avoir tous en même temps. Dans ce cas, vous devez utiliser des métriques objectives qui peuvent être calculées sur le résultat de votre système. (Voir Imatest , analyseur DXO pour le traitement d'image).
Une fois que vous les avez, il existe des méthodes d'optimisation multi-objectifs qui peuvent créer une correspondance entre les compromis (qui sont clairs pour l'utilisateur) et les paramètres intrinsèques.
Dans tous les cas, vous ne devez jamais donner à l'utilisateur un paramètre qu'il ne peut pas comprendre. Si tout échoue, codez simplement le paramètre en dur.
la source
C'est un problème vraiment très difficile, mais il y a beaucoup de travail dans le domaine. Pour un exemple, jetez un œil à cet article de Ramani & Fessler sur l'approche SURE. L'introduction a un excellent aperçu des méthodes de sélection des paramètres, assurez-vous de vérifier leurs références.
la source