L'analyse de sensibilité que vous proposez correspond à l'examen des dérivées partielles des sorties par rapport aux entrées. Disons que le vecteur de sortie est donné par , où est le vecteur d'entrée et est la fonction que le réseau implémente. Le jacobien des sorties par rapport aux entrées est: y = f ( x ) x ∈ R d fy∈ Rmy= f( x )x ∈ RréF
Jje j( x ) = ∂∂XjFje( x )
Le jacobien donne le taux de variation local de chaque sortie par rapport à chaque entrée, il nous indique donc comment se comportera en réponse à des perturbations infinitésimales. Si nous commençons par l'entrée et ajoutons une valeur infinitésimale à la ème entrée, nous nous attendons à ce que la ème sortie augmente de .x Δ j i Δ J i j ( x )FXΔjiΔJij(x)
Si a une grande amplitude, cela signifie que la sortie est sensible à l'entrée au voisinage de . Parce que est, en général, non linéaire, cette notion de sensibilité dépend de l'entrée; il peut être important dans certaines régions et proche de zéro dans d'autres. Si vous voulez une sorte de mesure récapitulative de la façon dont les sorties dépendent des entrées, vous devez agréger plusieurs valeurs d'entrée. Par exemple, vous pouvez prendre la valeur absolue du jacobien, moyenne sur toutes les entrées de l'ensemble d'apprentissage (qui agit comme substitut de la valeur attendue par rapport à la distribution sous-jacente des entrées). Bien sûr, ce type de résumé finira par jeter des informations, ce qui pourrait être trompeur dans certaines circonstances.i j x fJij(x)ijxf
Vous pouvez utiliser la règle de chaîne pour dériver une expression pour le jacobien, de la même manière que vous dériveriez le gradient de la fonction de perte par rapport aux paramètres à utiliser avec backprop. Vous pouvez également le calculer en utilisant la différenciation automatique, en utilisant une bibliothèque comme Theano, TensorFlow, etc. auquel cas le jacobien n'existe pas).
Quelques mises en garde: si les entrées ont des unités / échelles différentes les unes des autres, les sensibilités auront également des unités / échelles différentes et ne peuvent pas être directement comparées. La standardisation / mise à l'échelle des entrées est une solution possible. Il est également important de garder à l'esprit que ce type d'analyse nous renseigne sur le modèle lui-même, mais pas nécessairement sur la distribution sous-jacente qui a généré les données. Par exemple, si deux entrées sont corrélées, le modèle peut finir par utiliser la première mais pas la seconde. Dans ce cas, nous trouverions que la sensibilité est élevée pour la première entrée et faible pour la seconde, mais ne devrions pas conclure que la première entrée est intrinsèquement plus importante pour prédire la sortie en général.
Cet article devrait être intéressant.