Tiefes Verständnis des Aufmerksamkeitsmechanismus

Dieser Artikel dient hauptsächlich dazu, mein System zu überwachen und das Wissen über den Aufmerksamkeitsmechanismus zu erlernen (ich habe ihn oft vage gelesen, aber nichts gelernt ... Ich habe erst nach dem Lesen des Artikels herausgefunden, dass ich das Wissen ergänzen muss). .
Es ist hauptsächlich in die folgenden Punkte unterteilt:

TEIL1----Welches Problem soll der Aufmerksamkeitsmechanismus lösen?

TEIL2 ----Mathematisches Prinzip des Mechanismus der sanften Aufmerksamkeit (sanfte Aufmerksamkeit)

TEIL3----Soft-Attention-Mechanismus, Encoder-Decoder-Framework, Seq2Seq

TEIL4----Das Prinzip des Selbstaufmerksamkeitsmodells

TEIL5----Mehrkopf Achtung

TEIL6----Anwendung des Aufmerksamkeitsmechanismus (Computer Vision-Bereich)

TEIL7----Queraufmerksamkeit


Welches Problem löst der TEIL1-Aufmerksamkeitsmechanismus?

Beim Lernen neuronaler Netze gilt im Allgemeinen: Je mehr Parameter das Modell hat, desto stärker ist die Ausdrucksfähigkeit des Modells und desto größer ist die im Modell gespeicherte Informationsmenge. Dies führt jedoch zu dem Problem der Informationsüberflutung. Durch die Einführung des Aufmerksamkeitsmechanismus, der Konzentration auf die Informationen, die für die aktuelle Aufgabe unter den zahlreichen Eingabeinformationen wichtiger sind, die Reduzierung der Aufmerksamkeit auf andere Informationen und sogar das Herausfiltern irrelevanter Informationen kann das Problem der Informationsüberflutung gelöst und die Effizienz gesteigert werden der Aufgabenbearbeitung verbessert werden. Effizienz und Genauigkeit.
Dies ähnelt unserem menschlichen visuellen Aufmerksamkeitsmechanismus . Durch schnelles Scannen des globalen Bildes finden wir den Zielbereich, auf den wir uns konzentrieren müssen, der im Allgemeinen als Fokus der Aufmerksamkeit bezeichnet wird, und investieren dann mehr Aufmerksamkeit in diesen Bereich, um ihn zu erhalten mehr Aufmerksamkeit. Es ist notwendig, auf die detaillierten Informationen des Ziels zu achten und gleichzeitig andere unwichtige und irrelevante Informationen zu ignorieren.
Der Aufmerksamkeitsmechanismus beim Deep Learning ähnelt im Wesentlichen dem selektiven visuellen Aufmerksamkeitsmechanismus des Menschen. Das Kernziel besteht darin, aus einer großen Anzahl von Informationen Informationen auszuwählen, die für das aktuelle Aufgabenziel wichtiger sind .


TEIL2 Mathematische Prinzipien des Mechanismus der sanften Aufmerksamkeit

(1) Das originellste Modell

X = [ x 1 , x 2 , . . . , x N ] X=[x_1,x_2,...,x_N]X=[ x1,X2,... ,XN] stellt N Eingabeinformationen dar. Um die Effizienz des neuronalen Netzwerks zu verbessern, ist es nicht erforderlich, dass das neuronale Netzwerk alle N Eingabeinformationen verarbeiten kann, sondern muss nur beiXXWählen Sie zur Berechnung einige aufgabenbezogene Informationseingaben in X aus. (Lassen Sie uns hier über den Unterschied zwischen weicher Aufmerksamkeit und harter Aufmerksamkeit sprechen.)Der Mechanismus der weichen Aufmerksamkeitbedeutet, dass bei der Auswahl von Informationen, anstatt eine aus N Informationen auszuwählen, das gemittelte Gewicht von N Eingabeinformationen berechnet und dann in das neuronale Netzwerk eingegeben wird Berechnung. Der Mechanismus der harten Aufmerksamkeitbezieht sich auf die Auswahl von Informationen an einer bestimmten Position in der Eingabesequenz, z. B. die zufällige Auswahl einer Information oder die Auswahl der Informationen mit der höchsten Wahrscheinlichkeit. Im Allgemeinen wird der Soft-Attention-Mechanismus verwendet, um das Problem des neuronalen Netzwerks zu lösen.
Hier stellen wir zunächst die Berechnung des Aufmerksamkeitswerts separat vor. Der vollständige Arbeitsablauf des neuronalen Netzwerks mit Aufmerksamkeitsmechanismus finden Sie in TEIL3.

Die Berechnung des Aufmerksamkeitswertes kann in zwei Schritte unterteilt werden:

(1) Berechnen Sie die Aufmerksamkeitsverteilung für alle Eingabeinformationen

In einem solchen Szenario: Geben Sie den Eingabeinformationsvektor XX einX wird als Informationsspeicher betrachtet und erhält nun einen Abfragevektorqqq , wird zum Suchen und Auswählenvon XXEinige Informationen in X , dann müssen Sie die Indexposition der ausgewählten Informationen kennen. Es wird ein weicher Auswahlmechanismus eingesetzt. Anstatt nur eine Information aus den gespeicherten Informationen auszuwählen, werden einige Informationen aus allen Informationen extrahiert, und es werden mehr der relevantesten Informationen extrahiert.
Definieren Sie eine Aufmerksamkeitsvariablez ∈ [ 1 , N ] z∈[1,N]z[ 1 ,N ] , um die Indexposition der ausgewählten Informationen darzustellen, d. h.z = iz=iz=i bedeutet, dass das iiausgewählt istIch gebe Informationen ein und berechne dann den gegebenenqqq undXXIm Fall von X wählen SieiiDie Wahrscheinlichkeit von i Eingabeinformationenα i α_iAich: (
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier die Softmax-Funktion hinzu: Die Bedeutung von Softmax besteht darin, dass es nicht mehr eindeutig einen bestimmten Maximalwert bestimmt, sondern jedem Ausgabeklassifizierungsergebnis einen Wahrscheinlichkeitswert zuweist, der die Möglichkeit der Zugehörigkeit zu jeder Kategorie angibt. Ein einzelner Ausgabeknoten Die Binärdatei Das Klassifizierungsproblem verwendet im Allgemeinen die Sigmoid-Funktion auf dem Ausgabeknoten, und das binäre Klassifizierungs- oder Mehrfachklassifizierungsproblem mit zwei oder mehr Ausgabeknoten verwendet im Allgemeinen die Softmax-Funktion auf dem Ausgabeknoten.) Unter diesen ist α
i α_iAichDer resultierende Wahrscheinlichkeitsverteilungsvektor wird Aufmerksamkeitsverteilung (Aufmerksamkeitsverteilung) genannt. s ( xi , q ) s(x_i,q)s ( xich,q ) ist die Aufmerksamkeitsbewertungsfunktion, die die folgenden Formen hat:

Fügen Sie hier eine Bildbeschreibung ein
Unter ihnen WWWUUUvvv ist ein lernbarer Netzwerkparameter,ddd ist die Dimension der Eingabeinformationen.

(2) Berechnen Sie den gewichteten Durchschnitt der Eingabeinformationen entsprechend der Aufmerksamkeitsverteilung

Aufmerksamkeitsverteilung α i α_iAichGibt an, dass in einer bestimmten Abfrage qqWenn q , der EingabeinformationsvektorXXiiin XIch informiere und frageqqDer Grad der Korrelation von q . Die Verwendung des Soft-Information-Auswahlmechanismus zur Bereitstellung der Ergebnisse der Abfrage besteht darin, die Eingabeinformationen in einem gewichteten Durchschnitt zusammenzufassen, um den Aufmerksamkeitswert zu erhalten: Das Folgende ist das Gesamtprozessdiagramm zur Berechnung des Aufmerksamkeitswerts
Fügen Sie hier eine Bildbeschreibung ein
:
Fügen Sie hier eine Bildbeschreibung ein

(2) Schlüssel-Wert-Paar-Aufmerksamkeitsmodus

Allgemeiner gesagt können Eingabeinformationen durch Schlüssel-Wert-Paare und dann durch NN dargestellt werdenN Eingabeinformationen können ausgedrückt werden als:
( K , V ) = [ ( k 1 , v 1 ) , ( k 2 , v 2 ) , . . . , ( k N , v N ) ] (K,V)= [ (k_1,v_1),(k_2,v_2),...,(k_N,v_N)]( K ,V )=[( k1,v1) ,( k2,v2) ,... ,( kN,vN)] , wobei Key zur Berechnung der Aufmerksamkeitsverteilungα i α_iAichDer Wert wird zur Berechnung der aggregierten Informationen basierend auf der Aufmerksamkeitsverteilung verwendet .
Dann kann der Aufmerksamkeitsmechanismus als Soft-Adressierungsvorgang betrachtet werden: die Eingabeinformationen XXX gilt als im Speicher abgelegter Inhalt. Das Element setzt sich aus der Adresse Key (Schlüssel) und dem Wert Value (Wert) zusammen. Derzeit erfolgt eine Abfrage von Key=Query (Darstellung der Zielaufgabe) und dem Ziel besteht darin, den entsprechenden Wertwert im Speicher abzurufen, dh den Aufmerksamkeitswert. Bei der Soft-Adressierung ist es nicht notwendig, die Bedingung „Key=Query“ strikt zu erfüllen, um gespeicherte Informationen abzurufen. Stattdessenwird ermittelt, wie viel Inhalt ausindemdie Ähnlichkeit zwischen der Abfrage und dem Adressschlüssel des Elements im Speicher. Der jedem Adressschlüssel entsprechende Wertwert wird extrahiert und summiert. Dies entspricht der Berechnung des Gewichts jedes Wertwerts basierend auf der Ähnlichkeit zwischen Abfrage und Schlüssel und dem anschließenden Gewichten und Summieren der Wertwerte, um den endgültigen Wert zu erhalten value ist der Aufmerksamkeitswert.

Es kann in drei Prozesse zusammengefasst werden:
Schritt 1: Berechnen Sie die Ähnlichkeit zwischen den beiden basierend auf Abfrage und Schlüssel . Kann mithilfe des oben aufgeführten additiven Modells, Skalarproduktmodells oder der Kosinusähnlichkeit berechnet werden, um den Aufmerksamkeitswert zu erhalten. si = F ( Q , ki ) s_i=F(Q,k_i)Sich=F ( Q ,kich)
Schritt 2: Verwenden Sie die Softmax-Funktion, um den Aufmerksamkeitswert numerisch umzuwandeln. Einerseits kann eine Normalisierung durchgeführt werden, um eine Wahrscheinlichkeitsverteilung zu erhalten, in der die Summe aller Gewichtskoeffizienten 1 beträgt. Andererseits können die Eigenschaften der Softmax-Funktion verwendet werden, um die Gewichte wichtiger Elemente hervorzuheben (dies liegt daran, dass ... Die Softmax-Funktion in Form eines Index kann verwendet werden, um die große Lücke zu verringern. Der numerische Abstand ist größer):
α i = softmax ( si ) = exp ( si ) ∑ j = 1 N exp ( sj ) α_i=softmax(s_i )=\frac{exp(s_i)}{\sum_{j= 1}^Nexp(s_j)}Aich=so f t max ( s _ich)=j = 1Ne x p ( sj)e x p ( sich)

Schritt 3: Gewichteter und summierter Wert gemäß dem Gewichtungskoeffizienten : A Attention ( ( K , V ) , Q ) = ∑ i = 1 N α ivi Attention((K,V),Q)=\sum_{i=1}^ Nα_iv_iA t e n t i o n (( K ,V ) ,F )=ich = 1NAichvich

Das Diagramm sieht wie folgt aus:
Fügen Sie hier eine Bildbeschreibung ein
Drücken Sie diese drei Prozesse mit Formeln aus: Aufmerksamkeit ( ( K , V ) , q ) = ∑ i = 1 N α ivi = ∑ i = 1 N exp ( s ( ki , q ) ) ∑ j = 1 N exp ( s ( kj , q ) ) vi Attention((K,V),q)=\sum_{i=1}^Nα_iv_i=\sum_{i=1}^N\frac{exp(s(k_i , q))}{\sum_{j=1}^Nexp(s(k_j,q))}v_ia tt e n t i o n (( K ,V ) ,q )=ich = 1NAichvich=ich = 1Nj = 1Ne x p ( s ( kj,q ))e x p ( s ( kich,q ) )vich


TEIL3 Soft-Attention-Mechanismus und Encoder-Decoder-Framework

Der Aufmerksamkeitsmechanismus ist eine allgemeine Idee, die nicht von einem bestimmten Framework abhängt. Die meisten Aufmerksamkeitsmodelle werden jedoch derzeit in Verbindung mit dem Encoder-Decoder-Framework verwendet . Es lässt sich einfach in zwei Schritten zusammenfassen:

  • Berechnen Sie die Aufmerksamkeitsverteilung für die gegebenen Informationen (d. h. beurteilen Sie, welche Informationen wichtig und welche nicht wichtig sind, und geben Sie jeweils unterschiedliche Gewichte an).
  • Berechnen Sie den gewichteten Durchschnitt aller Eingabeinformationen entsprechend der Aufmerksamkeitsverteilung

Die folgende Abbildung zeigt die Struktur der Kombination der beiden im Bereich der Textverarbeitung (ohne Einführung von Aufmerksamkeit und Einführung eines Aufmerksamkeitsmodells):
Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein
Das Encoder-Decoder-Framework im Bereich der Textverarbeitung kann intuitiv verstanden werden: Es kann als allgemeines Verarbeitungsmodell betrachtet werden, das für die Verarbeitung eines Satzes (oder Kapitels) geeignet ist, um einen anderen Satz (oder ein Kapitel) zu generieren. Für das Satzpaar <Quelle, Ziel> besteht unser Ziel darin, den Eingabesatz „Quelle“ anzugeben und zu erwarten, dass der Zielsatz „Ziel“ über das Encoder-Decoder-Framework generiert wird. Quelle und Ziel können in derselben Sprache oder in zwei verschiedenen Sprachen vorliegen. Quelle und Ziel bestehen aus ihren jeweiligen Wortfolgen. Der Encoder dient dazu, die Eingabesatzquelle zu codieren und den Eingabesatz durch nichtlineare Transformation in eine semantische Zwischendarstellung cc umzuwandelnc . Für den Decoder Decoder besteht seine Aufgabe darin, ccdarzustellenc und die zuvor generierten historischen Informationen, um Wörter zu generieren, die in Zukunft generiert werden sollen.

Das Encoder-Decoder-Framework ist ein gängiger Framework-Modus im Bereich Deep Learning und wird häufig in der Textverarbeitung, Spracherkennung und Bildverarbeitung verwendet. Sein Encoder und Decoder sind kein spezifisches neuronales Netzwerkmodell, und unterschiedliche Modelle werden auf unterschiedliche Aufgaben angewendet. Beispielsweise wird das RNN-Modell häufig in der Textverarbeitung und das CNN-Modell im Allgemeinen in der Bildverarbeitung verwendet.

Das Encoder-Decoder-Framework mit RNN als Encoder und Decoder wird auch als asynchrones Sequenz-zu-Sequenz-Modell bezeichnet, nämlich als Seq2Seq-Modell .

Das Folgende ist das RNN-Encoder-Decoder-Framework ohne Aufmerksamkeitsmechanismus:
Fügen Sie hier eine Bildbeschreibung ein
Nehmen Sie das Seq2Seq-Modell als Beispiel, um das Modell ohne Aufmerksamkeitsmechanismus und das Modell mit Aufmerksamkeitsmechanismus zu vergleichen.

(1) RNN-Encoder-Decoder ohne Aufmerksamkeitsmechanismus

Bei der Verarbeitung von Sequenzdaten kann das RNN Encoder-Decoder-Framework ohne Aufmerksamkeitsmechanismus zunächst den Encoder verwenden, um die Sequenz XX variabler Länge zu konvertierenX wird in einen Vektor fester Länge codiert, derCCC und verwenden Sie dann den Decoder, um diese Vektordarstellung in eine andere Sequenz yyvariabler Längey , die EingabesequenzXXX und die AusgabesequenzyyDie Länge von y kann unterschiedlich sein.
Der Artikel „Learning Phrase Representations Using RNN Encoder-Decoder for Statiscal Machine Translation“ schlägt eine RNN-Encoder-Decoder-Struktur vor, wie in der folgenden Abbildung dargestellt. Darüber hinaus wurde in diesem Artikel zunächst die GRU vorgeschlagen, eine häufig verwendete LSTM-Variantenstruktur.

Fügen Sie hier eine Bildbeschreibung ein
Verwenden Sie diese Struktur in der Textverarbeitung bei gegebener Eingabesequenz X = [ x 1 , x 2 , . . . , x N ] X=[x_1,x_2,...,x_N]X=[ x1,X2,... ,XN] , bei dem es sich um einen Satz handelt, der aus Wortsequenzen besteht, ist ein solcher Codierungs-Decodierungsprozess gleichbedeutend mit dem Finden einer anderen Sequenz variabler Längey = [ y 1 , y 2 , . . . , y T ] y=[y_1,y_2 ,. ..,y_T]j=[ j1,j2,... ,jT] bedingte Wahrscheinlichkeitsverteilung:p ( y ) = p ( y 1 , y 2 , . . . , y T ∣ x 1 , x 2 , . . . , x N ) p(y)=p(y_1,y_2, . ..,y_T|x_1,x_2,...,x_N)p ( und )=p ( und1,j2,... ,jTx1,X2,... ,XN) . Nach der Dekodierung kann diese bedingte Wahrscheinlichkeitsverteilung in eine multiplikative Form umgewandelt werden:p ( y ) = ∏ t = 1 T p ( yt ∣ { y 1 , . . . , yt − 1 } , c ) p(y)=\ prod_{t=1}^Tp(y_t|\lbrace{y_1,...,y_{t-1}}\rbrace,c)p ( und )=t = 1Tp ( undt{ y1,... ,jt 1} ,c )
Nachdem wir also den Darstellungsvektorccc und alle zuvor vorhergesagten Wörter( y 1 , y 2 , . . . , yt − 1 ) (y_1,y_2,...,y_{t-1})( J1,j2,... ,jt 1) kann dieses Modell zur Vorhersage destttht Worteyt y_tjt, das heißt die bedingte Wahrscheinlichkeit p ( yt ∣ { y 1 , . . . , yt − 1 } , c ) p(y_t|\lbrace{y_1,...,y_{t-1}}\rbrace, C)p ( undt{ y1,... ,jt 1} ,c )

Im Vergleich zu Abbildung 1 oben berechnen wir die bedingte Wahrscheinlichkeit in drei Schritten :
Schritt 1: Geben Sie die Eingabesequenz XX einDieElemente inHt, und setzen Sie dann alle verborgenen Zustände [ h 1 , h 2 , . . . , h T ] [h_1,h_2,...,h_T][ h1,H2,... ,HT] werden in einen semantischen Darstellungsvektorccc
ht = f 1 ( xt , ht − 1 ) c = q ( { h 1 , h 2 , . . . h T } ) h_t=f_1(x_t,h_{t-1})\quad\quad\quad c=q(\lbrace h_1,h_2,...h_T\rbrace)Ht=F1( xt,Ht 1)C=q ({ h1,H2,... hT})

Schritt 2: Das RNN-Netzwerk des Decoders jeden Moment ttt gibt ein vorhergesagtesyt y_tjt. Gemäß dem semantischen Darstellungsvektor ccc , yt − 1 y_{t-1}im letzten Moment vorhergesagtjt 1Und der verborgene Zustand des Decoders st − 1 s_{t-1}St 1, berechnen Sie die aktuelle Zeit ttDer verborgene Zustand von t st = f 2 ( yt − 1 , st − 1 , c ) s_t=f_2(y_{t-1},s_{t-1},c)St=F2( Jt 1,St 1,c )
Schritt 3: dargestellt durch den semantischen Vektor ccc , das vorhergesagte Wortyt − 1 y_{t-1}jt 1und versteckter Zustand st s_t im DecoderSt, sagen Sie das ttth voraust Worteyt y_tjt, das heißt, die folgende bedingte Wahrscheinlichkeit zu finden:
p ( yt ∣ { y 1 , . . . , yt − 1 } , c ) = g ( yt − 1 , st , c ) p(y_t|\lbrace{y_1,. . .,y_{t-1}}\rbrace,c)=g(y_{t-1},s_t,c)p ( undt{ y1,... ,jt 1} ,c )=g ( yt 1,St,c )

Es ist ersichtlich, dass bei der Generierung jedes Wortes des Zielsatzes der semantische Vektor cc verwendet wirdc ist dasselbe, was bedeutet, dassein bestimmtes Wort yt y_t vorhergesagt wirdjtWenn ein eingegebenes Wort die gleiche Bedeutung hat , wird die Aufmerksamkeit zerstreut . Das heißt, wenn jedes Wort generiert wird, werden [ c 1 , c 2 , ... c T ] [c_1, c_2, ... c_T] nicht generiert[ c1,C2,... cT] solche mehreren unterschiedlichen semantischen Darstellungen, die jedem Ausgabewort entsprechen.

(2) RNN-Encoder-Decoder mit Aufmerksamkeitsmechanismus

Basierend auf dem oben genannten Artikel schlägt der Artikel „Neural Machine Translation by Jointly Learning to Align and Translate“ eine neue Struktur eines neuronalen Netzwerkübersetzungsmodells vor, das heißt, dem RNN Encoder-Decoder-Framework wird ein Aufmerksamkeitsmechanismus hinzugefügt. , der Encoder in diesem Papier ist eine bidirektionale GRU, und der Decoder verwendet auch ein RNN-Netzwerk, um Sätze zu generieren.
Verwenden Sie dieses Modell für die maschinelle Übersetzung und geben Sie dann einen Satz X = [ x 1 , x 2 , . . . , x N ] X=[x_1,x_2,...,x_N] einX=[ x1,X2,... ,XN] , nach der Codierungs-Decodierungsoperation einen Zielsatz in einer anderen Sprache generiereny = [ y 1 , y 2 , . . . , y T ] y=[y_1,y_2,...,y_T]j=[ j1,j2,... ,jT] , das heißt, um die bedingte Wahrscheinlichkeit jedes möglichen Wortes für die Suche nach dem wahrscheinlichsten Wort zu berechnen, lautet die Formel wie folgt:
p ( yi ∣ y 1 , . . . yi − 1 , x ) = g ( yi − 1 , si , ci ) p(y_i| y_1,...y_{i-1},x)=g(y_{i-1},s_i,c_i)p ( undichy1,... ji 1,x )=g ( yi 1,Sich,Cich)

tt generierenDas Prozessdiagramm von t Wörtern lautet wie folgt:
Fügen Sie hier eine Bildbeschreibung ein
Im Vergleich zum RNN Encoder-Decoder-Framework ohne Aufmerksamkeitsmechanismus, einerseits vonyi y_ijichAus der Berechnungsformel für die bedingte Wahrscheinlichkeit ergibt sich: g ( ⋅ ) g(·)g ( ) Der semantische Darstellungsvektor in dieser nichtlinearen Funktion istdie Ausgabe yi y_ijichDie Veränderung von ci c_iCich, anstelle der Konstante ccc ; Andererseits generiert jedes Wort aus der obigen Abbildungyt y_tjt, ist es notwendig , die ursprüngliche Satzfolge XX zu verwendenX und andere Informationen berechnen einen semantischen Darstellungsvektorci c_iCich. Daher liegt der Schlüssel zum RNN-Encoder-Decoder-Framework mit dem Aufmerksamkeitsmechanismus darin, dass der semantische Darstellungsvektor cc fest istc wird durch eine semantische Darstellung ci c_i, die sich entsprechend dem aktuell generierten Wort ständig ändertCich

Im Vergleich zur obigen Abbildung berechnen wir das generierte Wort yi y_i in vier SchrittenjichDie bedingte Wahrscheinlichkeit von :
Schritt1 : gegeben die ursprüngliche Eingabesequenz (d. h. ein Satz) X = [ x 1 , x 2 , . . . , x N ] X=[x_1,x_2,...,x_N]X=[ x1,X2,... ,XN] , geben Sie die Wörter einzeln in das RNN-Netzwerk des Encoders ein undberechnen Sie den verborgenen Zustand ht h_t jeder EingabedatenHt, der hier verwendete Encoder ist ein bidirektionales RNN, daher ist es notwendig, die verborgenen Zustände der Vorwärtszeitschleifenschicht bzw. der Rückwärtszeitschleifenschicht zu berechnen und dann alle verborgenen Zustände zusammenzufügen: ht ( 1 ) = f ( U ( 1 ) ht
− 1 ( 1 ) + W ( 1 ) xt + b ( 1 ) ) ht ( 2 ) = f ( U ( 2 ) ht + 1 ( 2 ) + W ( 2 ) xt + b ( 2 ) ) ht = ht ( 1 ) ⊕ ht ( 2 ) h_t^{(1)}=f(U^{(1)}h_{t-1}^{(1)}+W^{(1)}x_t+ b^{(1 )})\quad\quad\quad\quad h_t^{(2)}=f(U^{(2)}h_{t+1}^{(2)}+W^{( 2)}x_t+ b^{(2)})\quad\quad\quad\quad h_t=h_t^{(1)}⊕h_t^{(2)}HT( 1 )=f ( U( 1 ) Stdt 1( 1 )+W( 1 ) xt+B( 1 ) )HT( 2 )=f ( U( 2 ) Stdt + 1( 2 )+W( 2 ) xt+B( 2 ) )Ht=HT( 1 )HT( 2 )

Schritt 2 : Im RNN-Netzwerk des Decoders das erste ttZum Zeitpunkt t gemäß dem bekannten semantischen Darstellungsvektorct c_tCt, yt − 1 y_{t-1} im letzten Moment vorhergesagtjt 1, der versteckte Zustand st − 1 s_{t-1} im EncoderSt 1, berechne den verborgenen Zustand im aktuellen Moment st = f 2 ( yt − 1 , st − 1 , ct ) s_t=f_2(y_{t-1},s_{t-1},c_t)St=F2( Jt 1,St 1,Ct)  (ct c_tCtWas ist der Wert? )
Schritt 3 : ct c_t findenCt, müssen zuerst st − 1 s_{t-1} kennenSt 1
eij = a ( si − 1 , hj ) α ij = exp ( eij ) ∑ k = 1 K exp ( eik ) ci = ∑ j = 1 T x α ijhj e_{ij}=a(s_{i-1} ,h_j)\quad\quad\quad\quad α_{ij}=\frac{exp(e_{ij})}{\sum_{k=1}^Kexp(e_{ik})}\quad\quad\quad \quad c_i=\sum_{j=1}^{T_x}α_{ij}h_jeij=ein ( si 1,Hj)Aij=k = 1Ke x p ( eich)e x p ( eij)Cich=j = 1TxAijHj
Hier eij e_{ij}eijDas heißt, es gibt keinen normalisierten Aufmerksamkeitswert . a ( ⋅ ) a(·)ein ( ) Diese nichtlineare Funktion wird als Ausrichtungsmodell bezeichnet. Ihre Aufgabe besteht darin, jedes Wort xj x_j in den EncoderXjDer entsprechende verborgene Zustand hj h_jHjund generieren Sie das Wort yi y_i im DecoderjichDer verborgene Zustand des vorherigen Wortes si − 1 s_{i-1}Si 1Zum Vergleich: Berechnen Sie jedes Eingabewort xj x_jXjund generieren Sie das Wort yi y_ijichGrad der Übereinstimmung zwischen ihnen. Je höher der Grad der Übereinstimmung, desto höher ist die Aufmerksamkeitsbewertung und dann das Wort yi y_ijichWir müssen dem Eingabewort mehr Aufmerksamkeit schenken .
Holen Sie sich den Aufmerksamkeitswert eij e_{ij}eijVerwenden Sie anschließend die Softmax-Funktion zur Normalisierung, um die Aufmerksamkeitswahrscheinlichkeitsverteilung σ ij σ_{ij} zu erhalten.Pij. Diese Aufmerksamkeitsverteilung dient als jedes Eingabewort xj x_jXjDas Gewicht ist der Grad der Aufmerksamkeit, der verborgene Zustand hj h_j entspricht jedem eingegebenen WortHjFühren Sie eine gewichtete Summierung durch, um jedes generierte Wort yi y_i zu erhaltenjichDer entsprechende semantische Darstellungsvektor ci c_iCich, das ist der Aufmerksamkeitswert .
Schritt 4 : Unser Ziel ist es nicht, den Aufmerksamkeitswert zu finden, sondern das generierte Wort yi y_i zu findenjichBedingte Wahrscheinlichkeit von : p ( yt ∣ { y 1 , . . . , yt − 1 } , c ) = g ( yt − 1 , st , c ) p(y_t|\lbrace{y_1,...,y_{t -1}}\rbrace,c)=g(y_{t-1},s_t,c)p ( undt{ y1,... ,jt 1} ,c )=g ( yt 1,St,c )


TEIL4 Selbstaufmerksamkeitsmodell

(1) Beliebte Erklärung

Vergleichen wir es mit dem Soft Attention Encoder-Decoder-Modell, um uns mit dem Self-Attention-Modell vertraut zu machen.

Im Soft-Attention-Encoder-Decoder-Modell , genauer gesagt im maschinellen Übersetzungsmodell, sind der Inhalt und die Länge der Eingabesequenz und der Ausgabesequenz unterschiedlich, und der Aufmerksamkeitsmechanismus findet zwischen dem Encoder und dem Decoder statt Es tritt zwischen der eingegebenen ursprünglichen Satzsequenz und der generierten Ausgabesequenz auf. Zu diesem Zeitpunkt kommt die Abfrage vom Ziel und der Schlüssel und der Wert kommen von der Quelle . Der Selbstaufmerksamkeitsmechanismus im Selbstaufmerksamkeitsmodell erfolgt innerhalb der Eingabesequenz oder innerhalb der Ausgabesequenz. Im Sonderfall Ziel = Quelle kann er auch als Aufmerksamkeitsberechnungsmechanismus verstanden werden. Zu diesem Zeitpunkt sind Abfrage, Schlüssel und Wert vorhanden kommen vonQuelle oder Ziel , die die Verbindung zwischen Wörtern extrahieren kann, die im selben Satz weit voneinander entfernt sind, wie z. B. syntaktische Merkmale (Phrasenstruktur mit einem bestimmten Abstand) .

Wenn es sich um ein reines RNN-Netzwerk handelt, werden der verborgene Zustand und die Ausgabe Schritt für Schritt für die Eingabesequenz berechnet. Bei weit entfernten, aber voneinander abhängigen Merkmalen ist es weniger wahrscheinlich, dass das Netzwerk die Verbindung zwischen den beiden erfasst, während es sich innerhalb der Sequenz befindet Nach Einführung des Selbstaufmerksamkeitsmechanismus können zwei beliebige Wörter im Satz durch Berechnung direkt verbunden werden, wodurch es einfacher wird, voneinander abhängige Merkmale zu erfassen.

(2) Theoretische Analyse

Nachdem wir ein allgemeines Verständnis der Selbstaufmerksamkeit erlangt haben, verwenden wir die Formel, um das Selbstaufmerksamkeitsmodell zu definieren.
Das Selbstaufmerksamkeitsmodell befindet sich zwischen der Eingabe und der Ausgabe desselben Schichtnetzwerks (nicht der endgültigen Ausgabe des Modells) und verwendet den Aufmerksamkeitsmechanismus, um dynamisch die Gewichte verschiedener Verbindungen zu generieren und das Ausgabemodell des Schichtnetzwerks zu erhalten.
Wie bereits erwähnt, kann das Selbstaufmerksamkeitsmodell Fernabhängigkeiten innerhalb der Sequenz herstellen. Tatsächlich kann dies auch über ein vollständig verbundenes neuronales Netzwerk erfolgen, das Problem besteht jedoch darin, dass die Anzahl der Verbindungskanten des vollständig verbundenen Netzwerks gleich ist fest, sodass variable Längen nicht verarbeitet werden können. Die Sequenz von. Das Selbstaufmerksamkeitsmodell kann die Gewichte verschiedener Verbindungen dynamisch generieren, wie viele Gewichte generiert werden und die Größe der Gewichte sind alle variabel. Wenn eine längere Sequenz eingegeben wird, müssen nur mehr Verbindungskanten generiert werden. Wie in der Abbildung unten gezeigt, wird die gepunktete Verbindungskante dynamisch geändert.

Fügen Sie hier eine Bildbeschreibung ein
Verwenden Sie eine mathematische Formel, um den Selbstaufmerksamkeitsmechanismus auszudrücken: Angenommen, die Eingabesequenz in einer neuronalen Schicht ist X = [ x 1 , x 2 , . . . , x N ] X=[x_1,x_2,...,x_N]X=[ x1,X2,... ,XN] ist die Ausgabesequenz H = [ h 1 , h 2 , . . . , h N ] H=[h_1, h_2, ..., h_N] derselbenLängeH=[ h1,H2,... ,HN] Geben Sie zunächst die EingabeXXX wird durch lineare Transformation in drei verschiedene Räume projiziert (die Bedeutung der linearen Projektion besteht hier darin, drei verschiedene Matrizen zu lernen), und es werden drei Sätze von Vektorsequenzen erhalten: Q = WQX
∈ R d 3 × NK = WKX ∈ R d 3 × NV = WVX ∈ R d 3 × NQ=W_QX∈R^{d_3×N}\quad\quad\quad\quad K=W_KX∈R^{d_3×N}\quad\quad\quad\quad V=W_VX∈ R^{d_3×N}Q=WFXRD3× NK=WKXRD3× NV=WVXRD3× N

Unter ihnen QQQ ,KKK ,VVV ist die Abfragevektorsequenz[ q 1 , . . . , q N ] [q_1,...,q_N][ q1,... ,QN] , Schlüsselvektorsequenz[ k 1 , . . . , k N ] [k_1,...,k_N][ k1,... ,kN] , Wertvektorfolge[ v 1 , . . . , v N ] [v_1,...,v_N][ v1,... ,vN] ,WQ W_QWFWK W_KWKWV W_VWVsind jeweils lernbare Parametermatrizen.
Ausgabevektor hi h_iHichBeispiel:
hi = Attention ( ( K , V ) , qi ) = ∑ j = 1 N α ijvj = ∑ j = 1 N softmax ( s ( kj , qi ) vj ) h_i=attention((K,V),q_i )=\sum_{j=1}^Nα_{ij}v_j=\sum_{j=1}^Nsoftmax(s(k_j,q_i)v_j)Hich=a tt e n t i o n (( K ,V ) ,Qich)=j = 1NAijvj=j = 1Nso f t max ( s ( k _j,Qich) vj)

wobei i , j ∈ [ 1 , N ] i,j∈[1,N]ich ,J[ 1 ,N ] ist die Position des Ausgangsvektors und der Eingangsvektorsequenz sowie das Verbindungsgewichtα ij αijα ij wird dynamisch durch den Aufmerksamkeitsmechanismus generiert.
Das Gesamtdiagramm sieht wie folgt aus:
Fügen Sie hier eine Bildbeschreibung ein
Nehmen Sie in diesem Bild an, dass dreiXXX -Sequenz (N=3), jeweils mit der LängeD x D_xDxDann werden zu diesem Zeitpunkt drei Abfragevektoren erhalten, und jeder Abfragevektor erhält ein entsprechendes Ergebnis zum Zusammensetzen, ohne die Eingabe XX zu ändernX entspricht der Dimension von N, aber die LängeD x D_xDxgeändert zu D v D_vDv(hier D v D_vDvEs kann beliebig eingestellt werden, solange es zu diesem Zeitpunkt von XX aus bedient wirdX zum WertVVDie Matrix W v W_ventspricht der Projektionsoperation von VWvdarauf). Das heißt, durch die obigen Operationen kann die Sequenz variabler Länge D x D_x seinDxGenerieren Sie dynamisch geeignete Gewichte und konvertieren Sie sie in eine feste Länge D v D_vDv

Der Selbstaufmerksamkeitsmechanismus kann als Schicht eines neuronalen Netzwerks verwendet werden oder als Ersatz für eine Faltungsschicht oder eine wiederkehrende Schicht verwendet werden oder er kann mit einer Faltungsschicht oder einer wiederkehrenden Schicht gekreuzt gestapelt werden.

In der folgenden Abbildung stellen sowohl die Eingabesequenz als auch die Ausgabesequenz denselben Satz dar. Durch das dynamisch durch den Selbstaufmerksamkeitsmechanismus erzeugte Gewicht kann festgestellt werden, dass das Gewicht des Machens und Erschwerens relativ groß ist (die Farbe ist). dunkel), sodass die drei Wörter erfasst werden. Die Verbindungen, die zwischen ihnen bestehen (um eine Phrase zu bilden). Offensichtlich ist es nach der Einführung der Selbstaufmerksamkeit einfacher, die über große Entfernungen voneinander abhängigen Merkmale im Satz zu erfassen, denn wenn es sich um RNN oder LSTM handelt, müssen sie nacheinander berechnet werden. Für die über große Entfernungen voneinander abhängigen Merkmale sind mehrere erforderlich Zeitschritte. Es bedarf einer Informationsakkumulation, um die beiden zu verbinden, und je weiter die Entfernung, desto unwahrscheinlicher ist es, dass sie effektiv erfasst wird.

Während des Berechnungsprozesses stellt Self Attention jedoch durch einen Berechnungsschritt eine direkte Verbindung zwischen zwei beliebigen Wörtern im Satz her, sodass der Abstand zwischen fernabhängigen Merkmalen erheblich verkürzt wird, was der effektiven Nutzung dieser Merkmale förderlich ist . Darüber hinaus trägt die Selbstaufmerksamkeit auch direkt dazu bei, die Parallelität der Berechnungen zu erhöhen, was sich hauptsächlich im Matrixberechnungsprozess der Selbstaufmerksamkeit widerspiegelt . Dies ist der Hauptgrund dafür, dass Selbstaufmerksamkeit nach und nach weit verbreitet ist.

Fügen Sie hier eine Bildbeschreibung ein


TEIL5 Mehrköpfige Aufmerksamkeit

Die Idee der Multi-Head-Aufmerksamkeit ist relativ einfach, das heißt, es gibt mehrere Abfragevektoren Q = [ q 1 , . . . , q M ] Q=[q_1,...,q_M]Q=[ q1,... ,QM] , um parallel nach den gewünschten Informationen aus der Eingabe zu suchen. Das intuitive Verständnis besteht darin, dass zur Lösung des Problems viele verschiedene Aspekte von Informationen erforderlich sind und jeder Abfragevektorqi q_i istQichBei den Untersuchungen handelt es sich jeweils um unterschiedliche Aspekte. Zu diesem Zeitpunkt werden unterschiedliche Qi q_i verwendetQichBewerten Sie die Wichtigkeit der Eingabeinformationen aus verschiedenen Blickwinkeln und aggregieren Sie sie dann bis zu einem gewissen Grad.
Das heißt, der Prozess der Aufmerksamkeitsberechnung h-mal zu wiederholen und dann die Ergebnisse zusammenzufügen. Am Beispiel der üblichen skalierten Skalarprodukt-Aufmerksamkeitsberechnung ist sie grob in zwei Schritte unterteilt: Schritt 1: Q, K und V durch
abbilden die Parametermatrix, und dann achten Sie darauf, diesen Vorgang h-mal zu wiederholen,
Schritt 2: Zusammenfügen der Ausgabe mehrerer Köpfe
M ulti Head ( ( K , V ) , q ) = Concat ( ( ( K , V ) , q 1 ) , . . . , ( ( K , V ) , q M ) ) MultiHead((K,V),q)=Concat(((K,V),q_1),...,((K,V),q_M) )M u lt i He a d (( K ,V ) ,q )=C o n c a t ((( K ,V ) ,Q1) ,... ,(( K ,V ) ,QM))

Der sogenannte Multi-Head besteht darin, dasselbe mehrmals zu tun (Parameter werden nicht gemeinsam genutzt) und dann die Ergebnisse zusammenzufügen. Sehen wir uns die Selbstaufmerksamkeit im vorherigen Abschnitt noch einmal an: Zum Beispiel das entsprechende XX zu diesem ZeitpunktDie Dimension von X istD x D_xDx, insgesamt N, jedes Mal durch eine Matrix WQ W_QWFBei der Projektion in eine Abfragematrix können N Abfragevektoren gleichzeitig erhalten werden, und diese N Abfragevektoren können sicherstellen, dass die nachfolgenden Ausgabeergebnisse insgesamt immer noch N sind (nur eine andere Dimension wird durch die Dimension D v D_v des Werts bestimmt). VektorDvEntscheiden). Berücksichtigen Sie die Aufmerksamkeit mehrerer Köpfe, das heißt, zu diesem Zeitpunkt überlegen wir, ob wir mehrere Abfragematrizen erhalten können, um XX aus verschiedenen Blickwinkeln zu erfassenDer wichtige Fall von X , also die Verwendung mehrerer MatrizenWQ i W_{Q_i}WQichProjizieren Sie es auf m verschiedene Räume, um m Abfragematrizen zu erhalten, insgesamt m ∗ N m*NMN Vektoren, berechnen Sie dann die Ausgabe separat und fügen Sie sie schließlich mithilfe der Vektorspleißmethode zusammen, um das Endergebnis zu erhalten.

Single-Head Attention VS Multi-Head Attention vergleicht den Berechnungsprozess des Multi-Head-Aufmerksamkeitsmechanismus und den Berechnungsprozess des Multi-Head-Aufmerksamkeitsmechanismus.
Fügen Sie hier eine Bildbeschreibung ein


Anwendung von TEIL6 Aufmerksamkeitsmechanismus (im Bereich Computer Vision)

Kann der Aufmerksamkeitsmechanismus Computer Vision unterstützen? Aufmerksamkeit selbst ist ein Gewicht, und Gewichtung bedeutet, dass unterschiedliche Informationen zusammengeführt werden können. CNN selbst weist einen Fehler auf: Jede Operation kann sich nur auf Informationen in der Nähe des Faltungskerns (lokale Informationen) konzentrieren und entfernte Informationen (nicht lokale Informationen) nicht zusammenführen. Und Aufmerksamkeit kann auch dabei helfen, entfernte Informationen zu gewichten und zu integrieren, indem sie eine unterstützende Rolle spielt.
Fügen Sie hier eine Bildbeschreibung ein
Wie in der Abbildung oben gezeigt, ist die obere linke Seite jedes Beispiels das ursprüngliche Eingabebild, der untere Satz ist der vom künstlichen Intelligenzsystem automatisch generierte Beschreibungssatz und die obere rechte Abbildung zeigt das entsprechende Bild, wenn das KI-System aktiviert ist Erzeugt ein horizontales Wort im Satz Focused location area in . Wenn beispielsweise das Wort Hund ausgegeben wird, achtet das KI-System stärker auf die Position, die dem Welpen im Bild entspricht.

In verwandten Anwendungen des Computer Vision kann es grob in zwei Typen unterteilt werden :
(1) Lerngewichtsverteilung: Verschiedene Teile der Eingabedaten oder Feature-Maps entsprechen unterschiedlichen Konzentrationsgraden

  • Diese Gewichtung kann darin bestehen, alle Komponenten als Gewichte beizubehalten (d. h. weiche Aufmerksamkeit), oder sie kann auch darin bestehen, einige Komponenten mit einer bestimmten Stichprobenstrategie in der Verteilung auszuwählen (d. h. harte Aufmerksamkeit). Zu diesem Zeitpunkt wird häufig RL verwendet .
  • Diese Gewichtung kann auf das Originalbild angewendet werden, d. h. „Recurrent Model of Visual Attention“ (RAM) und „Multiple Object Recognition with Visual Attention“ (DRAM); sie kann auch auf die Feature-Map angewendet werden, beispielsweise auf viele nachfolgende Artikel (z. B. Bildunterschrift „Show, Attend and Tell: Neural Image Caption Generation with Visual Attention“ in .
  • Diese Gewichtung kann sich auf die räumliche Skala auswirken und verschiedene räumliche Regionen gewichten; sie kann auch auf die Kanalskala wirken und verschiedene Kanalmerkmale gewichten; sogar jedes Element auf der Merkmalskarte gewichten.
  • Diese Gewichtung kann auch auf historische Merkmale zu unterschiedlichen Zeitpunkten angewendet werden, beispielsweise auf maschinelle Übersetzung.

(2) Aufgabenfokus: Durch Zerlegen von Aufgaben, Entwerfen verschiedener Netzwerkstrukturen (oder Zweige), um sich auf verschiedene Unteraufgaben zu konzentrieren, und Neuverteilen der Lernfähigkeit des Netzwerks, wodurch die Schwierigkeit der ursprünglichen Aufgabe verringert und das Trainieren des Netzwerks erleichtert wird.


TEIL7 Kreuzaufmerksamkeit

Queraufmerksamkeit ändert nur die Eingabe der Selbstaufmerksamkeit. Die Eingabe der Queraufmerksamkeit kommt aus verschiedenen Sequenzen, und die Eingabe der Selbstaufmerksamkeit kommt aus derselben Sequenz, was die sogenannte unterschiedliche Eingabe ist. Konkret handelt es sich bei der Selbstaufmerksamkeitseingabe um eine einzelne Sequenz von Einbettungen . Cross-Attention kombiniert asymmetrisch zwei Einbettungssequenzen derselben Dimension, wobei eine Sequenz als Abfrage-Q-Eingabe und die andere Sequenz als Schlüssel-K- und Wert-V-Eingabe verwendet wird . Natürlich gibt es Einzelfälle, in denen SelfDoc eine Folge von Abfragen und Werten und eine andere Folge von Schlüsseln verwendet. Insgesamt besteht QKV aus zwei Sequenzen, nicht aus einer einzigen.

Es wird schließlich im Decoder von Transformer verwendet. Das Decodermodul des Transformers ist auf der rechten Seite der folgenden Abbildung dargestellt. Es verfügt über drei Eingänge: Eingang1, Eingang2 und Eingang3. Der Decoder gibt zunächst rekursiv Eingabe1 ein : die Ausgabe des Decoders zum vergangenen Zeitpunkt und Eingabe2: Die Positionscodierung, die die Positionsinformationen darstellt wird hinzugefügt, und nach der maskierten Mehrkopfaufmerksamkeit erfolgt die Queraufmerksamkeit mit Eingabe3: der Ausgabe des Encoders . Daher wird Queraufmerksamkeit normalerweise als Decodermodul verwendet und zusammen mit Selbstaufmerksamkeit als Encoder verwendet.

Fügen Sie hier eine Bildbeschreibung ein
Die Abfrageeingabe von Cross Attention kommt von der Ausgabe des Encoders (Selbstaufmerksamkeit), während der Schlüssel und der Wert von der anfänglichen Eingabe, also der Eingabe des Encoders, stammen. Das heißt, die Ausgabe des Encoders wird als Darstellung des vorhergesagten Satzes verwendet und anschließend zur Abfrage der Ähnlichkeit mit jedem Wort im ursprünglichen Eingabesatz verwendet. Was Cross Attention tut, besteht darin, Schlüssel-/Wertinformationen zur Darstellung von Abfrageinformationen zu verwenden oder Schlüssel-/Wertinformationen in Abfrageinformationen einzuführen (da es eine Restschicht gibt, die zu den ursprünglichen Abfrageinformationen hinzugefügt wird), und was erhalten wird, ist eine Abfrage für Schlüsselrelevanz (Abfrage zu Schlüssel, z. B. Fahrzeug zu Fahrspuren, umgekehrt).

Cross Attention wird im Decoder häufig verwendet. Nachdem der Encoder Self Attention verwendet hat, verwendet er im Allgemeinen zuerst die Cross Attention-Netzwerkschicht, um den Aufmerksamkeitswert im Decoder zu erhalten, und verbindet dann eine MLP-Schicht oder LSTM-Schicht, um das Ziel vorherzusagen Besser als die direkte Verwendung von MLP oder LSTM als Decoder. Der Effekt wird viel besser sein. Cross Attention kann auch Informationen aus jeder vorherigen Schicht der Netzwerkschicht wieder einführen, ähnlich der Restfunktion, aber flexibler.

Darüber hinaus können die Abfrage und der Schlüssel der Queraufmerksamkeit auch aus zwei verschiedenen modalen Eingaben stammen, beispielsweise ist eine ein Bild und die andere der entsprechende Text, der verwendet wird, um die Korrelation zwischen den beiden, also dem Bild, zu ermitteln -Text-Aufgabe, die auch eine der ursprünglichen Absichten dieses Moduls ist.


Verweise:

Der Aufmerksamkeitsmechanismus beim Deep Learning
liest den Aufmerksamkeitsmechanismus
GAT, Selbstaufmerksamkeit, Queraufmerksamkeitsvergleich und die Pytorch-Anwendung in der automatischen Fahrbahnvorhersageaufgabe.
Abbildung: Selbstaufmerksamkeit,
detaillierte Selbstaufmerksamkeit und Mehrkopfaufmerksamkeit

Ich denke du magst

Origin blog.csdn.net/weixin_44022810/article/details/127477454
Empfohlen
Rangfolge