Quelle est la «capacité» d'un modèle d'apprentissage automatique?

15

J'étudie ce tutoriel sur les encodeurs automatiques variationnels de Carl Doersch . Dans la deuxième page, il indique:

L'un des frameworks les plus populaires est le Variational Autoencoder [1, 3], le sujet de ce tutoriel. Les hypothèses de ce modèle sont faibles et la formation est rapide par rétropropagation. Les VAE font une approximation, mais l'erreur introduite par cette approximation est sans doute faible compte tenu des modèles de grande capacité . Ces caractéristiques ont contribué à une augmentation rapide de leur popularité.

J'ai lu dans le passé ce genre d'allégations sur les modèles à haute capacité , mais je ne semble pas trouver de définition claire pour cela. J'ai également trouvé cette question liée au stackoverflow, mais pour moi, la réponse est très insatisfaisante.

Existe-t-il une définition de la capacité d'un modèle? Pouvez-vous le mesurer?

Andrés Marafioti
la source

Réponses:

13

La capacité est un terme informel. C'est très proche (sinon un synonyme) de la complexité du modèle. C'est une façon de parler de la complexité d'un modèle ou d'une relation qu'un modèle peut exprimer. Vous pouvez vous attendre à ce qu'un modèle avec une capacité plus élevée puisse modéliser plus de relations entre plus de variables qu'un modèle avec une capacité plus faible.

En tirant une analogie de la définition familière de la capacité, vous pouvez la considérer comme la capacité d'un modèle à apprendre de plus en plus de données, jusqu'à ce qu'il soit complètement «rempli» d'informations.

Il existe différentes façons de formaliser la capacité et de calculer une valeur numérique pour celle-ci, mais ce ne sont là que quelques «opérationnalisations» possibles de la capacité (de la même manière que si quelqu'un proposait une formule pour calculer la beauté, vous vous rendriez compte que la formule n'est qu'une interprétation faillible de la beauté).


La dimension VC est une formulation mathématiquement rigoureuse de la capacité. Cependant, il peut y avoir un grand écart entre la dimension VC d'un modèle et la capacité réelle du modèle à ajuster les données. Même si la connaissance du VC dim donne une limite sur l'erreur de généralisation du modèle, cela est généralement trop lâche pour être utile avec les réseaux de neurones.

Une autre ligne de recherche voir ici consiste à utiliser la norme spectrale des matrices de poids dans un réseau neuronal comme mesure de la capacité. Une façon de comprendre cela est que la norme spectrale limite la constante de Lipschitz du réseau.

La façon la plus courante d'estimer la capacité d'un modèle est de compter le nombre de paramètres. Plus il y a de paramètres, plus la capacité en général est élevée. Bien sûr, souvent un réseau plus petit apprend à modéliser des données plus complexes mieux qu'un réseau plus grand, donc cette mesure est également loin d'être parfaite.

Une autre façon de mesurer la capacité pourrait être de former votre modèle avec des étiquettes aléatoires ( Neyshabur et. Al ) - si votre réseau peut se souvenir correctement d'un tas d'entrées avec des étiquettes aléatoires, cela montre essentiellement que le modèle a la capacité de se souvenir de toutes ces points de données individuellement. Plus il y a de paires d'entrée / sortie qui peuvent être "apprises", plus la capacité est élevée.

ϵ

shimao
la source
1
C'est une meilleure réponse que celle de stackoverflow, merci. J'ai encore du mal à voir des termes vaguement définis utilisés comme justification pour autre chose, mais je suppose que c'est ainsi que le domaine évolue.
Andrés Marafioti
1
"il peut y avoir un grand écart entre la dimension VC d'un modèle et la capacité réelle du modèle." il s'agit d'une déclaration très trompeuse car la "capacité réelle" n'est pas définie avec précision. En fait, la dimension VC est une bonne mesure de la capacité d'un modèle. Ce n'est pas parce que les réseaux de neurones semblent résoudre certains problèmes que cela les rend "hautement capables". En fait, la plupart du temps, les gens pensent que les réseaux de neurones résolvent un problème, alors qu'ils résolvent un problème beaucoup plus simple et, en fait, ils échouent souvent de façon catastrophique (parce qu'ils ont été formés "de manière inattendue" pour résoudre un problème plus simple).
nbro