J'étudie et j'essaie de mettre en œuvre des réseaux de neurones convolutionnels, mais je suppose que cette question s'applique aux perceptrons multicouches en général.
Les neurones de sortie de mon réseau représentent l'activation de chaque classe: le neurone le plus actif correspond à la classe prédite pour une entrée donnée. Pour considérer un coût d'entropie croisée pour la formation, j'ajoute une couche softmax à la fin du réseau, afin que la valeur d'activation de chaque neurone soit interprétée comme une valeur de probabilité.
Ma question est: les neurones de la couche de sortie devraient-ils appliquer une fonction non linéaire à l'entrée? Mon intuition est qu'il n'est pas nécessaire:
- si l'entrée du ème neurone de sortie est le produit scalaire entre un vecteur (provenant de la couche précédente) et les poids pour ce neurone,
- et si j'emploie une fonction non linéaire monotone comme le sigmoïde ou le ReLU
- alors la plus grande sortie d'activation correspondra toujours au plus grand , donc de ce point de vue la fonction non linéaire ne changerait pas la prédiction.
Quelque chose ne va pas avec cette interprétation? Y a-t-il des facteurs de formation que j'écarte qui rendent la non-linéarité de sortie nécessaire?
Et si j'ai raison, est-ce que quelque chose changerait si au lieu d'utiliser la fonction sigmoïde j'utilise la fonction ReLU , qui n'est pas strictement monotone?
ÉDITER
En référence à la réponse de Karel, dont la réponse était essentiellement "ça dépend", voici une description plus détaillée de mon réseau et de mon doute:
Supposons que j'ai N couches cachées, et ma couche de sortie est juste une couche softmax sur un ensemble de neurones représentant des classes (donc ma sortie attendue est la probabilité que les données d'entrée appartiennent à chaque classe). En supposant que les premières N-1 couches ont des neurones non linéaires, quelle est la différence entre l'utilisation de neurones non linéaires et linéaires dans la N-ème couche cachée?