Découvrez comment la fonction d'activation GELU améliore les modèles de transformateur tels que GPT-4, en stimulant le flux de gradients, la stabilité et l'efficacité.
L'unité linéaire d'erreur gaussienne (GELU) est une fonction d'activation largement adoptée. d 'activation largement adoptée qui est devenue pierre angulaire des architectures architectures modernes de réseaux neuronaux (NN), en particulier en particulier celles qui impliquent des transformateurs. Contrairement aux fonctions traditionnelles qui imposent un seuil dur aux entrées, GELU assure une transition plus douce et non monotone. Cette caractéristique Cette caractéristique unique lui permet de pondérer les entrées en fonction de leur ampleur, comblant ainsi le fossé entre la non-linéarité déterministe et la régularisation stochastique. déterministe et les techniques de régularisation stochastique. Son utilisation répandue dans des modèles majeurs tels que la série GPT et les modèles de BERT met en évidence sa capacité à aider les systèmes à apprendre des modèles complexes dans des ensembles de données importants.
À un niveau fondamental, GELU sert de gardien pour les informations qui circulent dans un modèle d'apprentissage profond (DL). modèle d'apprentissage profond (DL). Alors que les anciennes fonctions comme l'unité Rectified Linear Unit (ReLU), coupent radicalement les valeurs négatives en les mettant à zéro, GELU adopte une approche plus nuancée. les valeurs négatives en les mettant à zéro, la GELU adopte une approche plus nuancée. Elle multiplie la valeur d'entrée par la fonction de distribution cumulative (FDC ) de la de la distribution gaussienne standard.
Ce processus signifie que l'activation perd de l'information de manière probabiliste à mesure que l'entrée diminue, mais elle le fait avec une courbe douce plutôt qu'un angle aigu. une courbe douce plutôt qu'un angle aigu. Ce lissage améliore le flux d'informations pendant la rétropropagation, ce qui permet d'atténuer l'effet de l'activation. rétropropagation, ce qui permet d'atténuer le problème du gradient de fuite qui peut entraver le bon fonctionnement du système. gradient qui peut entraver l'apprentissage des réseaux profonds. formation des réseaux profonds. En incorporant les propriétés de la distribution gaussienne, GELU introduit une forme de courbure qui permet au modèle de s'adapter à l'évolution de l'environnement. courbure qui permet au modèle de mieux capturer les relations complexes entre les données par rapport aux alternatives linéaires.
Pour comprendre la place de la GELU, il faut la distinguer des autres fonctions d'activation courantes que l'on trouve dans le glossaire de l'IA.
GELU fait partie intégrante de certaines des applications les plus avancées de l'intelligence artificielle (IA). l'intelligence artificielle (IA).
L'intégration de GELU dans un modèle personnalisé est simple à réaliser à l'aide de cadres modernes tels que PyTorch ou TensorFlow. L'exemple suivant montre comment instancier une couche GELU dans un composant de modèle PyTorch .
import torch
import torch.nn as nn
# Define a sample input tensor (batch_size=1, features=5)
input_data = torch.tensor([[-3.0, -1.0, 0.0, 1.0, 3.0]])
# Initialize the GELU activation function
gelu_layer = nn.GELU()
# Apply GELU to the input data
output = gelu_layer(input_data)
# Output demonstrates the smooth suppression of negative values
print(f"Input: {input_data}")
print(f"Output: {output}")
Cet extrait utilise torch.nn.GELU, documenté dans le
API officielle PyTorch GELUpour
pour transformer les données d'entrée. Remarquez que les valeurs négatives sont supprimées sans être ramenées à zéro, ce qui permet de maintenir un flux de gradient régulier, essentiel pour l'apprentissage de méthodes robustes.
flux de gradient régulier, essentiel à l'apprentissage de
l'apprentissage machine (ML) modèles. Pour plus d'informations sur les fondements mathématiques, le document de recherche original
sur les fondements mathématiques, l'article de recherche original, "Unités linéaires d'erreur gaussienne (GELU)fournit un contexte théorique complet.