PackNet : Ajout de plusieurs tâches à un seul réseau par élagage itératif

Ce document présente une méthode permettant d'ajouter plusieurs tâches à un seul réseau neuronal profond tout en évitant l'oubli catastrophique. Inspirés par les techniques de prunage des réseaux, nous exploitons les redondances présentes dans les grands réseaux profonds pour libérer des paramètres qui peuvent ensuite être utilisés pour apprendre de nouvelles tâches. En effectuant un prunage itératif et une ré entraînement du réseau, nous sommes capables de « packer » séquentiellement plusieurs tâches dans un seul réseau tout en garantissant une baisse minimale des performances et une surcharge de stockage minimale. Contrairement aux travaux précédents qui utilisent des pertes par procuration pour maintenir la précision sur les tâches antérieures, nous optimisons toujours pour la tâche en cours. Nous menons des expériences approfondies sur diverses architectures de réseaux et des jeux de données à grande échelle, observant une robustesse bien supérieure contre l'oubli catastrophique par rapport aux travaux antérieurs. En particulier, nous sommes capables d'ajouter trois tâches de classification fine à un seul réseau VGG-16 pré-entraîné sur ImageNet et d'atteindre des précisions proches de celles obtenues avec des réseaux entraînés séparément pour chaque tâche. Le code est disponible à l'adresse : https://github.com/arunmallya/packnet