Pas encore de compte ?
Attention
L'attention est la technique par laquelle le modèle se concentre sur une certaine région de l'image ou sur certains mots d'une phrase, tout comme le font les humains.
Par exemple, lorsqu'ils regardent une image, les humains portent leur attention sur différentes parties de l'image une par une plutôt que de se concentrer sur toutes les parties en quantité égale en même temps.
Encoder-Decoder architecture
Un réseau neuronal récurrent (RNN) peut être utilisé pour mapper une séquence d'entrée de longueur variable à la séquence de sortie de longueur variable, par ex. traduction automatique.
L'architecture séquence à séquence la plus simple qui le rend possible se compose de deux modèles, l'encodeur et le décodeur.
Dans l'architecture Encodeur-Décodeur, l'idée est d'apprendre un vecteur de contexte de taille fixe qui contient les informations essentielles des entrées.
L'encodeur traite la séquence d'entrée (x1,x2,x3,...,xn) et donne un vecteur de contexte, C qui résume la séquence d'entrée.
Le décodeur utilise C pour générer la séquence de sortie (y1,y2,y3,...,ym), où n et m peuvent ne pas être égaux.
L'état caché final de l'état caché du codeur RNN est utilisé pour calculer C, qui est en outre fourni comme entrée au décodeur.
Le problème avec l'approche codeur-décodeur est que toutes les informations d'entrée doivent être compressées dans un vecteur de contexte de longueur fixe, C.
Il est difficile pour le réseau de faire face à une grande quantité d'informations d'entrée (par exemple, dans du texte, de longues phrases) et produire de bons résultats avec seulement ce vecteur de contexte.
Avec le mécanisme d'attention, l'encodeur RNN au lieu de produire un vecteur de contexte unique pour résumer l'image ou la séquence d'entrée, produit une grille de vecteurs.
Autrement dit, l'attention fait de C une séquence de longueur variable plutôt qu'un vecteur de taille fixe.
Chaque étape du décodeur (uniquement) nécessite le calcul du vecteur d'attention dans le modèle seq2seq.
Le décodeur d'attention utilise une fonction de notation pour noter chaque état caché.
Ces scores, lorsqu'ils sont introduits dans une fonction softmax, donnent le poids de chaque vecteur dans le vecteur d'attention. Maintenant, ces poids sont multipliés par le vecteur d'état caché correspondant, dont la somme donne le vecteur de contexte d'attention.
Le décodeur à chaque étape examine la séquence d'entrée ainsi que le vecteur de contexte d'attention, qui concentre son attention à l'endroit approprié dans la séquence d'entrée et produit l'état caché.
La partie importante est que chaque sortie de décodeur yt dépend maintenant d'une combinaison pondérée de tous les états d'entrée, et pas seulement du dernier état.
Le décodeur a l'état caché st=f(st−1,yt−1,ct) pour le mot de sortie à la position t, où t=1,…,m, où le vecteur de contexte ct est une somme des états cachés de l'entrée séquence, pondérée par les scores d'alignement.
Le modèle d'alignement attribue un score αt,i à la paire d'entrée à la position i et de sortie à la position t, (yt,xi), en fonction de leur correspondance.
L'ensemble des scores {αt,i} sont des pondérations définissant la quantité de chaque état caché de la source à prendre en compte pour chaque sortie.
Additive and Multiplicative Attention
L'attention additive (Bahdanau) diffère de l'attention multiplicative (Luong) dans la façon dont la fonction de notation est calculée.
L'attention additive utilise la fonction de notation additive tandis que l'attention multiplicative utilise trois fonctions de notation, à savoir point, général et concat.
Source : https://kharshit.github.io/blog/2019/03/08/attention
Bienvenu, je m’appelle Eric Soupet et je suis l'administrateur du site elodees.com. elodees.com est un état de l'art de l'Intelligence Artificielle et se veut collaboratif, vous pouvez dès à présent proposer du contenu tels que des articles, des événements, des tutoriels, ... alors n'hésitez pas !
Crédit des images de la plate-forme : Pixabay - Pixabay License | Pexels - Pexels License