Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Rekurrente Neurale Netværk (RNN'er) og Sekvensgenerering | Teoretiske Grundlag
Generativ AI

bookRekurrente Neurale Netværk (RNN'er) og Sekvensgenerering

Introduktion til Recurrent Neural Networks (RNNs)

Recurrent Neural Networks (RNNs) er en klasse af neurale netværk, der er specielt designet til at behandle sekventielle data. I modsætning til traditionelle feedforward-netværk har RNNs forbindelser, der tillader information at vedvare på tværs af tidsskridt, hvilket gør dem særligt nyttige til opgaver, hvor tidligere information påvirker fremtidige forudsigelser, såsom sprogmodellering, talegenkendelse og sekvensgenerering.

Sådan fungerer RNNs

Et RNN behandler sekvenser ét skridt ad gangen og opretholder en skjult tilstand, der indfanger information fra tidligere input. Ved hvert tidsskridt:

  • Netværket modtager det aktuelle input og den forrige skjulte tilstand.
  • Det beregner en ny skjult tilstand ved hjælp af en vægtet transformation efterfulgt af en ikke-lineær aktiveringsfunktion.
  • Den skjulte tilstand bruges derefter som input til næste tidsskridt og kan også anvendes til at generere en output.

Matematisk defineres et RNN som:

ht=σ(Whht1+Wxxt+b)h_t=\sigma\left( W_hh_{t-1}+W_xx_t+b \right)

hvor:

  • hth_t er den skjulte tilstand ved tid tt;
  • xtx_t er input ved tid tt;
  • WhW_h og WxW_x er vægtmatricer;
  • bb er et bias-led;
  • σ\sigma er en ikke-lineær aktiveringsfunktion (ofte tanh eller ReLU).

RNNs indfanger afhængigheder i sekventielle data, men de lider under problemer som det forsvindende gradientproblem, hvilket begrænser deres evne til at lære langtrækkende afhængigheder.

Varianter af RNN'er: LSTM'er og GRU'er

Standard RNN'er har udfordringer med langtidshukommelse på grund af problemet med forsvindende gradient. For at løse dette blev mere avancerede arkitekturer som Long Short-Term Memory (LSTM) og Gated Recurrent Units (GRU) introduceret.

Long Short-Term Memory (LSTM)

LSTM'er introducerer hukommelsesceller og portmekanismer til at kontrollere informationsflowet:

  • Forget Gate: afgør, hvilken tidligere information der skal kasseres;
  • Input Gate: bestemmer, hvilken ny information der skal gemmes i hukommelsen;
  • Output Gate: styrer, hvilken information der sendes som output.

LSTM-ligninger:

ft=σ(Wfxt+Ufht1+bf)f_t=\sigma(W_f x_t + U_f h_{t-1} + b_f) it=σ(Wixt+Uiht1+bj)i_t = \sigma (W_i x_t + U_i h_{t-1} + b_j) ot=σ(Woxt+Uoht1+bo)o_t = \sigma (W_o x_t + U_o h_{t-1} + b_o) ct=ftct1+ittanh(Wcxt+Ucht1+bc)c_t = f_t \odot c_{t-1} + i_t \odot \tanh (W_c x_t + U_c h_{t-1} + b_c)

hvor:

  • ftf_t, iti_t og oto_t er henholdsvis forget-, input- og output-gates;
  • ctc_t er hukommelsescellen, der bevarer langtidshukommelse;
  • σ\sigma repræsenterer sigmoid-funktionen, som giver værdier mellem 0 og 1 og muliggør selektiv informationsstrøm;
  • tanh\tanh er den hyperbolske tangens-funktion, som holder værdier mellem -1 og 1 for at normalisere opdateringen.

LSTM'er bevarer effektivt langtidshukommelse og er derfor særligt velegnede til sekventielle opgaver såsom talegenkendelse og tekstgenerering.

Gated Recurrent Units (GRU'er)

GRU'er forenkler LSTM'er ved at reducere antallet af gates, samtidig med at de opretholder stærk ydeevne. De anvender:

  • Opdateringsgate: styrer hvor meget af den tidligere information, der skal bevares;
  • Nulstillingsgate: bestemmer hvor meget af den tidligere information, der skal ignoreres.

GRU-ligninger:

zt=σ(Wzxt+Uzht1+bz)z_t = \sigma (W_z x_t + U_z h_{t-1} + b_z) rt=σ(Wrxt+Urht1+br)r_t = \sigma(W_r x_t + U_r h_{t-1} + b_r) ht=(1zt)ht1+zttanh(Whxt+Uc(rtht1)+bh)h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tanh(W_h x_t + U_c (r_t \odot h_{t-1}) + b_h)

hvor:

  • ztz_t (opdateringsport) balancerer den gamle skjulte tilstand og den nye information;
  • rtr_t (nulstillingsport) hjælper med at kassere irrelevant tidligere information;
  • hth_t er den opdaterede skjulte tilstand ved tid tt;
  • WW og UU er vægtmatricer, og bb er bias-termen;
  • \odot repræsenterer elementvis multiplikation.

GRU'er kræver færre parametre end LSTM'er og er beregningsmæssigt effektive, samtidig med at de håndterer langtidshukommelse effektivt.

Sekvensgenerering med RNN'er

RNN'er anvendes bredt til sekvensgenerering, hvor netværket forudsiger det næste element i en sekvens baseret på tidligere kontekst. Almindelige eksempler omfatter:

  • Tekstgenerering: forudsigelse af det næste ord i en sætning;
  • Musikkomposition: generering af melodier baseret på en given stil;
  • Billedtekstning: generering af beskrivende tekst til billeder.

Eksempel: Tekstgenerering med RNN'er

  1. Træn et RNN på et stort tekstdatasæt;
  2. Giv et indledende ord eller en sætning som input;
  3. RNN'et forudsiger det næste ord baseret på tidligere kontekst;
  4. Det forudsagte ord føres tilbage i netværket til næste forudsigelse;
  5. Gentag denne proces for at generere en sammenhængende sekvens;

Denne teknik driver applikationer såsom chatbots, AI-drevet historiefortælling og autofuldførelsessystemer.

Anvendelser af RNN'er i Generativ AI

RNN'er anvendes i forskellige generative AI-applikationer:

  • Maskinoversættelse: brugt i tidlige modeller af Google Translate;
  • Talegenkendelse: konverterer talt sprog til tekst (f.eks. Siri, Google Assistant);
  • AI-baseret indholdsgenerering: tidlige versioner af generative AI-modeller før transformere;
  • Musik- og poesi-generering: AI-modeller som OpenAI’s MuseNet genererer kompositioner i forskellige stilarter.

Konklusion

RNN'er er essentielle til håndtering af sekventielle data, men de har udfordringer med langtidshukommelse på grund af vanishing gradient-problemet. LSTM'er og GRU'er afhjælper dette problem, hvilket gør RNN'er effektive til generative anvendelser inden for tekst, tale og musik. Dog er moderne arkitekturer som Transformers i vid udstrækning blevet foretrukket frem for RNN'er i avancerede generative AI-modeller, da de mere effektivt kan håndtere langtrækkende afhængigheder.

1. Hvordan adskiller en RNN sig fra et feedforward-neuralt netværk?

2. Hvorfor foretrækkes LSTM'er og GRU'er frem for standard RNN'er til lange sekvenser?

3. Hvilket af følgende er IKKE en almindelig anvendelse af RNN'er?

question mark

Hvordan adskiller en RNN sig fra et feedforward-neuralt netværk?

Select the correct answer

question mark

Hvorfor foretrækkes LSTM'er og GRU'er frem for standard RNN'er til lange sekvenser?

Select the correct answer

question mark

Hvilket af følgende er IKKE en almindelig anvendelse af RNN'er?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 4.76

bookRekurrente Neurale Netværk (RNN'er) og Sekvensgenerering

Stryg for at vise menuen

Introduktion til Recurrent Neural Networks (RNNs)

Recurrent Neural Networks (RNNs) er en klasse af neurale netværk, der er specielt designet til at behandle sekventielle data. I modsætning til traditionelle feedforward-netværk har RNNs forbindelser, der tillader information at vedvare på tværs af tidsskridt, hvilket gør dem særligt nyttige til opgaver, hvor tidligere information påvirker fremtidige forudsigelser, såsom sprogmodellering, talegenkendelse og sekvensgenerering.

Sådan fungerer RNNs

Et RNN behandler sekvenser ét skridt ad gangen og opretholder en skjult tilstand, der indfanger information fra tidligere input. Ved hvert tidsskridt:

  • Netværket modtager det aktuelle input og den forrige skjulte tilstand.
  • Det beregner en ny skjult tilstand ved hjælp af en vægtet transformation efterfulgt af en ikke-lineær aktiveringsfunktion.
  • Den skjulte tilstand bruges derefter som input til næste tidsskridt og kan også anvendes til at generere en output.

Matematisk defineres et RNN som:

ht=σ(Whht1+Wxxt+b)h_t=\sigma\left( W_hh_{t-1}+W_xx_t+b \right)

hvor:

  • hth_t er den skjulte tilstand ved tid tt;
  • xtx_t er input ved tid tt;
  • WhW_h og WxW_x er vægtmatricer;
  • bb er et bias-led;
  • σ\sigma er en ikke-lineær aktiveringsfunktion (ofte tanh eller ReLU).

RNNs indfanger afhængigheder i sekventielle data, men de lider under problemer som det forsvindende gradientproblem, hvilket begrænser deres evne til at lære langtrækkende afhængigheder.

Varianter af RNN'er: LSTM'er og GRU'er

Standard RNN'er har udfordringer med langtidshukommelse på grund af problemet med forsvindende gradient. For at løse dette blev mere avancerede arkitekturer som Long Short-Term Memory (LSTM) og Gated Recurrent Units (GRU) introduceret.

Long Short-Term Memory (LSTM)

LSTM'er introducerer hukommelsesceller og portmekanismer til at kontrollere informationsflowet:

  • Forget Gate: afgør, hvilken tidligere information der skal kasseres;
  • Input Gate: bestemmer, hvilken ny information der skal gemmes i hukommelsen;
  • Output Gate: styrer, hvilken information der sendes som output.

LSTM-ligninger:

ft=σ(Wfxt+Ufht1+bf)f_t=\sigma(W_f x_t + U_f h_{t-1} + b_f) it=σ(Wixt+Uiht1+bj)i_t = \sigma (W_i x_t + U_i h_{t-1} + b_j) ot=σ(Woxt+Uoht1+bo)o_t = \sigma (W_o x_t + U_o h_{t-1} + b_o) ct=ftct1+ittanh(Wcxt+Ucht1+bc)c_t = f_t \odot c_{t-1} + i_t \odot \tanh (W_c x_t + U_c h_{t-1} + b_c)

hvor:

  • ftf_t, iti_t og oto_t er henholdsvis forget-, input- og output-gates;
  • ctc_t er hukommelsescellen, der bevarer langtidshukommelse;
  • σ\sigma repræsenterer sigmoid-funktionen, som giver værdier mellem 0 og 1 og muliggør selektiv informationsstrøm;
  • tanh\tanh er den hyperbolske tangens-funktion, som holder værdier mellem -1 og 1 for at normalisere opdateringen.

LSTM'er bevarer effektivt langtidshukommelse og er derfor særligt velegnede til sekventielle opgaver såsom talegenkendelse og tekstgenerering.

Gated Recurrent Units (GRU'er)

GRU'er forenkler LSTM'er ved at reducere antallet af gates, samtidig med at de opretholder stærk ydeevne. De anvender:

  • Opdateringsgate: styrer hvor meget af den tidligere information, der skal bevares;
  • Nulstillingsgate: bestemmer hvor meget af den tidligere information, der skal ignoreres.

GRU-ligninger:

zt=σ(Wzxt+Uzht1+bz)z_t = \sigma (W_z x_t + U_z h_{t-1} + b_z) rt=σ(Wrxt+Urht1+br)r_t = \sigma(W_r x_t + U_r h_{t-1} + b_r) ht=(1zt)ht1+zttanh(Whxt+Uc(rtht1)+bh)h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tanh(W_h x_t + U_c (r_t \odot h_{t-1}) + b_h)

hvor:

  • ztz_t (opdateringsport) balancerer den gamle skjulte tilstand og den nye information;
  • rtr_t (nulstillingsport) hjælper med at kassere irrelevant tidligere information;
  • hth_t er den opdaterede skjulte tilstand ved tid tt;
  • WW og UU er vægtmatricer, og bb er bias-termen;
  • \odot repræsenterer elementvis multiplikation.

GRU'er kræver færre parametre end LSTM'er og er beregningsmæssigt effektive, samtidig med at de håndterer langtidshukommelse effektivt.

Sekvensgenerering med RNN'er

RNN'er anvendes bredt til sekvensgenerering, hvor netværket forudsiger det næste element i en sekvens baseret på tidligere kontekst. Almindelige eksempler omfatter:

  • Tekstgenerering: forudsigelse af det næste ord i en sætning;
  • Musikkomposition: generering af melodier baseret på en given stil;
  • Billedtekstning: generering af beskrivende tekst til billeder.

Eksempel: Tekstgenerering med RNN'er

  1. Træn et RNN på et stort tekstdatasæt;
  2. Giv et indledende ord eller en sætning som input;
  3. RNN'et forudsiger det næste ord baseret på tidligere kontekst;
  4. Det forudsagte ord føres tilbage i netværket til næste forudsigelse;
  5. Gentag denne proces for at generere en sammenhængende sekvens;

Denne teknik driver applikationer såsom chatbots, AI-drevet historiefortælling og autofuldførelsessystemer.

Anvendelser af RNN'er i Generativ AI

RNN'er anvendes i forskellige generative AI-applikationer:

  • Maskinoversættelse: brugt i tidlige modeller af Google Translate;
  • Talegenkendelse: konverterer talt sprog til tekst (f.eks. Siri, Google Assistant);
  • AI-baseret indholdsgenerering: tidlige versioner af generative AI-modeller før transformere;
  • Musik- og poesi-generering: AI-modeller som OpenAI’s MuseNet genererer kompositioner i forskellige stilarter.

Konklusion

RNN'er er essentielle til håndtering af sekventielle data, men de har udfordringer med langtidshukommelse på grund af vanishing gradient-problemet. LSTM'er og GRU'er afhjælper dette problem, hvilket gør RNN'er effektive til generative anvendelser inden for tekst, tale og musik. Dog er moderne arkitekturer som Transformers i vid udstrækning blevet foretrukket frem for RNN'er i avancerede generative AI-modeller, da de mere effektivt kan håndtere langtrækkende afhængigheder.

1. Hvordan adskiller en RNN sig fra et feedforward-neuralt netværk?

2. Hvorfor foretrækkes LSTM'er og GRU'er frem for standard RNN'er til lange sekvenser?

3. Hvilket af følgende er IKKE en almindelig anvendelse af RNN'er?

question mark

Hvordan adskiller en RNN sig fra et feedforward-neuralt netværk?

Select the correct answer

question mark

Hvorfor foretrækkes LSTM'er og GRU'er frem for standard RNN'er til lange sekvenser?

Select the correct answer

question mark

Hvilket af følgende er IKKE en almindelig anvendelse af RNN'er?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5
some-alt