google assistant & wavenet › ~729g43 › projekt › studentpapper-17 › ... ·...

17
0 Linköpings universitet 729G43, Artificiell Intelligens Google Assistant & WaveNet Projektrapport om CNN Maja Albrektson 27/1217

Upload: others

Post on 28-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

0

Linköpings universitet

729G43, Artificiell Intelligens

Google Assistant & WaveNet Projektrapport om CNN

Maja Albrektson

27/12–17

Page 2: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

1

SAMMANFATTNING

Denna rapport beskriver WaveNet, en generativ modell av ett neuralt nätverk som arbetar på

ljudvågsnivå (van der Oord, et al., 2016). WaveNet har visat sig producera bättre tal som låter

mer naturligt och realistiskt än tidigare modeller. Algoritmen är uppbyggd av ett Convolutional

neuralt nätverk, CNN, och det är uppbyggnaden av detta som rapportens primära fokus ligger på.

Page 3: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

2

INNEHÅLL Sammanfattning ............................................................................................................................................ 1

1. Inledning ............................................................................................................................................... 3

1.1 Bakgrund ....................................................................................................................................... 3

2. Talsyntes ............................................................................................................................................... 3

2.1 Konkateneringssyntes ................................................................................................................. 3

2.2 Parametrisk talsyntes ................................................................................................................... 4

2.3 Skillnader mellan WaveNet och tidigare system ..................................................................... 4

3. Artificiella Neurala Nätverk ............................................................................................................... 5

3.1 Convolutional Neurala Nätverk, CNN .................................................................................... 5

3.2 Beståndsdelar/lager ..................................................................................................................... 5

1.3.2 Convolution ......................................................................................................................... 5

2.3.2 Pooling .................................................................................................................................. 6

3.3.2 Fully Connected ................................................................................................................... 6

4.3.2 Rectified Linear Units & Softmax ..................................................................................... 7

3.3 Deep learning generellt ............................................................................................................... 7

3.4 Backpropagation .......................................................................................................................... 7

3.5 Designerbeslut .............................................................................................................................. 8

4. WaveNet och dess uppbyggnad ........................................................................................................ 8

4.1 Uppbyggnad ................................................................................................................................. 8

4.2 Beståndsdelar/lager ..................................................................................................................... 8

1.4.2 Causal convolution .............................................................................................................. 9

2.4.2 Dilated causal convolution ............................................................................................... 10

3.4.2 Softmax & kvantisering .................................................................................................... 10

4.4.2 Residual learning & skip connections ............................................................................. 11

5.4.2 Gated activation units ....................................................................................................... 12

4.3 Extra input .................................................................................................................................. 13

5. Diskussion .......................................................................................................................................... 13

Referenser .................................................................................................................................................... 15

Page 4: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

3

1. INLEDNING

Utvecklingen inom artificiell intelligens går ständigt framåt. Nya lösningar till tekniska problem

presenteras och utvecklas kontinuerligt. Maskininlärning utgör en stor del av detta och har den

senaste tiden börjat användas flitigt när det handlar om taligenkänning (Levy, 2016). I princip alla

moderna mobila enheter har idag någon sorts inbyggd röststyrning, exempelvis Apples Siri,

Amaons Alexa, Microsofts Cortana eller Google Now (Betters & Langridge, 2017). Google valde

år 2016 att släppa sin nya utveckling av Google Now som heter ” Google Assistant” och

marknadsföringen fokuserar på att sökmotorn Google skapades för att hjälpa alla, medan Google

Assistant endast fokuserar på dig som individ (Huffman, 2017). Produkter som använder sig av

Google Assistant ska därmed, vilket namnet indikerar, fungera som ägarens personliga assistent.

Funktionen finns i många olika produkter och kan användas över flera olika enheter vilket

medför naturlig interaktion med assistenten via såväl högtalare, tv, plattor och telefon.

1.1 Bakgrund

Google Assistant använder sig av flertalet olika algoritmer för en fungerande interaktion mellan

användare och maskin. Att kunna transformera text till tal (eng. text-to.speech), förkortat TTS, är

återkommande i denna interaktion och Google har i deras senaste version av Google Assistant

bland annat fokuserat på att få assistentens röst att likna en människas så mycket som möjligt

(van der Oord, Walters, & Strohman, 2017). För att lyckas med detta har företaget DeepMind,

numera ägt av Google, utvecklat WaveNet som är ett djupt neuralt nätverk som genererar råa

ljudvågor (eng. raw audio wavelengths). WaveNet är ett fullständigt convolutional neuralt nätverk

(eng. convolutional neural network), CNN. När WaveNet har tränats upp så har input bestått av

tidigare inspelade data samt den mening som man vill att programmet ska uttala. Den modellen

av WaveNet som började användas i Google Assistant år 2017 är en uppdaterad och förbättrad

version av den första prototypen (van der Oord, Walters, & Strohman, 2017). Denna rapport

kommer att fokusera på hur den första prototypen var uppbyggd, och främsta fokus kommer att

ligga på hur olika CNN fungerar samt på vilket sätt WaveNet är utformat.

2. TALSYNTES

2.1 Konkateneringssyntes

De flesta tidigare program på marknaden inom talsyntes använder sig utav konkateneringssyntes

(eng. concatenative TTS) (Andersson, 2013). Konkateneringssyntes går ut på att man väljer ut en

Page 5: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

4

röst som får spela in mängder med röstklipp som består av olika meningar. Meningarna är noga

utvalda för att innehålla rätt sorts innehåll, ofta innebär det att de innehåller många olika

kombinationer av fonem. Inspelningarna delas sedan upp i olika enheter så som fonem, ord eller

meningar (Khan & Chitode, 2016). Väsentliga delar av dessa enheter väljs sedan ut och

kombineras, även kallat konkateneras, och syntetiskt tal har skapats. Systemen bakom

konkateneringssyntesen har således till uppgift att välja ut alla lämpliga delar från databasen

bestående av all data, och sedan sammanfoga dessa delar till den slutgiltiga outputen. Denna typ

av talsyntes gör det svårt att förändra rösten, och för att göra större förändringar så som att ändra

känslor och toner i språket kan kräva att man spelar in en helt ny databas (van den Oord,

Dieleman, & Zen, 2016).

2.2 Parametrisk talsyntes

Parametrisk talsyntes (eng. parametric TTS) är ett annat sätt som man kan skapa text till tal på

(van den Oord, Dieleman, & Zen, 2016). Den parametriska talsyntesen har all information som

behövs sparad i modellens parametrar, vilket bidrar till att man kan kontrollera talet via inputen.

Problemet med parametrisk talsyntes är att den tenderar till att låta mindre naturlig än

konkateneringssyntesen.

2.3 Skillnader mellan WaveNet och tidigare system

Skillnaden mellan WaveNets nya system och tidigare program är således att de har lyckats skapa

en naturligare röst än tidigare (van den Oord, Dieleman, & Zen, 2016). Tidiga tester med

WaveNet har visat en tydlig förbättring jämförelsevis med tidigare TTS-program. Programmets

förmåga att generera råa ljudvågor möjliggör även att skapa andra typer av ljud, så som musik

samt att byta mellan olika röster. Övriga saker som gör att ljudet som skapas av WaveNet blir

mer naturligt än tidigare TTS-program är att även ljud i form av andning och munrörelser

inkluderas. WaveNet kan dessutom använda och lära sig flera olika rösters karakteristiska drag

utan att behöva en massa nya data.

Page 6: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

5

3. ARTIFICIELLA NEURALA NÄTVERK

3.1 Convolutional Neurala Nätverk, CNN

Det finns flera olika sorters neurala nätverk som utför djupinlärning och CNN är en typ av dessa

som väldigt ofta är inblandad när det sker nya framsteg på marknaden (Rohrer, 2016). CNN

används framförallt för bildigenkänning, men även för andra saker så som text eller ljud.

3.2 Beståndsdelar/lager

För att förklara grundprincipen bakom CNN så kommer denna del av rapporten att utgå från hur

det fungerar när man använder det neurala nätverket till att jämföra bilder. Ett exempel på detta

kan vara att algoritmen ska bestämma vilken siffra en bild föreställer. En bild representeras i en

tvådimensionell modell, medan ljud presenteras endimensionellt. Detta medför att utformningen

på olika algoritmer kan variera lite, men grunden är samma. Ett av de viktigaste kriterierna för att

man ska kunna använda CNN är att datan man arbetar med har någon sorts relation och ordning

(Rohrer, 2016). Det ska inte gå att byta plats på olika rader eller kolumner i bilden (eller tidsstegen

i ett ljudklipp) utan att det påverkar datan. CNN arbetar genom att dela upp den stora ”bilden”

som man har från början i mindre delar, pixlar. Genom att jämföra de mindre delarna med

varandra så är det enklare att hitta liknelser, än om man jämför hela bilden.

1.3.2 Convolution

CNN kan ses som en algoritm som arbetar i flera lager (Rohrer, 2016). Det lager som algoritmen

har fått sitt namn ifrån kallas ”convolution layer”. Det första som algoritmen utför i

convolutionslagret är att filtrera (eng. filtering) (Karn, 2016). Vi tänker oss, för enkelhetens skull,

att en bild består av 25 pixlar, fördelade i en matris som är 5x5 stor. Filtrering innebär att ett filter

(även kallat ”kernel, eller ”feature detector”) som är mindre än ursprungsmatrisen, exempelvis

3x3, glider över bildens alla pixlar ett steg i taget. Den yta som filtret ”täcker” är det som kallas

”receptive field”. När filtret jämförs med ursprungsbilden på detta vis så används en matematisk

uträkning kallad konvolution (eng. convolution). Uträkningen innebär att man multiplicerar

värdet i varje ruta i filtret med värdet på den motsvarande pixeln i ursprungsbilden, även kallat

elementbaserad multiplikation. Om man tar svaren från alla konvolutioner och placerar ut på de

platser där uträkningen gjordes så skapas en filtrerad version (även kallat feature map) av

originalbilden som visar hur väl det filter som användes passar in på olika ställen i bilden. Denna

process genomförs med alla filter, vilket leder till ett flertal filtrerade bilder. Ju fler filter som

Page 7: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

6

algoritmen använder, desto fler features kommer att upptäckas, och nätverket kommer att bli

bättre på att upptäcka mönster i nya bilder.

Anledningen till att man använder sig av convolutionlager är att man oftast söker efter något

specifikt i bilderna, specifika features (Dettmers, 2015). En bild innehåller mängder med

information, men oftast är det endast en liten del av all den informationen som faktiskt är

relevant för algoritmen. Ett exempel på sådan information kan vara att man vill fokusera på

konturer eller olika färger. Denna process är automatiserad med hjälp av algoritmen, det enda den

som designar algoritmen behöver göra i detta avseende är att träna nätverket till att finna nya

filter som är relevanta för uppgiften.

2.3.2 Pooling

Ett CNN kan bestå av flera olika sorters lager och funktioner, alla behöver inte nödvändigast

användas i samtliga algoritmer. Ett exempel på en sådan funktion är ett lager som kallas

”pooling” (Dettmers, 2015). Pooling utförs för att minska storleken på bilder, eller data, medan

man fortfarande behåller den viktigaste informationen som man har samlat in. Det är även bra

eftersom att input inte behöver se ut på ett specifikt vis, vilket innebär att den inte är så känslig

för rotationer och översättningar. Det finns flera olika sorters Pooling, men Max Pooling är det

vanligaste (Karn, 2016). Processen genomförs genom att, med hjälp av en matris (några pixlar

stor) som flyttas runt, välja ut det största värdet för varje del av bilden som matrisen befinner sig

på (Rohrer, 2016). Detta reducerar storleken på bilden. Anledningen till att detta tillvägagångssätt

är möjligt beror på att CNN inte bryr sig om vart inom en matris som ett visst filter passar bäst,

utan endast ifall det passar eller inte. Om detta sker efter convolutionslagret och filtreringen som

beskrevs ovan, så kommer det alltså fortfarande att vara lika många filtrerade bilder, men de

kommer att ha en reducerad storlek.

3.3.2 Fully Connected

Det sista steget i ett CNN är vanligtvis ett så kallat ”Fully Connected layer” och det är här som

den slutgiltiga kategoriseringen sker (Rohrer, 2016). Här hanteras inte längre datan som en

tvådimensionell bild utan snarare som en lång lista där alla värden behandlas på samma vis. Detta

innebär att varje neuron från det föreliggande lagret är kopplat till varje neuron i nästa lager

(Karn, 2016). Syftet med Fully Connected-lager är att använda de features som de tidigare lagren

har fått fram till att klassificera originalbilden och få fram vilken kategori som bilden tillhör.

Page 8: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

7

4.3.2 Rectified Linear Units & Softmax

En aktiveringsfunktion som ofta används inom CNN är det som kallas ”Rectified Linear Units”,

även förkortat ReLu (Rohrer, 2016). Denna funktion transformerar alla pixlar som består av

negativa tal till nollor. Exempelvis skulle en pixel som har värdet -0.55 skrivas ut som 0. ReLU är

därmed en elementbaserad operation (Karn, 2016). Huvudsyftet med en ReLu är att få in icke-

linjäritet i algoritmen, eftersom den mesta datan som algoritmen kommer att komma i kontakt

med ser ut på det viset.

Det sista Fully Connected-lagret i en algoritm kan även använda en aktiveringsfunktion som

kallas Softmax (Karn, 2016). Softmaxfunktionen korrigerar outputvärdena i algoritmen så att

varje kategoris outputvärde är ett värde mellan 0 och 1 samt att alla outputvärden tillsammans får

summan ett (Yang, 2017). Den kategori som har högst värde är den kategori som det neurala

nätverket tror att inputen tillhör.

3.3 Deep learning generellt

En förutsägelse för att CNN och andra djupinlärningsalgoritmer ska fungera är att alla lagers

output har samma form som indata (Rohrer, 2016). Detta möjliggör användandet av ovanstående

förklarade lager flertalet gånger efter varandra. Detta innebär att algoritmen i början kan ha fokus

på mer generella mönster i indata, för att sedan bli alltmer detaljerat efterhand. Alla features

uppdateras och blir mer innehållsrika efter varje lager, och datastorleken växer.

3.4 Backpropagation

En förutsägelse för att ett CNN ska fungera så bra som möjligt är att man har tränat upp det,

vilket kan göras med så kallad ”backpropagation” (Rohrer, 2016). Detta innebär att man

använder data som man redan har facit till, och ser till att de fel som uppstår när algoritmen kör

denna data, korrigeras. De delar som korrigeras är filtrernas värden samt vikterna mellan noderna.

Varje värde korrigeras och när man hittat det värde som gör felet så litet som möjligt, så används

detta. Mönster som är återkommande i flera iterationer formar sedan algoritmens vikter och val

av filter nästa gång. Ett exempel på ett sådant mönster skulle kunna vara att alla bilder som

algoritmen tränar med föreställer sjuor, då kommer algoritmen att generalisera och tro att det

gäller alla bilder i hela världen. Den optimala algoritmen generaliserar lagom mycket och

specialiserar lagom mycket, vilket innebär att det varken sker en så kallad ”underfitting” eller

”overfitting” (Russell & Norvig, 2010).

Page 9: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

8

3.5 Designerbeslut

När man skapar ett neuralt nätverk så finns det vissa riktlinjer för vad som är en ”lagom” mängd

av lager, filter, pixlar etcetera (Rohrer, 2016). Det finns ett flertal beslut att ta angående hur

algoritmens struktur ska byggas. Det som CNN har som en fördel, att man kan kombinera alla

lager på många olika sätt, skapar även fler beslut som behöver tas. Det är viktigt att poängtera att

dessa lager även kan presenteras med vissa förändringar, och att ovan nämnda delar endast utgör

basen för alla möjliga varianter av CNNs.

WaveNet använder sig inte av ovanstående modell av lager utan har satt ihop andra lager för att

skapa den mest optimala lösningen för deras algoritm. Ovanstående sorters lager kan ses som en

grund av vad som är vanligt förekommande i ett CNN samt fungera som riktlinjer för vad olika

lager har för funktion.

4. WAVENET OCH DESS UPPBYGGNAD

4.1 Uppbyggnad

WaveNet är, som tidigare nämnt, en generativ modell av ett neuralt nätverk som arbetar på

ljudvågsnivå (van der Oord, et al., 2016). När man försöker skapa ett talsyntessystem så går man

från text, vilket är en sekvens av diskreta symboler, till talsignaler. Till skillnad från

konkateneringssyntes och parametrisk talsyntes så är inte WaveNet bundna till lika många

bestämda ”regler” som ska följas. Den enda tidigare kunskapen som WaveNet har angående

ljudsignaler är att designaren har bestämt hur stort mottagarfältet (eng. receptive field) ska vara,

samt använder sig av ”µ-law” kodning av signalen, vilket även kan ses som ett icke-linjärt kausalt

filter för kvantiserade signaler.

4.2 Beståndsdelar/lager

Varje urval, eller tidssteg (eng. timestep), från en ljudsignal påverkas av de tidigare tidsstegen (van

der Oord, et al., 2016). Detta då ljud har en viss ordning som de olika delarna behöver komma i,

annars blir det inte samma ljud. Den sammanlagda sannolikheten (eng. joint probability) för en

ljudsignal är därmed en produkt av de respektive villkorliga sannolikheterna för varje tidssteg. Se

formel nedan.

Page 10: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

9

Figure 1. Sammanlagda sannolikheten för en ljudvåg. Källa: https://arxiv.org/pdf/1609.03499.pdf

X står här för den sammanlagda sannolikheten medan xt symboliserar varje tidsstegs villkorliga

sannolikhet. WaveNets villkorliga sannolikhetsfördelning består av ett flertal convolutional-lager.

1.4.2 Causal convolution

Figure 2. Visualisering av en stapling med causal convolutional - lager. Källa: https://arxiv.org/pdf/1609.03499.pdf

Den största delen av WaveNet består av causal convolutions (van der Oord, et al., 2016). Denna

typ av lager används främst för att säkerställa att modellen inte förändrar ordningen som all data

befinner sig i. Det är som ett vanligt convolutional-lager med skillnaden att ingenting ska kunna

påverkas av, eller vara beroende av, något som händer senare i algoritmen. Beräkningarna ska

endast grundas i nuvarande och tidigare förekommen indata.

Under träningen av ett nätverk som består av causal convolutions så kan alla förutsägelser för

tidsstegen ske samtidigt, parallellt, eftersom att alla tidssteg som finns på samma nivå redan är

kända för algoritmen (van der Oord, et al., 2016). Nätverket behöver inte generera nya data under

träning, vilket gör detta möjligt. När modellen används och testas kommer däremot alla

förutsägelser att vara sekventiella, och när en förutsägelse är gjord för ett urval, eller i detta fall

tidssteg, så matas svaret tillbaka in i nätverket för att förutsäga nästa.

Page 11: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

10

2.4.2 Dilated causal convolution

Figure 3. Visualisering av en stapling med dilated causal convolutional - lager. Källa: https://arxiv.org/pdf/1609.03499.pdf

WaveNet består inte av det så kallade poolinglagret som är vanligt förekommande i CNNs och

som beskrevs tidigare i rapporten, istället använder det så kallad ”dilated convolution” som på

sätt och vis fungerar på samma sätt (van der Oord, et al., 2016). Den stora skillnaden mot ett

poolinglager är att dilated convolution returnerar en output som har samma storlek som inputen.

Flera dilated convolution-lager efter varandra möjliggör att nätverket har ett stort ”receptive

field”, det vill säga har tillgång till många noder, men fortfarande kan hålla sig till lika många lager

som det hade varit om det inte var dilated. WaveNet har i sin algoritm valt att exponentiellt öka

utvidgningen (eng. dilation) för varje lager upp till en förutbestämd gräns för att sedan börja om,

de kallar det för ett ”block”. Själva utvidgningen innebär, som bilden demonstrerar, att ett visst

antal inputvärden hoppas över, eller ignoreras, när lagret används. Receptive field blir dubbelt så

stort som storleken på utvidgningen, vilket kan ses på bilden. Detta innebär att om man använder

dilation 1,2,4,…,512 så kommer algoritmen ha ett receptive field på 1024 noder.

3.4.2 Softmax & kvantisering

WaveNet använder aktiveringsfunktionen Softmax (se avsnitt 4.3.2) i det sista lagret för att

modellera hur stor sannolikhet det är att varje individuell ljudsignal tillhör en viss kategori (van

der Oord, et al., 2016). Detta innebär att om algoritmen fungerar korrekt så kommer den kategori

som ljudsignalen tillhör att ha högst outputvärde.

Råa ljudvågor representeras ofta som en 16-bits-sekvens, vilket medför 65,536 möjliga

outputvärden för varje tidssteg om man använder sig av Softmax (van der Oord, et al., 2016). Då

65,536 möjliga outputvärden är en stor mängd att arbeta med så använder WaveNet µ-law (mu-

law) för att sedan kvantisera (eng. quantize) datan. Mu-law är ett så kallat ”companding scheme”

vilket innebär att det förstorar små värden och komprimerar större värden (UCLA, u.å.). Detta

innebär att när en signal passerar genom en ”compander” så får de tidssteg som har en lägre

Page 12: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

11

ljudstyrka (amplitud) ett större intervall medan de signaler som har en högre ljudstyrka får ett

mindre intervall. Man kan säga att man kompenserar upp och ändrar distributionen så att det blir

en jämnare fördelning.

Varje tidssteg måste sedan transformeras till ett ändligt antal möjliga värden, som bör vara färre

än 65,536. När det handlar om att digitalisera ljud och röster så brukar 256 möjliga värden att

rekommenderas (Borth, Stark, & Lehnert, 2016). En optimal icke-linjär kvantiserare har fler

möjliga värden på de ställen där tidssteget (signalen) troligtvis kommer att inträffa och färre på de

ställen där den troligtvis inte kommer att inträffa. Med hjälp av mu-law, som har jämnat ut

fördelningen av ljudstyrkan, kan algoritmen därför ha ett jämnt distribuerat avstånd mellan de

möjliga outputvärdena. WaveNet använder av 256 möjliga värden, precis som tidigare nämnd

rekommendation (van der Oord, et al., 2016).

Anledningen till att man använder sig av ett icke-linjärt kausalt filter för kvantiserade signaler är

för att kunna ta tillvara på detaljer i ljudet som annars hade gått till spillo (van der Oord, et al.,

2016). Detta leder i sin tur till mer naturligt ljud, vilket var målet med algoritmen från början.

4.4.2 Residual learning & skip connections

Figure 4. En överblick av ett "residual block" och hela algoritmens arkitektur. Källa: https://arxiv.org/pdf/1609.03499.pdf

Det har visat sig att fler lager (mer djup) i djupa neurala nätverk ofta bidrar till bättre resultat (He,

Zhang, Ren, & Sun, 2015). Problematiken med detta är att fler lager dessutom bidrar till en

långsammare algoritm och större träningsfel. För att lösa det så kallade degraderingsfelet som

uppstår och förbättra inlärningen så kan man använda ”residual learning”. Residual learning

Page 13: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

12

innebär att man gör nätverket djupare, snarare än vidare. Detta sker genom att det skapas

residual-block med flera dilated causal convolutional-lager. Residual connections sker inom varje

lager och mellan lagren används så kallade ”skip connections”, även kallat genvägar (eng.

shortcuts) vilket bilden nedan demonstrerar.

Figure 5. Ett block inom residual learning från originalartikeln. Källa: https://arxiv.org/pdf/1512.03385.pdf

Dessa genvägar ”hoppar över” ett lager och för med sig information från input från lager ett (n)

till output från lager två (n+1) (He, Zhang, Ren, & Sun, 2015). Genom att genvägen genomför en

så kallad ”identity mapping” så läggs det inte till några extra parametrar eller ökar

datorkomplexiteten. Nätverket kan på detta vis använda redan inlärda data och lära sig med hjälp

av dessa istället för att börja om inför varje lager. I figuren representerar f(x)+x det nya lagret, där

x är input och f(x) är mellanlagrets funktion. Genvägen medför att man säkerställer att det nya

lagret lär sig något nytt av nätverket, då man tvingar det nya lagret att lära sig något annat än det

som redan finns kodat. Detta innebär att man inte behöver använda onödig data och man

minskar därmed datorkomplexiteten.

5.4.2 Gated activation units

Inom residual-blocket så använder WaveNet så kallade ”Gated activation units” istället för

”Rectified Linear Units” som nämndes tidigare i rapporten, då detta har visat sig vara mer

effektivt när det handlar om ljudbehandling (van der Oord, et al., 2016). ”Unit” refererar till

aktiveringsfunktionen i ett lager som bidrar till att inputen förändras (Dettmers, 2015). Detta sker

genom att en neurons inputsumma transformeras av aktiveringsfunktionen och skapar nodens

output. Gated activation units är en av de mer komplexa aktiveringsfunktionerna och fungerar

lite i likhet med LSTM-enheter (van der Oord, et al., 2016). Gated activation units är en

kombination av en tanhfunktion och en sigmoidfunktion vilket medför att funktionen är icke-

Page 14: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

13

linjär. Sigmoid och tanh fungerar på liknande sätt och tanh är egentligen sigmoidfunktionen i en

annan skala (Sharma V, 2017). Aktiveringsfunktionen används för att implicera icke-linjäritet till

neuronens output eftersom att den mesta datan i världen är icke-linjär, samt för att bestämma om

en neuron har tillräckligt ”högt värde” för att skicka vidare inputsignalen eller inte.

Figure 6. Gated activation unit. Källa: https://arxiv.org/pdf/1609.03499.pdf

Figuren ovan gestaltar WaveNets Gated activation unit. Sigmoidfunktionen skrivs som σ,

multiplikationstecknet i mitten symboliserar att det är en elementbaserad multiplikation, k står för

det aktuella lagrets index, f är filtret som används, g är gaten och W är ett convolution filter,

vilket även kan ses som en viktmatris (van der Oord, et al., 2016). X kan antas stå för funktionens

aktuella input. Hela Gated activation unit representerar således en elementbaserad multiplikation

mellan en tanh-funktion och en sigmoidfunktion, som tillsammans bildar en ny sorts

aktiveringsfunktion, eller ett aktiveringsblock.

4.3 Extra input

Genom att addera en extra input till algoritmen så kan WaveNet producera den villkorliga

fördelningen av ljudet utefter den inputen (van der Oord, et al., 2016). När det gäller TTS så

innebär det att den extra inputen är själva texten som algoritmen ska skapa ljud av. Algoritmen

guidas på detta vis till att producera ljud utefter just de karakteristiska dragen som texten har.

Lokal betingning (eng. local conditioning) är ett sätt man kan applicera den extra inputen på (van

der Oord, et al., 2016). Textens lingvistiska drag kommer då att transformeras till en tidsserie som

har samma resolution som ljudsignalen. Tidsserien appliceras sedan som extra input i gated

activation unit tillsammans med den ursprungliga ljudsignalen.

5. DISKUSSION

Deepmind och Googles mål att skapa en röst som liknar en människas så mycket som möjligt är

enligt mig ett bra fokuseringsområde då vi nog alla har stött på en automatiserad telefonsvarare

eller GPS som låter omänsklig, vilket bidrar till att det känns lättare och mer ”okej” att bli

irriterad på den eftersom att det är svårt att känna samma sympati till en datoriserad röst som

man gör till en människa. Jag anser att det är ett viktigt steg i utvecklingen om vi människor i

Page 15: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

14

framtiden ska bli mer bemötliga och använda oss av alla de olika hjälpmedel och virtuella

hjälpredor som börjar inta marknaden, så som Google Assistant.

Förutom ovan nämnda fördelar så finns det även en del nackdelar med att en digital röst låter

som en helt vanlig människa. Om man ringer en person eller ett företag och inte hör eller förstår

att man pratar med en robot så kan det ge upphov till irritationer eller känslor av att känna sig

lurad. Ju mer ”naturligt” en robot låter, desto svårare blir det för oss vanliga människor att

särskilja dem från oss. Konsekvenserna av detta kan således bli att allt fler människor förlitar sig

på robotar och anförtror sig till dem med sina känslor och hemligheter. En sådan utveckling kan

tyckas positiv om datan som kommer in behandlas på ett korrekt vis, men det blir snabbt negativt

om datan hamnar i fel händer och missbrukas.

CNN är ett neuralt nätverk som fungerar bra i många sammanhang. Jag anser det positivt att man

har använt denna typ av nätverk i algoritmen och att man ständigt arbetar för att komma framåt i

utvecklingen. Den uppdaterade versionen av WaveNet lanserades i Googles produkter så sent

som år 2017, vilket innebär att det fortfarande är nytt och att många förbättringar kan väntas

komma i framtiden.

Att använda sig av WaveNet eller liknande algoritmer för att producera naturligt tal kan öppna

dörrar för nya möjligheter. Konkateneringssyntes eller paramatrisk talsyntes har restriktionerna

att för att skapa en ny röst så krävs det en helt ny databas med timtals av inspelningar. Att

WaveNet istället kan generera nytt tal utan all den datan innebär att liknande algoritmer i

framtiden kanske kan användas till att smidigare producera röster av personer som inte är

tillgängliga. Det kan exempelvis handla om någon känd skådespelare som har en karaktär i en

film och som har en känd röst, vilken man då skulle kunna gestalta även efter dennes bortgång.

Detta skapar dock annan problematik i form av etiska frågor, men det är en möjlighet för

framtiden.

Page 16: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

15

REFERENSER

Andersson, L. (den 17 September 2013). Machine language: how Siri found its voice. The Verge. Hämtat från https://www.theverge.com/2013/9/17/4596374/machine-language-how-siri-found-its-voice den 28 12 2017

Betters, E., & Langridge, M. (den 6 oktober 2017). What is Google Assistant, how does it work, and which devices offer it? Pocket-lint. Hämtat från Pocket-lint: https://www.pocket-lint.com/apps/news/google/137722-what-is-google-assistant-how-does-it-work-and-which-devices-offer-it den 27 12 2017

Borth, D. E., Stark, W. E., & Lehnert, J. S. (den 18 mars 2016). Telecommunication. Encyclopædia Britannica. Hämtat från https://www.britannica.com/technology/telecommunication/Introduction den 6 januari 2018

Dettmers, T. (den 3 november 2015). Deep Learning in a Nutshell: Core Concepts. NVIDIA Accelerated Computing. Hämtat från https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/#convolutional-neural-network den 3 januari 2018

Dettmers, T. (den 26 mars 2015). Understanding Convolution in Deep Learning. TimDettmers - Making deep learning accessible. Hämtat från http://timdettmers.com/2015/03/26/convolution-deep-learning/ den 2 januari 2018

He, K., Zhang, X., Ren, S., & Sun, J. (2015). Deep Residual Learning for Image Recognition. Las Vegas: IEEE.

Huffman, S. (den 4 oktober 2017). The Google Assistant, powering our new family of hardware. Google Blog. Hämtat från Google Blog: https://www.blog.google/products/assistant/google-assistant-powering-our-new-family-hardware/ den 27 12 2017

Karn, U. (den 11 augusti 2016). An Intuitive Explanation of Convolutional Neural Networks. the data science blog. Hämtat från https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/ den 2 januari 2018

Khan, R. A., & Chitode, J. S. (februari 2016). Concatenative Speech Synthesis: A Review. International Journal of Computer Applications , 136(3). Hämtat från http://www.ijcaonline.org/research/volume136/number3/khan-2016-ijca-907992.pdf den 28 12 2017

Levy, S. (den 24 augusti 2016). The iBrain Is Here—and It’s Already Inside. Wired. Hämtat från Wired: https://www.wired.com/2016/08/an-exclusive-look-at-how-ai-and-machine-learning-work-at-apple/ den 27 december 2017

Rohrer, B. (den 18 augusti 2016). How do Convolutional Neural Networks work? Data Science and Robots Blog. Hämtat från http://brohrer.github.io/how_convolutional_neural_networks_work.html den 28 12 2017

Russell, S. J., & Norvig, P. (2010). Artificial Intelligence: A Modern Approach (Vol. 3). New Jersey: Pearson Education.

Page 17: Google Assistant & WaveNet › ~729G43 › projekt › studentpapper-17 › ... · 2018-01-11 · WaveNet är ett fullständigt convolutional neuralt nätverk (eng. convolutional

[email protected]

16

Sharma V, A. (den 30 mars 2017). Understanding Activation Functions in Neural Networks. The Theory of Everything, Medium. Hämtat från https://medium.com/the-theory-of-everything/understanding-activation-functions-in-neural-networks-9491262884e0 den 7 januari 2018

UCLA. (u.å.). Signal Quantization and Compression Overview. UCLA Engineering. Hämtat från http://www.seas.ucla.edu/dsplab/sqc/over.html den 6 januari 2018

van den Oord, A., Dieleman, S., & Zen, H. (den 8 september 2016). WaveNet: A Generative Model for Raw Audio. Deepmind. Hämtat från Deepmind: https://deepmind.com/blog/wavenet-generative-model-raw-audio/ den 27 12 2017

van der Oord, A., Dieleman, S., Zen, H., Simonyan, K., Vinyals, O., Graves, A., . . . Kavukcuoglu, K. (2016). WaveNet: A Generative Model for Raw Audio. Arxiv. Hämtat från https://arxiv.org/pdf/1609.03499.pdf den 18 12 2017

van der Oord, A., Kalchbrenner, N., Vinyals, O., Espeholt, L., Graves, A., & Kavukcuoglu. (2016). Conditional Image Generation with PixelCNN Decoders. ArXiv. Hämtat från https://arxiv.org/pdf/1606.05328.pdf den 7 januari 2018

van der Oord, A., Walters, T., & Strohman, T. (den 4 oktober 2017). WaveNet launches in the Google Assistant. Deepmind. Hämtat från https://deepmind.com/blog/wavenet-launches-google-assistant/ den 27 december 2017

Yang, J. (den 11 februari 2017). ReLU and Softmax Activation Functions. Hämtat från https://github.com/Kulbear/deep-learning-nano-foundation/wiki/ReLU-and-Softmax-Activation-Functions den 6 januari 2018