web-dev-qa-db-fra.com

Qu'est-ce que la perte de régularisation dans tensorflow?

Lors de la formation d'un DNN de détection d'objets avec l'API de détection d'objets Tensorflows, son Tensorboard Visualisation Plattform trace un scalaire nommé regularization_loss_1

Qu'est-ce que c'est? Je sais ce qu'est la régularisation (pour rendre le réseau capable de généraliser grâce à diverses méthodes comme le décrochage), mais je ne vois pas clairement ce que pourrait être cette perte affichée.

Merci!

12
gustavz

TL; DR: c'est juste la perte supplémentaire générée par la fonction de régularisation. Ajoutez cela à la perte du réseau et optimisez la somme des deux.

Comme vous le dites correctement, les méthodes de régularisation sont utilisées pour aider une méthode d'optimisation à mieux se généraliser. Un moyen pour l'obtenir est d'ajouter un terme de régularisation à la fonction de perte. Ce terme est une fonction générique, qui modifie la perte "globale" (comme dans, la somme de la perte de résea et la perte de régularisation) afin de conduire l'algorithme d'optimisation dans les directions souhaitées.

Disons, par exemple, que pour quelque raison que ce soit, je souhaite encourager des solutions d'optimisation ayant des poids aussi proches que possible de zéro. Une approche consiste donc à ajouter à la perte produite par le réseau, une fonction des poids du réseau (par exemple, une somme réduite de toutes les valeurs absolues des poids). Puisque l'algorithme d'optimisation minimise la perte globale, mon terme de régularisation (qui est élevé lorsque les poids sont loin de zéro) poussera l'optimisation vers des solutions ayant des poids proches de zéro.

6
GPhilo