J'expérimente avec les réseaux de neurones ces jours-ci. J'ai rencontré une question générale concernant la fonction d'activation à utiliser. C'est peut-être un fait bien connu mais je ne pouvais pas comprendre correctement. Beaucoup d'exemples et d'articles que j'ai vus travaillent sur des problèmes de classification et utilisent soit sigmoïde (dans le cas binaire) ou softmax (dans le cas multi-classes) comme fonction d'activation dans la couche de sortie et cela a du sens. Mais je n'ai vu aucune fonction d'activation utilisée dans la couche de sortie d'un modèle de régression.
Donc, ma question est que, par choix, nous n'utilisons aucune fonction d'activation dans la couche de sortie d'un modèle de régression car nous ne voulons pas que la fonction d'activation limite ou impose des restrictions sur la valeur. La valeur de sortie peut être n'importe quel nombre et aussi grande que des milliers, de sorte que la fonction d'activation comme sigmoïde à tanh n'aura aucun sens. Ou y a-t-il une autre raison? Ou pouvons-nous réellement utiliser une fonction d'activation conçue pour ce genre de problèmes?
Si vous avez, disons, un Sigmoïde comme fonction d'activation dans la couche de sortie de votre NN, vous n'obtiendrez jamais de valeur inférieure à 0 et supérieure à 1.
Fondamentalement, si les données que vous essayez de prédire sont distribuées dans cette plage, vous pouvez approcher avec une fonction Sigmoid et tester si votre prédiction fonctionne bien sur votre ensemble d'entraînement.
Encore plus général, lorsque vous prédisez des données, vous devez trouver la fonction qui représente vos données de la manière la plus efficace.
Par conséquent, si vos données réelles ne correspondent pas bien à la fonction sigmoïde, vous devez penser à toute autre fonction (par exemple, une fonction polynomiale, ou une fonction périodique ou toute autre ou une combinaison d'entre elles), mais vous devez également toujours vous soucier de la facilité avec laquelle vous construirez votre fonction de coût et évaluer les dérivés.
pour le type de problème de régression linéaire, vous pouvez simplement créer la couche de sortie sans aucune fonction d'activation car nous sommes intéressés par les valeurs numériques sans aucune transformation.
plus d'informations :
https://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/
pour la classification: vous pouvez utiliser sigmoid, tanh, Softmax etc.