NEURAL MASKINÖVERSÄTTNING

Relevanta dokument
Neurala nätverk och språkigenkänning. Henrik Linnarsson. Linköping University

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

Att programmera en Beethoven

SPEECH RECOGNITION USING ARTIFICIAL NEURAL NETWORKS. Linköpings Universitet 729G43 Artificiell Intelligens

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap

Linköpings universitet

ARTIFICIELLA NEURALA NÄT. MARCO KUHLMANN Institutionen för datavetenskap

Johan Karlsson Johka490. Statistical machine translation JOHAN KARLSSON

LINKÖPINGS UNIVERSITET 729G11, Artificiell Intelligens II, HT10 SMT. En fördjupning i statistiska maskinöversättningssystem

Linköpings universitet Artificiell Intelligens II 729G11 HT Maskinöversättning. med hjälp av statistik. Erik Karlsson

Statistisk Maskinöversättning eller:

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap

ANN fk. Örjan Ekeberg. Framåtkopplade Nät. återkopplade nät. Olika arkitekturer. BackPropagation through Time. Kalman-Filter tekniker

Statistisk mönsterigenkänning

Sub-symbolisk kognition & Konnektionism. Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén,

Artificiell Intelligens Lektion 7

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Vad är Artificiell Intelligens (AI) Olika typer av AI och deras användningsområden Innovation med hjälp av AI Framtiden och etiska frågeställningar

SELF- ORGANIZING MAPS

Word2Vec. Högkvalitativa vektorrepresentationer av ord tränat på stora mängder data. Innehåll LINKÖPINGS UNIVERSITET. 1. Inledning...

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Modeller och simulering av språkprocessning

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens Erik Claesson

Ansiktsigenkänning. Anna Ericsson Linköpings Universitet Linköping

Vektorer, matriser, nätverk - några elementa

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Maskinöversättning möjligheter och gränser

Maskinöversättning 2008

HKGBB0, Artificiell intelligens

Ontologier. Cassandra Svensson

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping

Lösningsförslag till övningsuppgifter, del V

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

Registerforskning Oktober 2018, Stockholm City Conference Centre. Möjligheter med Artificiell Intelligens inom registerforskningen

Korpusbaserad Maskinöversättning

Kandidatuppsats. Jämförelse mellan neurala nätverk baserad AI och state-of-the-art AI i racing spel. Simon Karlsson, Christopher Jensen

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Inlärning utan övervakning

Mekaniskt lexikon, patenterat av George Artsrouni på tidigt 1930 tal Perforerade pappersband och avläsningsnockar 1 ord per 3 sekunder

Statistisk maskinöversättning

Shakey s värld med HTNplanering

TDDB96 Projekt: Object priming med visuell stimuli

Omvärldsbevakning. Sammanfattning av Business Intelligence-kursen. Nyhetsarkiv och källork. Hämta webbnyheter. Modeller över texter

Google Assistant & WaveNet

Pre-editering och maskinöversättning. Convertus AB

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

Algoritmer och maskininlärning

1 De fyra fundamentala underrummen till en matris

Gränssnitt för FakeGranska. Lars Mattsson

Ett urval D/A- och A/D-omvandlare

Ett Neuralt Nätverk Tittar På Kläder

med hjälp av Deep Reinforcement Learning

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Projekt i språkteknologi Projektförslag Johanna Karlsson joka1954

Likhetstecknets innebörd

1 Minkostnadsflödesproblem i nätverk

SHAZAM! En!smart!musiktjänst! Linha108! Fördjupningsarbete!729G43!

Hierarchical Temporal Memory Maskininlärning

Minnesisolering för virtuella maskiner en hypervisorstudie

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Talsystem Teori. Vad är talsystem? Av Johan Johansson

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

Personifierad Netflix

MVE022 Urval av bevis (på svenska)

Optimering av hyperparametrar till artificiella neurala nätverk med genetiska algoritmer.

Programmering som språk

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581

Anujan Balasingam IDA14 NAND flashminnen

Vad behövs för att skapa en tillståndsrymd?

Likhetstecknets innebörd

Maskinöversättning 2008

Liswi948, Lisa Widerberg, liswi948 Fördjupningsarbete Linköpings Universitet 729G43, Artificiell Intelligens

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Kinesiska restsatsen

Några satser ur talteorin

TAMS79: Föreläsning 10 Markovkedjor

BILAGA E till Programvaruprojekt ÅTERSTÅENDE PROBLEM MultiPC v1.0. Innehållsförteckning

Innehåll. Förord Inledning Tack Vidare läsning Illustrationer Register kapitel 1 Ursprung...

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Vad kan biologiskt plausibla modeller säga oss?

Kompletterande räkneuppgifter i Spektrala Transformer Komplex analys, sampling, kvantisering, serier och filter Laura Enflo & Giampiero Salvi

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht Block 5, översikt

Designmönster som dokumentation och utveckling av IKT i undervisningen

FUZZY LOGIC. Christopher Palm chrpa087

Tentamen. Makroekonomi NA juni 2013 Skrivtid 4 timmar.

LYCKA TILL! kl 8 13

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Artificiell Intelligens den nya superkraften

Enlagersnät Flerlagersnät Generalisering. Artificiella Neuronnät

Perceptron som ordklasstaggare: ett fördjupningsarbete i 729G43 -Artificiell Intelligens

Nonogram

LARS ULVELAND HOPFIELDNÄTVERK FÖR IGENKÄNNING AV DEGRADERADE BILDER OCH HANDSKRIVNA TECKEN

Här är två korta exempel på situationer då vi tillämpar den distributiva lagen:

Deliberate Practice på en kurs i kvantmekanik. Emma Wikberg (& Stefano Bonetti) Fysikum, SU

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

Kihl & Andersson: , 4.5 Stallings: , , (7.3)

Kristian Almgren Artificiell Intelligens Linköpings Universitet Talstyrning

Cake-cutting. att fördela resurser på ett rättvist sätt. Ebba Lindström

Transkript:

Linköpings universitet 729G43 NEURAL MASKINÖVERSÄTTNING Moa Wallin

Inledning Manuell översättning är en mycket tidskrävande process som kräver stor kunskap och bred kompetens och behovet av översättning är större än vad mänskliga översättare någonsin skulle kunna hinna med. Att istället låta en maskin sköta översättningen underlättar avsevärt, inte minst då man är i behov av en snabb översättning. Idag erbjuds en uppsjö av olika översättningsprogram och Googles kända översättningstjänst Google Translate har exempelvis numera stöd för över 100 språk och nyttjas av miljontals människor dagligen. Utöver att hjälpa människor att förstå information på främmande språk i vardagen, har även maskinöversättning en kommersiell betydelse. Det blir allt viktigare för företag och liknande att kunna tillhandahålla information på flertalet språk i takt med att nationaliteter och språkkunskaper hos tillgängliga läsare breddas och att kunna erbjuda användare ett gränssnitt eller en instruktionsmanual på deras egna modersmål kan väga tungt i att locka människor till att nyttja en produkt. Att hitta en maskinöversättningsmetod som genererar korrekta översättningar är alltså någon eftersträvansvärt, men som tyvärr är mycket svårt att uppnå. Den senaste ansatsen kring maskinöversättning nyttja neurala nätverk och har redan på mycket kort tid ersatt tidigare system hos bland annat stora företag som Google och Facebook. Terminologi Under rapporten förekommer ett antal termer som läsaren bör vara införstådd i för att kunna tillägna sig övrig information och fakta i rapporten. Nedan presenteras därför en mängd termer och en kortare tillhörande förklaring för att underlätta för läsandet. MT: abbreviation av maskinöversättning (eng. machine learning). Deep learning: en typ av maskininlärningsmetod som använder neurala nätverk med flera dolda lager. Korpus (pl. korpora): en stor mängd språkliga data, antingen skriftlig text eller transkriberat tal. I denna uppsats refereras dock endast till korpora med skriven text. En korpus som innehåller texter på fler än ett språk kallas för en parallell korpus (Weisser, 2016). Sequence-to-sequence learning (seq2seq): handlar om att träna modeller att omvandla sekvenser i en domän till sekvenser i en annan domän. Tekniken har främst används inom

maskinöversättning och i detta fall representerar de två domänerna ett källspråk respektive ett målspråk. Upplägg och avgränsningar Följande rapport ämnar redogöra för de grundläggande principerna som ligger bakom neural maskinöversättning. Då flera olika angreppssätt existerar inom ansatsen kommer denna rapport att avgränsas till att endast innefatta neural maskinöversättning med vanilla recurrent neural networks av typen vanilla long short-term memories. Först ges läsaren en kort bakgrund över tidigare tekniker inom maskinöversättning. Därefter ges en översiktlig beskrivning av principen bakom neural maskinöversättning för att sedan gå djupare in i de olika delområdena som bygger upp ett neuralt maskinöversättningssystem. Slutligen has för avsikt att koppla samman teorierna och ge en diskussion kring ämnet i allmänhet.

Tidigare maskinöversättningssysten Maskinöversättning var ett av de tidigare tilltänkta användningsområdena för datorer, men utvecklingen av fungerande maskinöversättningssystem har dock varit långt ifrån bekymmersfri (Hutchins, 2007). Det visade sig vara svårare än vad som först hade förväntats att skapa ett system som generera en acceptabel översättning av en text mellan två språk, och det är inte förrän det senaste decenniet som maskinöversättningen på riktigt fått sitt uppsving (Russel & Norvig, 2014). En av de tidiga teknikerna för maskinöversättning var den regelbaserade översättningen (RBMT). Denna teknik baseras på lexikon och manuellt utvecklade lingvistiska regler som systemet sedan översätter en text utifrån. Fördelarna med RBMT är att tekniken inte kräver tillgång till parallella korpora. En annan fördel är att utvecklarna av systemet har total kontroll och enkelt kan lokalisera eventuella buggar och förstå vad som orsakar ett fel. Problemet med RBMT är att mänskligt språk inte alltid följer bestämda regler utan det förekommer massvis med undantag och dialektala variationer för att inte tala om den påverkan kontexten har för betydelsen av ett ord. Den regelbaserade översättningen producerar därmed ofta undermåliga översättningar som saknar språkligt flyt och som i slutändan ändå kräver mänskligt redigerande. Sedan flera år tillbaka har istället den dominerande maskinöversättningstekniken varit den statistiska maskinöversättningen (SMT). Som namnet antyder använder sig SMT av statistik och sannolikheter, istället för grammatiska regler, för översättning. Genom att träna probabilistiska modeller efter statistik i stora parallella korpora kan ett SMT-system avgöra vilken översättning som mest troligt är korrekt. Denna typ av översättning är dock alltså beroende av tillgång till mängder av parallella korpora och för de stora språken, så som engelska och spanska, är det oftast inte ett problem att finna parallella översättningar. För många andra språk existerar det dock helt enkelt inte tillräckligt med texter för att producera fullgoda översättningar genom SMT (Lopez, 2008). Under de senaste åren har stora förändringar skett inom MT i och med att den nya tekniken neural maskinöversättning (NMT) anammats av flertalet stora företag. Den statistiska maskinöversättningen framstår fortfarande vara dominant, men brukandet av NMT verkar ständigt ökar i popularitet och efterfrågan, och är således ett mycket aktuellt ämne.

Neural maskinöversättning (NMT) Övergripande beskrivning Tekniken hos NMT frångår den tidigare dominerande statistiska ansatsen och använder istället deep learning med stora neurala nätverk för att möjliggöra översättning mellan olika språk. De neurala nätverken i NMT bildar en så kallad encoder-decoder-arkitektur bestående av recurrent neural networks. Med encoder-decoder-arkitektur menas att NMT-systemet innefattar en kodare (eng. encoder) som läser in en källsats och summerar denna genom att skapa en vektor bestående av en sekvens med unika siffror som representerar satsens mening, dess innebörd. En kodare skapar alltså en enda vektor som output ur en input-sekvens. Denna vektor går sedan igenom en avkodare (eng, decoder) som i sin tur tar in vektorn som input och avkodar till orginalsatsen igen. Men istället för att avkoda satsen på källspåket igen tränas istället en avkodare att avkoda på ett annat språk istället, ett så kallat målspråk. En avkodare producerar alltså en output-sekvens ur en enskild input-vektor (Stanford University School of Engineering, 2017). Som nämnt används så kallade recurrent neural networks (RNN), både som kodare och avkodare. Dessa RNN förekommer dock även i sin tur i olika former, så som long short-term memory (LSTM) eller gated recurrent unit (GRU). Denna uppsats kommer dock endast att fokusera på NMT där LSTM används och övriga metoder kommer således att utelämnas. För att förstå principerna bakom tekniken hos ett NMT och det ovan beskrivna krävs en del kunskaper som ämnas klargöras i kommande stycken. Allmänt om neurala nätverk Den mänskliga hjärnan innehåller flera miljarder neuroner som genom förbindelser till varandra skapar ett komplext nätverk. Ett enskilt neuron utför endast en mycket enkel uppgift genom att reagera på en input-signal, men tillsammans kan ihopkopplade neuroner utföra oerhört komplexa uppgifter på väldigt kort tid. Anslutningen mellan neuroner kallas synaps och har till uppgift att föra vidare elektrokemiska signaler. Då ett neuron mottar en total signal som är större än synapsens tröskelvärde leder det till att neuronen avfyras och sänder vidare den elektrokemiska signalen till dess grann-neuroner och så vidare (Zou, Han & So, 2008).

Det var med vårt biologiska nervsystem som inspiration som de så kallade artificiella neurala nätverken (hädanefter ANN) utvecklades. Likväl bör uppmärksammas att ANN för den sakens skull inte utgör en modell av den mänskliga hjärnan. Hjärnans komplexitet är alltför stor för att dagens artificiella neurala nätverk skulle kunna efterlikna alla dess funktioner. ANN är däremot ett mycket användbart och starkt verktyg inom artificiell intelligens, som genom träning på stora mängder data kan hitta mönster och på så sätt lära sig lösa problem (Russell & Norvig, 2014). Som motsvarighet till hjärnans neuroner består ANN av ett antal noder som är ordnade i skilda lager. Det förekommer alltid minst två stycken lager - ett för input och ett för output. För att lösa okomplicerade uppgifter kan ett enkelt nätverk bestående av endast dessa två lager räcka, men de flesta uppgifter kräver dock även att ett eller flera så kallade dolda lager införs mellan input-lagret och output-lagret. Ett ANN med flera dolda lager kallas för ett djupt neuralt nätverk (DNN) (se figur 1) och krävs för maskinöversättning (Russell & Norvig, 2014). Precis som namnet avslöjar går det inte att observera vad som sker i de dolda lagren, utan de utgör vad som brukar benämnas en svart låda. Figur 1. Exempel på visualisering av ett djupt neuralt nätverk (Nielsen, 2015). Som synes i figur 1 binds noderna i ett ANN samman med hjälp av länkar som har till uppgift att föra vidare en aktivering. Varje länk mellan två noder har alltså även en tillhörande vikt, ofta kallad parameter, som avgör styrkan hos förbindelsen. En nod mottar därmed flera olika input från närliggande noder och ger varje en vikt som förändras då nätverket lär sig. Denna

förmåga att kunna korrigera parametrarna under träningsperioden är ett av ANNs nyckelelement. Likt hos de biologiska neurala nätverken existerar även en tröskel i form av en aktiveringsfunktion som avgör huruvida signalen ska sändas vidare eller inte alltså hur stor summan av alla vikter måste vara för att noden ska föra vidare informationen till nästkommande lager. Aktivering i ett lager avgör följaktligen aktivering i nästa lager. Aktiveringsfunktionen kan vara en hård tröskelfunktion där neuronen genererar en positiv signal då summan överstiger 0 och en negativ signal då den är mindre än 0 alltså: f(x) = 0 () * < 0 1 () * 0 Den aktiveringsfunktion som dock främst används inom maskinöversättning är den logistiska funktionen, även kallad sigmoidfunktion (se figur 2.) (Russell & Norvig, 2012). Figur 2. Den logistiska funktionen (Russell & Norvig, 2012). Till skillnad från den hårda tröskelfunktionen har den logistiska funktionen som synes en mjukare kurva och följaktligen ett mer kontinuerligt spann av värden mellan 0 och 1. Istället för att ha 0 som en tröskel för aktivering används följande matematiska funktion: f(x) =../0 12 Detta innebär att allt eftersom aktiveringen x går mot - går funktionen mot 0 och vice versa då x går mot + så går funktionen mot 1. Detta ger den logistiska funktionen fördelen i att den är differentierbar överallt vilket förenklar inlärning av det neurala nätverkets vikter.

Denna rapport kommer inte att gå djupare in på hur denna träning går till men kort sagt används bakåtpropagering (eng. back propagation) från output-lagret och bakåt i nätverket där vikterna med hjälp av gradientsökning (eng. gradient descent) modifieras för att minska felet och för att träna ett neuralt nät att korrekt kunna klassificera input (Russell & Norvig, 2012). Ytterligare en aktiveringsfunktion som ibland används inom NMT, och som således förekommer senare i denna rapport, är den hyperboliska funktionen tangens hyperbolicus (hädanefter tanh). Istället för mellan 0 och 1, som hos den logistiska funktionen, har tanh ett spann på -1 till 1. Vad en nod i ett ANN sedan genererar för output beräknas kort sagt genom att multiplicera den input som mottas i input-lagret med en viktvektor, summera resultaten och applicera en aktiveringsfunktion på summan (se figur 3.). Figur 3. En enkel modell av en nod i ett ANN. Den matematiska funktionen för detta är följande: y = f(* 5 * 6 5 + b) x representerar alltså input och w är vikterna. f är aktiveringsfunktionen. I ekvationen betecknat b och även i figur 3 förekommer något som kallas bias. Vad denna bias gör är att lägga till ett värde i summan av input som låter oss förflytta en funktion vertikalt. Genom att ha en positiv bias förflyttas funktionen åt höger på y-axeln och vice versa, alltså till vänster,

då bias är negativ. Möjligheten att göra detta kan behövas för att finna en lösning i flertalet problem. Vanligtvis rör sig information i ett ANN framåt från input-lagret till output-lagret utan möjlighet att backa, vilket kallas feed-forward network (FNN). Nätverket har således inget minne av tidigare uträkningar, utan hanterar varje input oberoende av tidigare input, och givet samma input kommer nätverket att producera samma output. Denna modell fungerar utmärkt till vissa typer av uppgifter där input har bestämd storlek. När det kommer till språk skiljer sig dock självfallet längden på satser och således storleken på input. Likaså kräver maskinöversättning möjlighet att inkludera någon slags minne då ett element i sekvensen kan vara beroende av tidigare. Som tidigare nämnt används alltså istället för FNN främst så kallade recurrent neural networks (hädanefter RNN) inom NMT. Recurrent Neural Networks (RNN) RNN innehåller loopar vilket möjliggör flödet av information att färdas tillbaka i nätverket. Likaså kan nätverket ta input av en arbiträr längd. Detta innebär implicit att input inte bara består av vad nätverket för tillfället varseblir, utan även vad nätverket tidigare varseblivit. Det beslut ett RNN fattar vid en tidpunkt t påverkar således det beslut som kommer att fattas vid en senare tidpunkt t+1. Figur 4. Modell av RNN och hur den vecklas ut till ett fullt nätverk (LeCun, Bengio & Hinton, 2015). I figur 4 demonstreras en allmän modell för RNN och hur ett RNN kan skrivas ut för en komplett sats som en kedja av feed-forward networks. I den utvecklade modellen existerar en nod i det dolda lagret för varje ord i satsen. En sats med fyra ord ger således ett dolt lager med fyra noder. * 9 står för input, alltså en vektor som representerar ett ord i satsen, vid tidssteget t. Det som i modellen i figur 4 benämns som : 9 kan liknas vid ett kort minne, det vill säga ett

dolt, internt tillstånd som beräknas baserat på det förra dolda tillståndet samt den input som mottas vid nuvarande tidssteg t. Detta dolda minne kommer dock hädanefter att istället benämnas h 9. Slutligen representerar < 9 output vid tidssteget t. Denna output beräknas enbart utefter h 9, som alltså används för att räkna ut sannolikheten för nästa ord (Liu, Yang, Li & Zhou, 2014). Input utgör alltså en sammanlänkning av * 9 och h 9. Detta demonstreras på ett ytterligare, möjligen mer påtagligt sätt, i figur 5. Som synes används parametrarna U, V och W, som representerar viktmatriserna, i varje tidssteg. Detta visar på hur ett RNN utför samma uppgift, men med olika input vid varje tidssteg. Figur 5. Modell av RNN (Liu, Yang, Li & Zhou, 2014). Observera att modellen i denna modell till skillnad från modellen i figur 2 använder h för det dolda tillståndet och y för output istället för s respektive o. Principen är dock densamma. Ekvationen för hur information sparas i det dolda tillståndet, h 9, ser ut som följande: h 9 = s (Uh 9=. + W* 9 ) Som tidigare avser * 9 input vid tidpunkt t och h 9=. är som tidigare det dolda tillståndet vid föregående tidssteg. s avser sigmoid som aktiveringsfunktion. För att återgå till den utvecklade modellen av RNN i figur 4 syns hur modellen genererar output vid varje tidssteg. Inom maskinöversättning är detta dock inte något som eftersträvas, utan man vill endast ge output först efter att hela texten, det vill säga all input, har setts. Endast det slutliga dolda tillståndet används då för att göra en förutsägelse. För att repetera innehåller dock NMT två RNN där den första RNN kodar en sekvens till en enskild vektor och den andra avkodar vektorn till en sekvens ånyo. Den första RNN går således från

många till en och den andra från en till många (Bahdanau, Cho & Bengio, 2015) (se figur 6.). Figur 6. Modell av encoder-decoder-arkitekturen med två RNN (Geitgey, 2016). Som tidigare nämnt används bakåtpropagering för att träna vikterna i ett neuralt nätverk, men då RNN innehåller loopar måste även varje tidssteg länkas till nästa. En utvidgad typ av bakåtpropagering som kallas gradient backprogagation through time (BPTT) används då istället. I dessa konventionela RNN, även kallade vanilla RNN, innebär det att information i nätverket passerar genom flera lager och således flera steg av multiplikation vilket kan leda till problem. Om gradienten är mindre än 1 minskar gradientvärdet successivt och kommer allt närmre 0 allt eftersom vi propagerar bakåt, och alltså multiplicerar med gradienten, genom varje lager (se figur 7). Detta problem kallas the vanishing gradient problem. Den motsatta effekten uppstår då gradienten är större än 1 och benämns då istället the exploding gradient problem. Gradienten behöver således vara 1 för att problemet inte ska uppstå och detta är något som sällan förekommer. Figur 7. Illustration av vanishing gradient problem (Graves et al., 2009). Problemet med gradienten som försvinner eller exploderar gör alltså att RNN inte kan lagra information och lära sig under en längre tid, något som krävs för att korrekt klassificera den sekventiella input som används vid MT. Då en sats ofta består av flertalet ord kan det innebära långa dependenslängder (eng. long-term dependencies), alltså ett längre avstånd

mellan viss input och då information om denna input i fråga behövs för att göra en förutsägelse (Grosse, 2017). Ett exempel på vad som avses med en lång dependenslängd kan noteras i följande sats: Katten som jag såg när jag gick över gatan igår var svart. För en människa är det inte svårt att komma ihåg och förstå det är katten som nämns i inledningen av satsen som är svart, trots att flertalet andra ord befinner sig mellan ordet katten och ordet svart. För ett RNN är detta dock inte lika problemfritt utan mycket svårt, exempelvis i jämförelse med satsen katten är svart som inte har denna långa dependenslängden. Vad som behövs vid maskinöversättning är då ett sätt för nätverket att minnas långa dependenser genom att kunna minnas gradientvärdet vid bakåtpropagering. En lösning på detta problem är att införa RNN-varianten long short-term memory, som alltså är speciellt effektiv vid maskinöversättning. Nästa stycke ämnar beskriva den grundläggande strukturen hos LSTM. Long short-term memory (LSTM) LSTM avser alltså lösa gradientproblemen hos RNN genom att, för att kort sammanfatta, avgöra vad som ska behållas i minnet och vad som ska raderas. Detta gör LSTM till det självklara valet vid maskinöversättning där, som påvisats i föregående stycke, data ofta innehåller dessa långa temporala dependenser. En LSTM-enhet innehåller till skillnad från vanilla RNN fler interna strukturer. De kan se ut på olika sätt men den vanligaste typen av LSTM-enhet, vanilla LSTM, har ett minnesblock som innehåller minnesceller och tre så kallade portar (eng. gates) (se figur 8.). Minnescellen har som namnet antyder till uppgift att minnas information och agerar som ett långtidsminne. Portarna, likt noder i ett ANN, agerar utifrån de signaler de mottar genom att antingen vara stängda eller öppna (ha värdet 0 respektive 1). De tre portarna som existerar i LSTM-blocket är en input-port, en output-port och en forget-port. Figur 8. Modell av ett minnesblock i vanilla LSTM.

Input-porten avgör huruvida ny inkommande information får komma in. Är input-porten öppen ändrar denna inkommande information minnescellens tillstånd och skriver över den information som befinner sig där. Output-porten avgör huruvida minnescellens tillstånd ska föras vidare till resten av nätverket och andra minnesceller. Forget-porten i sin tur ser till så att cellens tillstånd återställs då allt innehåll har använts och inte är av betydelse längre (Greff et al., 2017). De tre portarnas ekvationer för att räkna ut huruvida de ska vara öppna eller stängda ser ut som följande: Input-porten: ( 9 = s(h I * [h 9=., * 9 ] + M I ) Output-porten: < 9 = s(h O * [h 9=., * 9 ] + M O ) Forget-porten: ) 9 = s(h R * [h 9=., * 9 ] + M R ) Notera hur dessa ekvationer liknar ekvationerna för att beräkna output i en nod i ett ANN. De är uppbyggda på samma sätt och är som små neurala nätverk. Vi har input från nuvarande tidssteg, * 9, och i form av det dolda tillståndet i förra tidssteget, h 9=.. Denna input multipliceras med en viktvektor och slutligen adderas en bias, b. Då vi i det här fallet vill ha siffror mellan 0 och 1 används den logistiska funktionen som aktiveringsfunktion och betecknas som s. Under träning lär sig minnesblocket vilka portar som ska vara öppna respektive stängda alltså vad minnescellen ska minnas och vad som ska glömmas. Detta görs likt hos ANN genom att vikterna justeras genom gradientssökning. Beroende på input-portens och forgetportens värden uppträder alltså en minnescell på olika sätt. Nedanstående ekvation visar hur minnescellens, alltså S 9, tillstånd ändras: S 9 = ) 9 * S 9=. + ( 9 * tanh(h V * [h 9=., * 9 ] + M V ) Observera hur istället för sigmoid så används den hyperboliska funktionen som aktiveringsfunktion. Som tidigare nämnt har den hyperboliska funktionen ett spann mellan -1 och 1 så genom att använda sig av den övervinns the vanishing gradient problem.

Till slut ska det avgöras vilket det slutgiltiga output som ska skickas vidare till andra minnesblock blir och detta beräknas enligt följande formel: h 9 = < 9 * tanh(s 9 ) Sammanfattning Denna rapport har visat hur neural maskinöversättning frångår tidigare översättningsmetoder genom att använda en modell med en kodare, som ur en sats på ett språk kan skapa en vektor för att representera satsens mening, och en avkodare som utifrån nämnda vektor kan återskapa satsen och dess innebörd fast på ett annat språk. För att kunna genomföra detta används RNN, ofta av typen LSTM, där nätverket innehar en form av minne vilket möjliggör att systemet kan tränas end-to-end. Diskussion Neural maskinöversättning är fortfarande en mycket ny metod, men trots det har den under de få år som den har funnits redan anammats av flertalet stora företag som ersättare av andra typer av maskinöversättningsmetoder. År 2016 lanserades exempelvis Microsofts Bing Translator som använder tekniken och sedan dess har jättar inom maskinöversättning som Google Translate och Facebook successivt ersatt tidigare översättningssystem med NMT. Google har för sitt översättningssystem utvecklat en egen typ av NMT kallad GNMT. Vid översättning mellan exempelvis engelska och franska samt engelska till spanska presterade detta system avsevärt mycket bättre och reducerade antalet översättningsfel med hela 60% jämfört med den tidigare frasbaserade översättningsmetoden (Wu, Schuster, Chen, Le, Norouzi, 2016). Neural maskinöversättning är dock långt ifrån en problemfri metod. Ett av de stora problemen med NMT är att det är en mycket dyr metod rent beräkningsmässigt som kräver stora mängder träningsdata och mycket tid för inlärning. Dessutom uppstår problem med mer ovanliga ord som NMT-systemet inte har kunnat träna på. Ett annat betydande problem ligger i svårigheterna att finna och korrigera eventuella buggar då den större delen av beräkningen sker i de dolda lagren som alltså utgör en så kallad svart låda.

Avslutningsvis kan konstateras att det fortfarande förekommer problem och begås signifikanta misstag vid översättning även med denna typ av metod. Mycket arbete återstår följaktligen för att skapa en maskinöversättningsmetod som kan mäta sig med mänsklig översättning. Dock framstår NMT ha en lovande tid framför sig där förhoppningsvis stora framsteg görs för att tackla de återstående problemen.

Referenser Bahdanau, D., Cho, K., Bengio, Y. (2015) Neural Machine Translation by Jointly Learning to Align and Translate. Published as a conference paper at ICLR. Geitgey, A., (2016-08-21). Machine Learning is Fun Part 5: Language Translation with Deep Learning and the Magic of Sequences. Hämtad från https://medium.com/@ageitgey/machine-learning-is-fun-part-5-language-translationwith-deep-learning-and-the-magic-of-sequences-2ace0acca0aa [2017-01-10] Graves, A., Liwicki, M., Fernandez, S., Bertolami, R., Bunke, H., Schmidhuber, J. (2008). A Novel Connectionist System for Unconstrained Handwriting Recognition. Greff, K., Srivastava, R. K., Koutník, J., Steunebrink, B. R., Schmidhuber, J. (2017). LSTM: A Search Space Odyssey. IEEE Transactions on Neural Networks and Learning Systems, 28(10), 2222-2232. Grosse, R. (2017) Lecture 15: Exploding and Vanishing Gradients. Hämtad från http://www.cs.toronto.edu/~rgrosse/courses/csc321_2017/readings/l15%20explodin g%20and%20vanishing%20gradients.pdf [2017-01-09] Hutchins, J. (2007). Machine translation: a concise history. In C. S. Wai (Ed.) Computer Aided Translation: Theory and Practice. Chinese University of Hong Kong. LeCun, Y., Bengio, Y. & Hinton, G. (2015) Deep learning. Nature, 521, 436-444. Liu, Y., Yang, N., Li, M., Zhou, M. (2014). A recursive recurrent neural network for statistical machine translation. 52nd Annual Meeting of the Association for Computational Linguistics (pp. 1491-1500). Lopez, A. (2008). Statistical machine translation. ACM Computing Surveys, 40 (3), art nr 8. University of Edinburgh, UK.

Nielsen, M. A. (2015) Neural Networks and Deep Learning, Determination Press. Hämtad från http://neuralnetworksanddeeplearning.com/chap5.html [2017-01-08] Russell, S., & Norvig, P. (2014). Artificial Intelligence - a Modern Approach. Edinburgh: Pearson Education Limited. Sutskever, I., Vinyals, O., & Le, Q. V. (2014) Sequence to sequence learning with neural networks. Advances in Neural Information Processing System, 4, 3104 3112. Stanford University School of Engineering. (2017, August). Lecture 10 Recurrent Neural Networks [Video]. Hämtad från https://www.youtube.com/watch?v=6niqtuyfzlq Weisser, M. (2016) Practical Corpus Linguistics An Introduction to Corpus-Based Language Analysis. Hoboken: Wiley-Blackwell.