Logo Zéphyrnet

Une introduction de base à la fonction d'activation dans l'apprentissage en profondeur

Date :

Cet article a été publié dans le cadre du Blogathon sur la science des données.

Introduction

La fonction d'activation est définie comme suit : La fonction d'activation calcule un total pondéré puis y ajoute un biais pour décider si un neurone doit être activé ou non. L'objectif de la fonction d'activation est d'introduire de la non-linéarité dans la sortie d'un neurone.

Un réseau de neurones sans fonction d'activation est essentiellement un modèle de régression linéaire dans Deep Learning, puisque ces fonctions effectuent des calculs non linéaires sur l'entrée d'un réseau de neurones, lui permettant d'apprendre et d'effectuer des tâches plus complexes.. Par conséquent, l'étude des dérivés et de l'application des fonctions d'activation, ainsi que l'analyse des avantages et des inconvénients de chaque fonction d'activation, est essentielle pour sélectionner le type approprié de fonction d'activation qui peut donner la non-linéarité et la précision dans un modèle de réseau neuronal particulier.

Fonction d'activation dans l'apprentissage en profondeur
Source : Datajango.com

Nous savons que les neurones d'un réseau de neurones fonctionnent en fonction de leur poids, de leur biais et de leur fonction d'activation. Nous modifierions les poids et les biais des neurones dans un réseau de neurones en fonction de l'erreur de sortie. La rétropropagation est le terme pour ce processus. Étant donné que les gradients sont fournis simultanément avec l'erreur pour mettre à jour les poids et les biais, les fonctions d'activation permettent donc la rétropropagation.

Table des matières

  1. Pourquoi avons-nous besoin de fonctions d'activation dans CNN ?
  2. Variantes de la fonction d'activation
  3. Implémentation du code Python
  4. Conclusion

 Pourquoi en avons-nous besoin ?

Fonctions d'activation non linéaires : sans fonction d'activation, un réseau de neurones n'est qu'un modèle de régression linéaire. La fonction d'activation transforme l'entrée de manière non linéaire, lui permettant d'apprendre et d'accomplir des tâches plus complexes.

Preuve mathématique:-

Les éléments du diagramme comprennent :- Un calque caché, c'est-à-dire le calque 1 :- Un calque visible, c'est-à-dire le calque 2 :- Un calque visible, À savoir

Fonction d'activation dans l'apprentissage en profondeur

Source : geeksforgeeks.com

une(1) = z(1)

= W(1)X + b(1) (1)

Ici,

La sortie vectorisée de la couche 1 est z(1).

W(1) désigne les poids vectorisés (w1, w2, w3 et w4) appliqués aux neurones de la couche cachée, X désigne les caractéristiques d'entrée vectorisées (i1 et i2) et b désigne le biais vectorisé (b1 et b2).

Toute fonction linéaire a a(1) étant une forme vectorisée.

(Notez que la fonction d'activation n'est pas prise en compte ici.)

La couche de sortie, ou couche 2, est la suivante :

L'entrée de la couche 2 est z(2) = W(2)a(1) + b(2) a(2) = z(2)a(1) + b(2) a(2) = z(2)a (1) + b(2) une(2) = z(2)a(1) + b(2) une(2) = z(2)a(1) + b(2) une(2) (2 )

Calcul de la couche de sortie :

lu de z(1).

(W(2) * [W(1)X + b(1)]) + b = (W(2) * [W(1)X + b(1)]) (2)

[W(2) * W(1)] = z(2) * [W(2)*b(1) + b(2)] + X

laissez,

W = [W(2) * W(1)]

b = [W(2)*b(1) + b(2)]

z(2) = W*X + b est le résultat final.

Ce qui est encore une fois une fonction linéaire.

Même après avoir appliqué une couche cachée, cette observation donne une fonction linéaire, on peut donc en déduire que peu importe le nombre de couches cachées nous ajoutons à un réseau de neurones, toutes les couches se comporteront de la même manière car la combinaison de deux fonctions linéaires donne une fonction linéaire.

1). Fonction linéaire: -

• Équation : L'équation d'une fonction linéaire est y = ax, ce qui est très similaire à l'équation d'une ligne droite.

• Plage -inf à +inf

• Applications : La fonction d'activation linéaire n'est utilisée qu'une seule fois, dans la couche de sortie.

Fonction d'activation linéaire | Fonction d'activation dans l'apprentissage en profondeur
Source : V7labs 

• Problèmes: Si nous différencions une fonction linéaire pour introduire la non-linéarité, le résultat ne sera plus lié à l'entrée "x" et la fonction deviendra constante, donc notre procédure ne montrera aucun comportement.

Par exemple, déterminer le prix d'une maison est un problème de régression. Étant donné que le prix d'un appartement peut être un grand ou un petit nombre, nous pouvons utiliser une activation linéaire à la couche de sortie. Même dans ce cas, toute fonction non linéaire au niveau des couches cachées du réseau de neurones est requise.

2) La fonction sigmoïde:

• C'est une fonction qui est tracée sous la forme d'une forme en 'S'.

• Formule : A = 1/(1 + ex)

De nature non linéaire. Les valeurs de X vont de -2 à 2, mais les valeurs de Y sont très raides. Cela indique que de légers changements en x entraînera des changements massifs dans la valeur de Y.

Fonction sigmoïde | Fonction d'activation dans l'apprentissage en profondeur
Source: Medium.com

• valeur 0 à 1 de la plage

3). Fonction Tanh: La fonction Tanh, également identifiée comme fonction tangente hyperbolique, est une activation qui fonctionne presque toujours mieux que la fonction sigmoïde. C'est simplement une fonction sigmoïde qui a été ajustée. Les deux sont liés et peuvent être déduits l'un de l'autre.

• Équation : f(x) = tanh(x) = 2/(1 + e-2x) – 1 OU tanh(x) = 2 * sigmoïde(2x) – 1 OU tanh(x) = 2 * sigmoïde(2x) - 1

Tangente hyperbolique | Fonction d'activation dans l'apprentissage en profondeur
Source: medium.com

• Plage de valeurs : -1 à +1

• Les usages:- Généralement utilisé dans les couches cachées d'un réseau de neurones puisque ses valeurs changent de -1 à 1, ce qui rend la moyenne de la couche cachée égale à 0 ou très proche de celle-ci, ce qui facilite le centrage des données en rapprochant la moyenne de 0. Cela rend l'apprentissage de la couche suivante beaucoup plus simple.

4). RÉLU (Unité linéaire rectifiée) est la quatrième lettre de l'alphabet. C'est la méthode d'activation la plus utilisée. Les couches cachées des réseaux de neurones sont principalement utilisées.

• Formule : A(x) = maximum (0,x). Si x est positif, il renvoie x ; sinon, il renvoie 0.

• Plage de valeurs : (inf, 0)

ReLu

Source: Medium.com

• De nature non linéaire, ce qui signifie simplement rétropropager les erreurs et également avoir la fonction ReLU activant de nombreuses couches de neurones.

• Applications: Parce qu'il comprend moins d'opérations mathématiques, ReLu est moins coûteux en calcul que tanh et sigmoïde. Seuls quelques neurones sont actifs à la fois, ce qui rend le réseau rare et efficace pour le calcul.

En termes simples, la fonction RELU apprend beaucoup plus rapidement que les fonctions sigmoïde et Tanh.

5). Fonction Softmax: La fonction softmax est un type de fonction sigmoïde qui s'avère pratique lorsqu'il s'agit de problèmes de catégorisation.

• Nature de la non-linéarité

• Les usages: Généralement utilisé lorsqu'il s'agit de plusieurs classes. La fonction softmax diviserait par la somme des sorties et comprimerait la sortie

Fonction d'activation dans l'apprentissage en profondeur
Source: Medium.com

• Sortie : la fonction softmax est mieux utilisée dans la couche de sortie du classificateur, où nous essayons de définir la classe de chaque entrée à l'aide de probabilités.

Sélection de la bonne fonction d'activation

Si vous n'êtes pas sûr de la fonction d'activation à utiliser, sélectionnez simplement RELU, qui est une fonction d'activation large utilisée dans la plupart des cas de nos jours. Si notre couche de sortie est destinée à être utilisée pour l'identification/détection binaire, la fonction sigmoïde est un choix évident.

 

importer numpy as np
#conception de la fonction pour sigmoïde

def sigmoïde(x):
s=1/(1+np.exp(-x))
ds=s*(1-s)
retour s, dsx=np.arange(-6,6,0.01)
sigmoid(x)# Configurer les axes centrés
fig, hache = plt.subplots(figsize=(9, 5))

#Les épines de l'axe sont essentiellement les lignes qui confinent la zone de tracé donnée
ax.spines['left'].set_position('center') ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position ('bas') ax.yaxis.set_ticks_position('gauche')
# Créer et afficher le tracé sigmoïde

ax.plot(x,sigmoïde(x)[0], couleur=”#307EC7″, largeur de ligne=3, label=”sigmoïde”)
ax.plot(x,sigmoid(x)[1], couleur=”#9621E2″, largeur de ligne=3, label=”dérivé”)

#placer la légende dans le coin supérieur droit des axes
ax.legend(loc="en haut à droite", frameon=False) fig.show()

 

Sortie, Source : Auteur

 

 

Conclusion

En savoir plus blogue sur Analytics Vidhya.

Sur ce, je termine ce blog.

Je suis Pranshu Sharma et je suis un passionné de science des données

Merci beaucoup d'avoir pris votre temps précieux pour lire ce blog. N'hésitez pas à signaler toute erreur (je suis un apprenant après tout) et à fournir des commentaires respectifs ou à laisser un commentaire. E-mail: [email protected]

 

Les médias présentés dans cet article n'appartiennent pas à Analytics Vidhya et sont utilisés à la discrétion de l'auteur. 

spot_img

Dernières informations

spot_img