Reconnaissance fine : prise en compte des différences subtiles entre des classes similaires

La condition principale pour une tâche de reconnaissance fine-grainée est de se concentrer sur les détails discriminatifs subtils qui distinguent les sous-classes les unes des autres. Nous observons que les méthodes existantes abordent implicitement cette exigence, en laissant au pipeline data-driven le soin de déterminer ce qui rend une sous-classe différente des autres. Cela entraîne deux limites majeures : premièrement, le réseau se concentre sur les différences les plus évidentes entre les classes, au détriment des variations interclasses plus subtiles ; deuxièmement, la probabilité de mal classer un échantillon parmi les classes négatives est supposée égale, alors qu’en réalité, les confusions surviennent généralement uniquement entre les classes les plus similaires. Dans cet article, nous proposons de forcer explicitement le réseau à identifier les différences subtiles entre des classes étroitement liées. À cet effet, nous introduisons deux innovations clés, facilement intégrables dans les pipelines existants de deep learning end-to-end. D’une part, nous proposons un bloc de diversification qui masque les caractéristiques les plus saillantes d’un input, obligeant ainsi le réseau à s’appuyer sur des indices plus subtils pour une classification correcte. Parallèlement, nous introduisons une fonction de perte basée sur le gradient boosting, qui se concentre uniquement sur les classes confusantes pour chaque échantillon, et qui permet ainsi de progresser rapidement dans la direction du surface de perte qui vise à résoudre ces ambiguïtés. La synergie entre ces deux blocs aide le réseau à apprendre des représentations de caractéristiques plus efficaces. Des expériences approfondies ont été menées sur cinq jeux de données exigeants. Notre approche surpasse les méthodes existantes, dans des conditions expérimentales similaires, sur l’ensemble des cinq jeux de données.