Accéder au contenu principal

Softplus : La fonction d'activation en douceur qu'il est important de connaître

Ce guide explique les propriétés mathématiques de Softplus, ses avantages et ses inconvénients, sa mise en œuvre dans PyTorch, et quand il convient de passer de ReLU à Softplus.
Actualisé 29 oct. 2025  · 9 min de lecture

La fonction ReLU est la fonction d'activation par défaut dans le domaine de l'apprentissage profond depuis plusieurs années. Il y a une bonne raison à cela : c'est simple et cela fonctionne bien dans la plupart des cas. Cependant, lorsque les neurones commencent à produire des résultats nuls pendant l'entraînement, ils cessent d'apprendre, leurs gradients deviennent nuls et la rétropropagation ne peut plus mettre à jour leurs poids. Dans les réseaux plus profonds, ce problème peut affecter plusieurs neurones et réduire la capacité de votre modèle à capturer les modèles dans vos données.

En termes simples : votre réseau cesse d'apprendre.

Softplus propose une alternative fluide et différenciable qui résout ce problème, tout en conservant la plupart des avantages de ReLU. Elle se rapproche du comportement de ReLU pour les entrées positives, mais fournit des gradients non nuls pour les valeurs négatives. Cela permet de maintenir les neurones actifs tout au long de l'entraînement.

Dans cet article, vous découvrirez ce qu'est Softplus, comment il se compare mathématiquement à ReLU et dans quels cas il est préférable de le choisir plutôt que d'autres fonctions d'activation.

Si vous êtes totalement novice en matière d'apprentissage profond, veuillez consulter notre guide détaillé sur les fonctions d'activation dans les réseaux neuronaux.

Quelle est la fonction Softplus ?

Softplus est une fonction d'activation lisse qui agit comme une approximation différentiable de ReLU.

La fonction prend n'importe quel nombre réel en entrée et renvoie une valeur positive. Softplus ne présente pas d'angle aigu à zéro comme ReLU. Elle s'incurve en douceur à travers ce point de transition.

Voici la définition mathématique :

Formule Softplus

Où :

  • x est la valeur d'entrée
  • e est le nombre d'Euler (environ 2,718)
  • ln est le logarithme naturel.

Pour les entrées positives importantes, Softplus renvoie des valeurs proches de l'entrée elle-même. Pour les entrées négatives, il renvoie de petites valeurs positives au lieu de zéro.

Dérivé de Softplus

La dérivée de Softplus est la fonction logistique sigmoïde. sigmoïde logistique.

Cela signifie :

Dérivé Softplus

σ(x) est la fonction sigmoïde que vous avez probablement déjà rencontrée.

Cette propriété dérivée rend Softplus utile lorsque vous avez besoin d'un flux de gradient régulier pendant la rétropropagation. Les gradients ne descendent jamais à zéro. Cela signifie que les neurones peuvent constamment actualiser leurs poids et poursuivre leur apprentissage.

Comportement dans des situations extrêmes

Softplus se comporte différemment selon que l'entrée est grande et positive ou grande et négative.

Pour les grandes valeurs positives :

Comportement Softplus pour les grandes valeurs positives

Pour les valeurs négatives importantes :

Image 4 - Comportement Softplus pour les grandes valeurs négatives

C'est pourquoi Softplus se rapproche si bien de ReLU. Lorsque x est positif et grand, les deux fonctions renvoient approximativement la même valeur.

La différence est visible sur les entrées négatives. ReLU produit exactement zéro pour les entrées négatives, tandis que Softplus produit de petites valeurs positives.

Cette légère différence permet d'éviter le problème de la mort des neurones. Les neurones utilisant Softplus peuvent se remettre d'activations négatives, car leurs gradients ne disparaissent jamais complètement.

Propriétés mathématiques et informatiques

Softplus possède des propriétés mathématiques qu'il est important de connaître. Ils en font bien plus qu'une simple version améliorée de ReLU.

Lissage et différentiabilité

Softplus est infiniment dérivable en tout point.

Cela signifie que vous pouvez dériver autant de fois que vous le souhaitez, et la fonction restera régulière. En termes mathématiques, il s'agit d'une fonction analytique.

ReLU, en revanche, présente un coude à zéro, c'est-à-dire un angle aigu où la dérivée n'existe pas. Ce point non différentiable peut poser des problèmes dans les algorithmes d'optimisation qui supposent des gradients réguliers.

Dans le domaine de l'apprentissage profond, l'optimisation lisse fonctionne mieux lorsque la surface de perte est lisse. Si vous utilisez des méthodes d'optimisation de second ordre ou tout algorithme reposant sur des transitions de gradient fluides, Softplus vous offre cette fluidité.

Stabilité numérique

Le calcul des exponentielles peut entraîner des problèmes de dépassement de capacité lorsque les entrées sont importantes.

Les frameworks d'apprentissage profond gèrent cela à l'aide d'un paramètre appelé « threshold ». Lorsque l'entrée dépasse ce seuil, la fonction passe du calcul du logarithme au renvoi d'une sortie linéaire.

Voici comment cela fonctionne :

  • Pour les petites entrées : calculer directement Softplus
  • Pour les entrées importantes dépassant le seuil : renvoyer directement les entrées.

Cela permet d'éviter les dépassements de capacité numérique tout en conservant le comportement souhaité. Pour les entrées positives importantes, Softplus se rapproche de toute façon d'une fonction linéaire, de sorte que le commutateur n'a pas d'incidence significative sur la sortie.

Relation avec d'autres fonctions

Softplus est relié à plusieurs autres fonctions d'activation et de probabilité. Voici comment procéder :

  • sigmoïde: Comme vous l'avez observé précédemment, la dérivée de Softplus est la fonction sigmoïde. Cela signifie que Softplus est l'intégrale de la sigmoïde, ce qui est logique lorsque l'on considère leurs formes.

  • LogSumExp: Softplus est en réalité un cas particulier de la fonction LogSumExp. Pour deux entrées, veuillez consulter le site LogSumExp(0, x) = ln(1 + e^x) = Softplus(x). Ceci relie Softplus aux techniques de stabilité numérique utilisées dans l'apprentissage automatique.

  • Softmax: LogSumExp constitue la base de Softmax, donc Softplus partage cette lignée. Les deux fonctions utilisent l'astuce log-exp pour assurer la stabilité numérique.

  • s de la fonction logit: La fonction logit est l'inverse de la fonction sigmoïde. Étant donné que la fonction sigmoïde est la dérivée de la fonction Softplus, ces trois fonctions forment une famille cohérente en théorie des probabilités.

  • s de la fonction convexe conjuguée: En analyse convexe, le conjugué convexe de Softplus est l'entropie binaire négative. Cela relie Softplus aux principes de maximisation de l'entropie utilisés en théorie de l'information et en modélisation probabiliste.

Si vous travaillez avec des modèles probabilistes ou des cadres bayésiens, ce lien avec l'entropie fait de Softplus un choix naturel pour garantir que vos activations respectent les principes d'entropie maximale.

Avantages de l'utilisation de Softplus

Softplus résout des problèmes spécifiques que ReLU ne peut pas traiter efficacement. Voici quatre d'entre eux.

Lisse et différentiable

Softplus est régulier en tout point de la courbe.

Cela signifie que les gradients s'écoulent de manière continue pendant la rétropropagation, sans sauts ni ruptures soudains. Lorsque vous entraînez un réseau, un flux de gradient régulier conduit à des mises à jour de poids plus stables et à un meilleur comportement de convergence.

Le coin aigu de ReLU à zéro peut entraîner des discontinuités de gradient. Softplus ne rencontre pas ce problème.

Empêche la mort des neurones

Softplus ne produit jamais exactement zéro, même pour des entrées négatives importantes.

Cela signifie que chaque neurone peut continuer à apprendre l', car les gradients ne disparaissent jamais complètement. Avec ReLU, un neurone qui commence à produire une sortie nulle peut rester bloqué à ce niveau indéfiniment : son gradient est nul, donc les mises à jour des poids ne le modifient pas.

Softplus vous offre une sécurité. Les neurones peuvent se remettre d'activations négatives et recommencer à contribuer au réseau.

Le résultat est toujours positif.

Softplus garantit des résultats non négatifs pour toute entrée.

Ceci est important lorsque vous créez des modèles qui nécessitent des prédictions positives. La régression de Poisson modèles de régression de Poisson comptent les données (clients, événements, clics) pour lesquelles les valeurs négatives n'ont pas de sens. Les modèles génératifs ont souvent besoin de résultats positifs pour représenter des probabilités ou des intensités.

Plus adapté à certaines tâches

Certaines tâches bénéficient d'un comportement d'activation fluide et continu.

Les tâches de régression avec des fonctions cibles lisses fonctionnent mieux avec des activations lisses. Si vous prédisez des valeurs continues telles que la température, le prix ou la distance, Softplus s'aligne mieux avec la régularité sous-jacente de vos données.

Les modèles bayésiens et les cadres probabilistes privilégient également les fonctions lisses. Lorsque vous modélisez l'incertitude ou travaillez avec des distributions de probabilité, les dérivées continues de Softplus rendent les opérations mathématiques plus claires et plus stables.

Si vous travaillez dans ces domaines, Softplus vous offre de meilleures garanties théoriques et des résultats pratiques supérieurs à ceux obtenus avec les transitions abruptes de ReLU.

Limites et compromis

Il existe certaines limites que vous devez connaître concernant Softplus avant d'abandonner définitivement ReLU. Voici trois d'entre eux.

Coût de calcul plus élevé

ReLU utilise une opération max simple : max(0, x).

Softplus effectue des calculs exponentiels et logarithmiques : ln(1 + e^x). Ces opérations sont plus lentes, en particulier lorsque vous les exécutez des millions de fois sur de grands réseaux comportant des milliers de neurones.

La différence s'accumule. Cette charge de calcul peut augmenter la durée de la formation.

Convergence plus lente

Softplus présente des dégradés plus fluides, ce qui semble avantageux sur le papier.

Cependant, la fluidité n'est pas toujours synonyme de rapidité. Les transitions abruptes de ReLU génèrent des activations clairsemées : de nombreux neurones produisent exactement zéro sortie. Cette rareté permet aux gradients de se propager plus rapidement à travers le réseau pendant la rétropropagation.

Softplus ne présente pas cette rareté. Chaque neurone produit une valeur différente de zéro, ce qui implique davantage de calculs et une convergence potentiellement plus lente dans les architectures profondes.

Moins courant dans la pratique

ReLU domine le domaine de l'apprentissage profond depuis plusieurs années.

Cela signifie qu'il existe davantage de documentation, de problèmes/solutions et de ressources générales à ce sujet. Softplus ne bénéficie pas du même traitement. Moins de personnes l'utilisent, ce qui se traduit par une communauté moins informée, moins de réponses sur Stack Overflow et moins de modèles pré-entraînés qui l'utilisent.

En choisissant Softplus, vous optez pour une solution qui offre moins d'assistance et qui peut nécessiter davantage de débogage de votre part.

Softplus in PyTorch

PyTorch facilite l'utilisation de Softplus grâce à une prise en charge intégrée et deux paramètres qui contrôlent son comportement.

À titre de référence, voici la version de PyTorch que j'utilise :

import torch
import torch.nn as nn

print(torch.__version__)

PyTorch version 2.8.0

Voici la mise en œuvre de base :

# Create a Softplus activation function
softplus = nn.Softplus(beta=1, threshold=20)

# Apply it to some input
x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
output = softplus(x)

print(output)

Softplus appliqué à un tenseur

C'est assez simple. Cependant, ces deux paramètres - beta et threshold - modifient le comportement de la fonction. Examinons-les plus en détail.

Le paramètre bêta

Le paramètre « beta » (lissage de la courbe) contrôle le lissage de la courbe Softplus.

Lorsque vous augmentez beta, la fonction devient plus raide et se rapproche de ReLU. Lorsque vous la diminuez, la fonction devient plus fluide et plus progressive. Voici comment cela fonctionne dans le code :

x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])

# Steeper activation (closer to ReLU)
softplus_steep = nn.Softplus(beta=2, threshold=20)
output_steep = softplus_steep(x)

# Smoother activation
softplus_smooth = nn.Softplus(beta=0.5, threshold=20)
output_smooth = softplus_smooth(x)

print("Softplus - Steeper activation")
print(output_steep)

print()

print("Softplus - Smoother activation")
print(output_smooth)

Ajustement du paramètre bêta

L'beta=1 e par défaut fonctionne bien dans la plupart des cas. Vous ne devriez modifier ce paramètre que si vous avez besoin d'ajuster la sensibilité de l'activation pour des tâches spécifiques.

Le paramètre seuil

Le paramètre threshold empêche le dépassement de capacité numérique pour les entrées volumineuses.

Veuillez noter que l'e^x e de calcul peut augmenter considérablement pour des valeurs x élevées. Lorsque l'entrée dépasse le seuil, PyTorch passe du calcul de la formule Softplus complète au simple renvoi direct de l'entrée :

softplus = nn.Softplus(beta=1, threshold=20)

# Large input bypasses the exponential
large_input = torch.tensor([25.0])
print(softplus(large_input))

Ajustement du paramètre de seuil

L'threshold=20 e par défaut convient à la plupart des scénarios. À ce stade, Softplus se rapproche déjà d'une fonction linéaire, donc le changement n'affecte pas les résultats.

Quand utiliser Softplus

Veuillez sélectionner Softplus lorsque vous avez besoin d'une optimisation dela fluidité des dégradés. Si vous utilisez des méthodes d'optimisation du second ordre ou des algorithmes qui supposent des surfaces de perte lisses, Softplus vous fournit les dérivées continues sur lesquelles reposent ces méthodes.

Veuillez l'utiliser lorsque votre modèle nécessite des sorties non négatives.. Les données de comptage, les valeurs d'intensité et les paramètres de probabilité doivent tous rester positifs. Softplus gère cela de manière naturelle, sans contraintes supplémentaires.

Les réseaux peu profonds bénéficient davantage de Softplus que les réseaux profonds. Lorsque vous ne disposez que de quelques couches, la perte d'un seul neurone due au problème de ReLU affecte les performances. Softplus stimule l'activité et l'apprentissage de tous les neurones.

Vous pouvez également choisir Softplus pour les modèles probabilistes et les cadres bayésiens. Les gradients lisses et les connexions entropiques rendent les opérations mathématiques plus claires. Les modèles basés sur l'énergie bénéficient également de la nature continue de Softplus.

Les modèles dans lesquels il est nécessaire d'interpréter des gradients continus fonctionnent mieux avec Softplus. Si vous analysez la manière dont votre réseau réagit aux changements d'entrée ou étudiez le flux de gradient, les dérivées lisses vous fournissent des informations plus claires que les transitions abruptes de ReLU.

Quand ReLU est toujours plus performant

Il est déconseillé de passer à Softplus simplement parce que cela semble plus avantageux sur le papier ou parce que c'est une nouveauté.

  • Les réseaux vastes et profonds s'entraînent plus rapidement avec ReLU. La charge de calcul de Softplus s'accumule à travers des centaines de couches et des millions de paramètres. La rareté de ReLU contribue également à améliorer la mémoire et la vitesse.
  • Les systèmes de production privilégient souvent ReLU, car les optimisations matérielles le ciblent spécifiquement. Votre formation pourrait être 10 à 20 % plus lente avec Softplus sur le même matériel.
  • Les tâches standard de vision par ordinateur et de traitement du langage naturel ( ) ne bénéficient généralement pas de Softplus. La communauté a consacré des années à optimiser les architectures autour de ReLU, et changer de fonction d'activation implique de reconstruire ces connaissances.

Pour la plupart des projets, il est recommandé de commencer par ReLU. Veuillez passer à Softplus uniquement lorsque vous rencontrez des problèmes spécifiques que ses propriétés permettent de résoudre.

Conclusion

En résumé, Softplus vous offre une alternative fluide à ReLU lorsque cela est nécessaire.

Elle ne remplacera pas ReLU en tant que fonction d'activation par défaut, et cela n'est pas nécessaire. Softplus résout des problèmes spécifiques : les neurones défaillants dans les réseaux peu profonds, les modèles qui nécessitent des sorties non négatives et les tâches où un flux de gradient régulier est important pour l'optimisation.

Vous obtenez de meilleures propriétés mathématiques au détriment de la vitesse de calcul. Pour la plupart des projets d'apprentissage profond, la simplicité et la rapidité de ReLU sont des atouts majeurs. Cependant, lorsque vous travaillez avec des modèles probabilistes, des cadres bayésiens ou des tâches de régression avec des fonctions cibles lisses, Softplus s'impose comme le choix le plus approprié.

Veuillez tester les deux. Veuillez mener des expériences. Veuillez laisser votre problème spécifique guider votre décision.

Souhaitez-vous en savoir davantage ? Veuillez consulter nos excellentes ressources :


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Scientifique de données senior basé en Croatie. Rédacteur technique de premier plan avec plus de 700 articles publiés, générant plus de 10 millions de vues. Auteur du livre Machine Learning Automation with TPOT.

FAQ Softplus

Quelle est la fonction d'activation de Softplus ?

Softplus est une fonction d'activation lisse définie comme f(x) = ln(1 + e^x) qui sert d'approximation différentiable de ReLU. Contrairement à ReLU, qui présente un angle aigu à zéro, Softplus s'incurve de manière fluide à travers le point de transition. Pour les entrées positives importantes, elle renvoie des valeurs proches de l'entrée elle-même, tandis que pour les entrées négatives, elle renvoie de petites valeurs positives au lieu de zéro. Cela le rend utile pour prévenir le problème de la mort des neurones dans les réseaux neuronaux.

Quand est-il préférable d'utiliser Softplus plutôt que ReLU ?

Veuillez sélectionner Softplus lorsque vous avez besoin d'une régularité de gradient pour l'optimisation, par exemple avec des méthodes d'optimisation du second ordre ou des algorithmes qui supposent des surfaces de perte régulières. Il est également idéal lorsque votre modèle nécessite des sorties non négatives (telles que des données de comptage ou des paramètres de probabilité) et pour les réseaux peu profonds où la perte d'un seul neurone due au problème de ReLU peut nuire aux performances. Softplus est particulièrement adapté aux modèles probabilistes, aux cadres bayésiens et aux tâches de régression avec des fonctions cibles lisses. Cependant, il est recommandé de privilégier ReLU pour les réseaux vastes et profonds, ainsi que pour les tâches standard de vision par ordinateur ou de traitement du langage naturel où la vitesse est primordiale.

Quels sont les principaux avantages de Softplus par rapport à ReLU ?

Softplus offre quatre avantages clés : il est fluide et différentiable en tout point, ce qui évite les discontinuités de gradient ; il empêche la mort des neurones en ne produisant jamais exactement zéro, de sorte que tous les neurones peuvent continuer à apprendre ; il garantit des sorties non négatives pour toute entrée ; et il est mieux adapté aux tâches nécessitant un comportement d'activation fluide et continu, comme la régression et la modélisation probabiliste. Le flux de gradient continu permet des mises à jour de poids plus stables et un meilleur comportement de convergence pendant l'entraînement.

Comment fonctionnent les paramètres bêta et seuil dans Softplus de PyTorch ?

Le paramètre bêta contrôle la régularité de la courbe Softplus : augmenter la valeur bêta rend la fonction plus raide et plus proche de ReLU, tandis que la diminuer rend la fonction plus régulière et plus progressive. Le paramètre seuil empêche le débordement numérique pour les entrées volumineuses en passant du calcul complet de la formule Softplus au renvoi direct de l'entrée lorsque celle-ci dépasse le seuil. Les valeurs par défaut (bêta = 1, seuil = 20) sont efficaces dans la plupart des cas.

Quelle est la différence de coût de calcul entre Softplus et ReLU ?

Softplus a un coût de calcul plus élevé que ReLU, car il calcule des exponentielles et des logarithmes (ln(1 + e^x)) au lieu de la simple opération max de ReLU (max(0, x)). Ces opérations sont plus lentes, en particulier lorsqu'elles sont exécutées des millions de fois sur de grands réseaux comportant des milliers de neurones. Cette charge de calcul supplémentaire peut augmenter le temps d'entraînement de 10 à 20 % sur le même matériel, ce qui explique pourquoi ReLU reste privilégié pour les systèmes de production et les réseaux profonds de grande taille où la vitesse est essentielle.

Sujets

Apprenez avec DataCamp

Cours

Comprendre le machine learning

2 h
260.6K
Une introduction au machine learning sans codage.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

Didacticiel

Fonctions lambda Python : Guide pour débutants

Découvrez les fonctions lambda Python, leur utilité et quand les utiliser. Comprend des exemples pratiques et des bonnes pratiques pour une mise en œuvre efficace.
Mark Pedigo's photo

Mark Pedigo

Didacticiel

Séquence de Fibonacci en Python : Apprenez et explorez les techniques de codage

Veuillez découvrir le fonctionnement de la suite de Fibonacci. Veuillez explorer ses propriétés mathématiques et ses applications concrètes.
Laiba Siddiqui's photo

Laiba Siddiqui

Didacticiel

Normalisation vs. Standardisation: comment faire la différence

Découvrez les principales différences, les applications et la mise en œuvre de la normalisation et de la standardisation dans le prétraitement des données pour l’apprentissage automatique.
Samuel Shaibu's photo

Samuel Shaibu

Didacticiel

Comment élever un nombre au carré en Python : Exemples de base et méthodes avancées

La fonction carrée en Python est simple : Veuillez utiliser l'opérateur intégré ** ou envisager NumPy, pow(), math.pow(), les opérateurs bit à bit et d'autres fonctions pour des solutions plus polyvalentes.
Allan Ouko's photo

Allan Ouko

Didacticiel

Tutoriel Python : concaténation de chaînes de caractères

Découvrez différentes méthodes pour concaténer des chaînes de caractères en Python, avec des exemples illustrant chaque technique.
DataCamp Team's photo

DataCamp Team

Didacticiel

Tutoriel sur la fonction range() en Python

Découvrez la fonction range() de Python et ses capacités à l'aide d'exemples.
Aditya Sharma's photo

Aditya Sharma

Voir plusVoir plus