Il semble standard dans de nombreux packages de réseaux neuronaux de coupler la fonction objectif à minimiser avec la fonction d'activation dans la couche de sortie.
Par exemple, pour une couche de sortie linéaire utilisée pour la régression, il est standard (et souvent seul choix) d'avoir une fonction objectif d'erreur quadratique. Un autre appariement habituel est la sortie logistique et la perte de log (ou entropie croisée). Et encore un autre est softmax et la perte de plusieurs journaux.
En utilisant la notation, pour la valeur de pré-activation (somme des poids multipliés par les activations de la couche précédente), pour l'activation, pour la vérité du terrain utilisée pour l'entraînement, pour l'indice du neurone de sortie.y i
L'activation linéaire va de pair avec l'erreur au carré1
L'activation sigmoïde va de pair avec l'objectif logloss / cross-entropy -∑∀i(yi∗log(ai)+(1-yi)∗log(1-ai))
L'activation de Softmax va de pair avec l'objectif de perte de journal multiclasse
Ce sont ceux que je connais, et je pense qu'il y en a beaucoup dont je n'ai pas encore entendu parler.
Il semble que la perte de log ne fonctionnerait et ne soit numériquement stable que lorsque la sortie et les cibles sont dans la plage [0,1]. Il peut donc ne pas être judicieux d'essayer une couche de sortie linéaire avec une fonction objectif de perte de journal. Sauf s'il existe une fonction de perte de log plus générale qui peut gérer des valeurs de qui sont en dehors de la plage?
Cependant, il ne semble pas si mal d'essayer la sortie sigmoïde avec un objectif d'erreur au carré. Il doit être stable et converger au moins.
Je comprends qu'une partie de la conception derrière ces paires est qu'elle rend la formule pour - où est la valeur de la fonction objectif - facile pour la propagation arrière. Mais il devrait toujours être possible de trouver ce dérivé en utilisant d'autres paires. En outre, il existe de nombreuses autres fonctions d'activation qui ne sont pas couramment observées dans les couches de sortie, mais qui pourraient l'être, telles quetanh
, et où il n'est pas clair quelle fonction objective pourrait être appliquée.
Existe-t-il des situations lors de la conception de l'architecture d'un réseau de neurones, que vous utiliseriez ou devriez utiliser des paires "non standard" d'activation de sortie et de fonctions objectives?