Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven...

42
Bachelorscriptie Informatica / Informatiekunde Radboud Universiteit Representatie van spraak in diepe neurale netwerken Auteur: Nikki van der Gouw s4463412 Inhoudelijk begeleider: prof. E. Marchiori [email protected] Tweede begeleiders: dr. O. Scharenborg [email protected] prof. dr. M.A. Larson [email protected] Tweede lezer: MSc, T.M. van Laarhoven [email protected] 27-12-2017

Transcript of Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven...

Page 1: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

BachelorscriptieInformatica / Informatiekunde

Radboud Universiteit

Representatie van spraak in diepeneurale netwerken

Auteur:Nikki van der Gouws4463412

Inhoudelijk begeleider:prof. E. [email protected]

Tweede begeleiders:dr. O. Scharenborg

[email protected]

prof. dr. M.A. [email protected]

Tweede lezer:MSc, T.M. van Laarhoven

[email protected]

27-12-2017

Page 2: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Samenvatting

We onderzoeken in hoeverre het mogelijk is om t-SNE visualisatie te ge-bruiken om inzicht te krijgen in de interne representatie van spraak in diepeneurale netwerken voor de classificatie van klinkers en medeklinkers. Ditdoen we door de output van de verschillende lagen van een diep neuraalnetwerk, dat is getraind om klinkers en medeklinkers te classificeren, te vi-sualiseren. We gebruiken verschillende semantische informatie van de inputals label om inzicht te krijgen in de interne representatie van het netwerk.Deze labels kunnen gebruikt worden om clustering van de input in een be-paalde laag te verklaren. Door de visualisatie van de verschillende lagenmet elkaar te vergelijken kun je zien wat het trainen van het diepe neuralenetwerk doet met de representatie. Hierdoor kunnen we zien dat er dieperin het netwerk steeds meer verschil bestaat tussen de representatie van deklinkers en de medeklinkers. Ook leert het netwerk specifieke kenmerken vande input te onderscheiden, zoals de manier waarop een klank wordt uitge-sproken. Het is dus mogelijk om t-SNE visualisatie te gebruiken om inzichtte krijgen in de interne representatie van spraak in diepe neurale netwerken.

Page 3: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Inhoudsopgave

1 Inleiding 21.1 Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Aanpak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Verwachte resultaten . . . . . . . . . . . . . . . . . . . . . . . 3

2 Voorkennis 42.1 Spraak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Spraakherkenning . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Diepe neurale netwerken . . . . . . . . . . . . . . . . . . . . . 82.4 Input features . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5 Spectrogrammen . . . . . . . . . . . . . . . . . . . . . . . . . 112.6 t-SNE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Gerelateerd onderzoek 16

4 Setup 194.1 Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Diep neuraal netwerk . . . . . . . . . . . . . . . . . . . . . . . 19

4.2.1 Architectuur . . . . . . . . . . . . . . . . . . . . . . . 224.2.2 Input features . . . . . . . . . . . . . . . . . . . . . . . 224.2.3 Training . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5 Resultaten en discussie 245.1 Diep neuraal netwerk . . . . . . . . . . . . . . . . . . . . . . . 245.2 Visualisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.2.1 Klinkers medeklinkers . . . . . . . . . . . . . . . . . . 255.2.2 Correcte classificatie . . . . . . . . . . . . . . . . . . . 275.2.3 Categorieen . . . . . . . . . . . . . . . . . . . . . . . . 295.2.4 Fonemen . . . . . . . . . . . . . . . . . . . . . . . . . 315.2.5 Spectrogrammen . . . . . . . . . . . . . . . . . . . . . 33

6 Conclusies 37

1

Page 4: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Hoofdstuk 1

Inleiding

Spraakherkenning is een onderzoeksgebied binnen de informatica en com-putationele linguıstiek waarbij systemen worden ontwikkeld die gesprokentaal om kunnen zetten naar tekst. In 1952 creeerde Bell Laboratories deeerste machine die getallen kon herkennen [12] en dit is nog steeds een actiefonderzoeksgebied. Spraakherkenning werkt tegenwoordig zo goed, dat hetook commercieel veel gebruikt wordt. Denk aan Siri, Alexa, en verschillendeandere spraakgestuurde systemen voor computers, smartphones enzovoorts.

Spraakherkenning is complex doordat uit alleen het spraaksignaal be-grepen moet worden wat er gezegd wordt. Hierbij zijn veel verschillendefacetten die spraak beınvloeden. Zo heb je de eigenschappen van de spreker,zoals geslacht, leeftijd, dialect en emoties, die een grote invloed hebben op demanier waarop gesproken wordt. Daarbij komen ook technische verschillen,zoals de apparatuur waarmee geluid wordt opgenomen en achtergrondgelui-den. Spraak is een opeenvolging van klanken. Iedere taal heeft een eigen setvan klanken (fonemen) waaruit de taal is opgebouwd. Het Nederlands be-staat bijvoorbeeld uit 46 verschillende fonemen. In de laatste jaren wordendiepe neurale netwerken in spraakherkenningssystemen gebruikt om van eenspraaksignaal te bepalen welke fonemen worden uitgesproken.

Deze diepe neurale netwerken worden veelal als zwarte dozen gezien.Doordat deze neurale netwerken erg groot zijn met soms wel duizendenverbindingen tussen de verschillende neuronen, is het moeilijk om inzicht tekrijgen in hoe ze werken. Dit wordt extra bemoeilijkt door aparte netwerkar-chitecturen. Op het gebied van computer vision zijn verschillende methodenontwikkeld om door middel van visualisatie inzicht te krijgen in de werkingvan neurale netwerken. Er is echter nog weinig bekend over hoe diepe neu-rale netwerken met spraak omgaan. Daarom is het interessant om te zien ofje door middel van visualisatie inzicht kunt krijgen in de representatie vanspraak in diepe neurale netwerken.

2

Page 5: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

1.1 Probleemstelling

In dit onderzoek zullen we kijken hoe de spraak in de verschillende lagenvan het netwerk gerepresenteerd worden door deze te visualiseren met t-SNE.Het classificeren van fonemen is een lastige taak waarbij je veel verschillendeklassen hebt. Dit maakt zowel de training van het netwerk als de visualisatielastiger. Daarom zullen we in ons onderzoek beperken tot een netwerk datgroepen van fonemen kan onderscheiden, namelijk klinkers en medeklinkers.

De onderzoeksvraag van dit onderzoek luidt:

In hoeverre is het mogelijk om t-SNE visualisatie te gebruiken om inzichtte krijgen in de representatie van spraak binnen een diep neuraal netwerkvoor de classificatie van klinkers en medeklinkers?

1.2 Aanpak

Om dit probleem aan te pakken maken we gebruik van een hierarchischeaanpak. Eerst classificeren, visualiseren en analyseren we klinkers en me-deklinkers. Daarna gebruiken we de resultaten van deze analyse om ditnetwerk verder te onderzoeken. De stappen in ons onderzoek zijn als volgt:

· Train een feed-forward neuraal netwerk om klinkers en medeklinkerste classificeren. In hoofdstuk 4.2 beschrijven we het gebruikte neuralenetwerk en in 5.1 presenteren we de classificatieresultaten.

· Visualiseer de representatie van de spraak in de verschillende lagen inhet netwerk met t-SNE en analyseer de afstand tussen de datapuntenin deze visualisatie. Hierbij maken we gebruik van verschillende se-mantische informatie van de spraakinput. We kijken of de spraak eenklinker/medeklinker is, op welke manier deze wordt uitspreken, welkfoneem wordt uitgesproken, of de spraak correct geclassificeerd wordtdoor het netwerk. Tevens kijken we naar de spectrogrammen van despraakinput. In hoofdstuk 5.2 bespreken we de verkregen visualisaties.

1.3 Verwachte resultaten

We verwachten dat het verschil tussen klinkers en medeklinkers in de internerepresentatie van het neurale netwerk in diepere lagen steeds groter wordt.De verwachting is dat sommige semantische informatie gebruikt wordt omonderscheid te kunnen maken tussen deze klassen. Tot slot verwachten wedat de spectrogrammen van de spraakinput inzicht zullen geven in de inte-ressante karakteristieken van deze klassen.

3

Page 6: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Hoofdstuk 2

Voorkennis

2.1 Spraak

Spraak bestaat uit een continue stroom van klanken. De verschillende klan-ken waaruit een taal bestaat worden ook wel fonemen genoemd. Hierbijzorgt ieder foneem voor een andere betekenis van een woord. Zo wordt inhet Nederlands bijvoorbeeld onderscheid gemaakt tussen de ”g”, in ”goed”en de ”h”, in ”hoed”. Voor een Engelsman zullen deze woorden echter het-zelfde klinken, omdat het Engels geen onderscheid kent tussen de ”g” en”h”. Het Nederlands bestaat uit 46 verschillende fonemen. Deze zijn terugte vinden in tabel 4.1. Om het verschil aan te geven tussen spelling en uit-spraak, wordt de fonetische uitspraak tussen // geplaatst. Op deze manierwordt goed fonetisch als /xut/ geschreven.

Het geluid dat iemand voortbrengt bij het praten bestaat uit een rangevan frequenties. Door resonantie worden sommige frequenties versterkt.Deze versterkte frequenties worden formanten genoemd. De toonhoogte vandeze formanten en hun overgangen bepalen welke klank wordt uitgesproken.Door naar de toonhoogte van deze formanten te kijken en hun overgangenwordt bepaald wat er gezegd wordt. Klinkers en medeklinkers worden opeen verschillende manier uitgesproken.

Om een spraaksignaal te visualiseren kun je spectrogrammen gebruiken.Een spectrogram is een grafiek met horizontaal de tijd en verticaal de fre-quentie. Per tijdseenheid krijgt iedere frequentie een kleur. Hoe donkerderdeze kleur, hoe meer energie er in deze frequentie aanwezig is. Een voor-beeld van een spectrogram is te zien in figuur 2.1. Spectrogrammen zijn eenerg nuttige representatie van een geluidssignaal omdat de formanten in dezevisualisatie te zien zijn als donkere lijnen. Hierdoor kunnen ze inzicht gevenin welke soorten klanken er worden uitgesproken. Het is zelfs mogelijk omuit een spectrogram te lezen wat er ongeveer gezegd wordt.

4

Page 7: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Figuur 2.1: Spectogram van een geluidsfragment [13, pagina 13]. Door naarde formanten en transities te kijken kan spraak geıdentificeerd worden.

Figuur 2.2: Spectrogrammen van brits engelse klinkers [5, pagina 185]. Deformanten zitten bij iedere klinker op andere toonhoogten.

5

Page 8: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Klinkers en medeklinkers worden op verschillende manieren uitgespro-ken. Bij de klinkers passeert het geluid ongehinderd de mond. Door de mondin verschillende posities te houden worden andere frequenties versterkt enkrijg je een andere klank (zie figuur 2.2).

In figuur 2.3 zie je hoe alle klinkers worden uitgesproken. Zoals je kuntzien vormen alle klinkers samen een driehoek, vandaar dat dit figuur ookwel een klinkerdriehoek genoemd wordt.

Figuur 2.3: Een schematische klinkerdriehoek, gebaseerd op de formantenin de uitspraak van de IPA door Daniel Jones en John Wells [4]. F1 is deformant met de laagste frequentie en F2 is de formant hierboven. De pijlgeeft de frequentie van de formant aan van laag naar hoog.

De Nederlandse klinkers kunnen worden opgedeeld in de volgende cate-gorieen qua uitspraak:

· Korte klinker: De korte klinkers worden gevolgd door een medeklin-ker in dezelfde lettergreep. Een voorbeeld is de /A/ in kar.

6

Page 9: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

· Lange klinker: De lange klinkers kunnen aan het einde van een let-tergreep voorkomen. Een voorbeeld is de /a/ in naa.

· Diftong: Een diftong is een opeenvolging van twee klinkers binneneen lettergreep. Een diftong verandert dus midden in de uitspraak.Een voorbeeld van een diftong is de /E+/ in tijd.

· Leen klinkers: Leen klinkers worden gebruikt in leenwoorden uit hetFrans en Engels. Zoals de /Y:/ in freule.

· Nasale klinkers: De nasale klinkers zijn ook afkomstig uit franseleenwoorden. Bij nasale klinkers verlaat de lucht via de neusholte hetlichaam. Een voorbeeld is de /U/ in parfum.

Bij medeklinkers wordt het geluid in de mond (gedeeltelijk) tegengehou-den door een venauwing in de keel-mondholte (obstructie). Waardoor heleandere patronen en overgangen ontstaan (zie figuur 2.4).

Figuur 2.4: Spectrogrammen van de woorden ”led, red, wed, yell” [5].

De medeklinkers kunnen in de volgende vier categorieen worden opge-deeld qua manier van uitspreken:

· Plosief : De lucht wordt volledig tegengehouden. Vervolgens wordtdruk uitgeoefend tegen deze blokkade om de lucht in een keer te la-ten ontsnappen. Dit zorgt ervoor dat de lucht explosief naar buitengestuwd wordt. Voorbeelden van plosieven zijn: /k/, /t/ en /p/.

· Nasaal: Bij de productie van nasalen verlaat de lucht het lichaam viade neusholte. Een voorbeelden van een nasaal is de /m/.

· Fricatief: Bij het produceren van fricatieven vind er zo’n obstructieplaats dat er hoorbare wrijving ontstaat. Voorbeelden van fricatievenzijn: /f/ /s/ en /z/.

7

Page 10: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

· Approximant: Approximanten bestaan uit de half-klinkers /w/ en/j/ en de /l/ en /r/. De half-klinkers heten zo omdat er bij hunuitspraak wel obstructie plaatsvind, maar de mondholte wordt nietzodanig afgesloten dat er turbulentie ontstaat. Hierdoor hebben dehalf-klinkers qua uitspraak veel weg van klinkers.

2.2 Spraakherkenning

Spraakherkenning wordt in twee fasen gedaan. In de eerste fase wordt hetspraaksignaal omgezet naar fonemen. In de tweede fase wordt deze stroomaan fonemen verwerkt tot woorden. Een veelgebruikt systeem is een combi-natie van Gaussian Mixture Model (GMM) voor foneem classificatie en Hid-den Markov Model (HMM) voor het verwerken van de fonemen tot woorden.Uit onderzoek blijkt dat het gebruiken van diepe neurale netwerken (DNN)beter werkt voor de classificatie van fonemen dan GMM’s [2].

2.3 Diepe neurale netwerken

Een neuraal netwerk bestaat uit een netwerk van nodes. Een neuraal net-werk is in drie onderdelen op te delen, namelijk een inputlaag, een of meerverborgen lagen en een outputlaag. Een van de basis architecturen voorneurale netwerken zijn fully connected feed-forward netwerken. Hierbij be-staat de input voor een node uit de output van alle nodes in de vorige laag.Figuur 2.5 laat een voorbeeld zien van zo’n diep neuraal netwerk.

Figuur 2.5: neuraal netwerk van drie lagen. [10]

2.4 Input features

Het spraaksignaal moet zo gerepresenteerd worden dat een DNN hiermee ge-traind kan worden. Hiervoor worden filterbank representaties gebruikt. Eenfilterbank representatie is een vector representatie van het spraaksignaal.Deze representatie wordt als volgt gemaakt:

8

Page 11: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

1. Verdeel het audiobestand in verschillende overlappende fra-mes: Voor elk frame zullen we de frequenties analyseren. Om defrequenties van de geluidsgolven te kunnen bepalen op een bepaaldtijdstip is een geluidsopname nodig over een grotere tijdsspanne. Wegaan er hierbij vanuit dat het geluid over kleine tijdsspannen constantis. Op deze manier delen we het geluidsbestand op in meetpuntenmet omringend fragment. Zo krijg je een rij van overlappende frames.In deze stap kun je zelf de afstand tussen de meetpunten en de grotevan de bijbehorende fragmenten kiezen. Standaardwaarden hiervoorzijn elke 5 milliseconden een meetpunt met een framegrootte van 25milliseconden.

2. Bepaal voor elk frame hoeveel energie per frequentie aanwe-zig is: Dit wordt gedaan door een Fast Fourier Transformatie (FFT)uit te voeren op een frame. Uit deze transformatie krijgen we een rijzogenaamde frequency bins, met in elke bin de energie in de bijbeho-rende frequentie. Figuur 2.6 laat zien hoe de FFT het geluidssignaalomzet.

Figuur 2.6: Fourier transformatie van een geluidssignaal [1]. Links staat eengrafiek met op de x-as de tijd en de y-as de amplitude. Rechts staat eengrafiek met op de x-as de frequentie en de y-as de amplitude

De FFT kan frequenties onderscheiden tussen 0 en de nyquistfrequen-tie. De nyquistfrequentie is gelijk aan de helft van de sample frequentie

9

Page 12: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

van het geluidsbestand. Hogere frequenties kunnen niet worden waar-genomen omdat bij hogere frequenties aliasing optreedt. De samplesvan een hoge frequentie zien er dan hetzelfde uit als die van een lagefrequentie waardoor je deze frequenties niet van elkaar kunt onder-scheiden. Een voorbeeld hiervan is te zien in figuur 2.7. Voor meeruitleg over aliasing, zie [11].

Figuur 2.7: Voorbeeld van Aliasing. Met de gebruikte sample rate, zijn deoranje en groene geluidsgolven niet van elkaar te onderscheiden.

3. Maak een filterbank verdeling voor de verschillende frequen-ties: Een filterbank is een verzameling van filters waarbij iedere filtereen andere frequentierange uit het audiosignaal filtert. Elke filter be-staat uit een reeks frequenties met voor elke frequentie een waardedie aangeeft hoe zwaar deze frequentie meetelt in de filter. Standaardwordt voor het bepalen van de filters de mel schaal gebruikt. Bij dezeschaal worden de frequenties net zo verdeeld als bij het menselijk ge-hoor. Hierbij wordt meer aandacht besteed aan lage tonen dan aanhoge. In figuur 2.8 zie je een voorbeeld van een filterbank verdeling opbasis van de mel schaal. Deze verdeling werkt goed voor automatischespraakherkenning.

10

Page 13: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Figuur 2.8: Voorbeeld van mel schaal filterbank [13, pagina 44]. Iedere rodedriehoek is een filter in de filterbank.

4. Bepaal hoeveel energie er per filter van de filterbank aanwe-zig is: Dit doe je door de energie in de frequency bins uit stap 2 tevermenigvuldigen met de bijbehorende waarden van de filterbank uitstap 3. Hierbij krijg je voor elk filter een waarde met de energie die inde bijbehorende frequenties aanwezig is. Als eindresultaat krijg je dusper frame een vector met voor elke filter uit de filterbank de energiein de bijbehorende frequentie range.

2.5 Spectrogrammen

Het spectrogram van een geluidssignaal kan worden berekend door de vol-gende formule toe te passen: Spectrogram(X) = 20 ∗ 10log(abs(FFT (X))).Hierbij is X een frame van het audiosignaal. Spectrogrammen kunnen dusvanuit dezelfde FFT data omgerekend worden als de filterbank features.

2.6 t-SNE

t-distributed neighbour embedding (t-SNE) is een algoritme voor dimensiereductie dat in 2009 werd geıntroduceerd door van der Maaten en Hinton[7]. Dit algoritme kan gebruikt worden om multidimensionale data terug tebrengen naar 2 of 3 dimensies waardoor deze met scatter plots gevisualiseerdkan worden. Dit algoritme projecteerd hoog-dimensionale datapunten dieveel overeenkomst hebben bij elkaar en punten die veel verschillen juist vervan elkaar af.

11

Page 14: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Input en output:

· Data: hoog-dimensionale dataset met n datapuntenX = x1, x2, ..., xn.

· Parameters: perplexiteit Perp. Deze parameter kun je zien als hetaantal verwachtte buren van een datapunt.

· Optimalisatie parameters: aantal iteraties T , learning rate η, mo-mentum a(t).

· Resultaat: laag dimensionale representatie met n projectiepuntenY T = y1, y2, ..., yn. Dit is de gevonden representatie na T iteraties vande optimalisatie.

Voorbereiding:

1. Bepaal voor elk paar xi, xj ∈ X de conditionele kans pj|i: Eerstwordt tussen alle punten in X de euclidische afstand berekend. Vervol-gens worden deze afstanden omgezet in conditionele kansen. Hierbijstaat pj|i voor de kans dat xj gekozen wordt als de buur van xi alseen buur wordt gekozen in proportie tot de kansdichtheid een normaaldistributie Pi rond xi. Figuur 2.9 geeft een illustratie van hoe ditwerkt.

Figuur 2.9: Voorbeeld hoe pj|i berekend wordt.

De formule hiervoor is:

pj|i =exp(− ‖ xi − xj ‖2 /2σi)2∑

k 6=lexp(− ‖ xi − xk ‖2 /2σ2)

pi|i = 0

12

Page 15: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Hierbij is σi de variantie van de normaal distributie Pi rond xi. Iederpunt xi ∈ X heeft zijn eigen σi. In een dicht gebied is een kleineσ beter en in schaars gebied juist een grote. De σi wordt zodaniggekozen dat perplexiteit van de bijbehorende normaal verdeling Pigelijk is aan de vooraf gekozen Perp. De perplexiteit van de normaalverdeling wordt als volgt berekend: Perp(Pi) = 2H(Pi), waarbij H(Pi)de Shannon entropie van Pi voorstelt: H(Pi) = −

∑jpj|ilog2pj|i. Om

de σi te vinden die Pi met de juiste perplexiteit oplevert, wordt binarysearch gebruikt.

2. Bepaal voor elk paar xi, xj ∈ X de kans pij:

pij =pj|i + pi|j

2n

pii = 0

De conditionele kans pi|j kan heel anders zijn dan de conditionele kanspj|i. Figuur 2.10 laat hier een voorbeeld van zien.

Figuur 2.10: Punten in een 2D vlak. De conditionele kans dat B A als buurzal kiezen is groot, maar de kans is klein dat A B als buur zal kiezen.

Om een gezamenlijke pij te krijgen, worden de kansen pi|j en pj|i ge-middeld.

3. Pak een initiele oplossing voor Y 0: De initiele 2D of 3D projectie-punten voor de oplossing Y 0 worden gekozen uit een normaal verdelingmet een kleine variantie rond de oorsprong.

Y 0 = y1, y2, ..., yn ∈ N(0, 10−4I)

4. Bepaal voor elk paar yi, yj ∈ Y 0 de kans qij: De kans voor qijwordt op een vergelijkbare manier berekend als pi|j . Maar in plaats vaneen normaal verdeling wordt een t-verdeling gebruikt. De t-verdeling

13

Page 16: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

heeft hogere waarden aan de rand van de distributie dan een normaalverdeling, zie figuur 2.11. Hierdoor blijft er meer afstand in de laag-dimensionale representatie van ver afgelegen datapunten in X.

qij =(1+ ‖ yi − yj ‖2)−1∑

k 6=i(1+ ‖ yk − yi ‖2)−1

qii = 0

Figuur 2.11: t-verdeling en normaal verdeling.

Optimalisatie:Het doel van t-SNE is een Y te vinden waarbij de conditionele kansen

van Y gelijk zijn aan die van X. Dit doen we door de Kullback-Leiblerdivergentie als kost functie te gebruiken. De kost functie ziet er als volgtuit:

C = KL(P ||Q) =∑i

∑j

pij logpijqij

De Kullback-Leibler divergentie is asymetrisch en geeft een hoge prijs voorhet ver weg representeren van dichtbijgelegen punten in X. En juist een lageprijs voor het dichtbij representeren van ver weg liggende punten in X. Omdeze kost functie te minimaliseren worden T iteraties van gradient descentgebruikt. Hierbij wordt onderstaand algoritme T keer herhaald.

14

Page 17: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

1. Voer T iteraties uit met t als nummer van de huidige iteratie:

(a) Bepaal voor elk paar yi, yj uit Y t−1 de kans qij:

qij =(1+ ‖ yi − yj ‖2)−1∑

k 6=i(1+ ‖ yk − yi ‖2)−1

qii = 0

(b) Bereken de gradient δCδyi

voor elke yi ∈ Y t−1 met de vol-gende formule:

δC

δyi= 4

∑j

(pij − qij)(yi − yj)(1+ ‖ yi − yj ‖2)−1

(c) Bereken een nieuwe oplossing Y t voor elke yi ∈ Y t−1 metde volgende formule:

yti = yt−1i + ηδC

δyi+ a(t)(yt−1i − yt−2i )

Hierbij wordt ieder punt in Y t−1 een stukje verplaatst op ba-sis van de berekende gradient en het momentum van de vorigeiteraties.

Het t-SNE algoritme garandeert niet dat de beste oplossing gevondenwordt. Het kan dus zijn dat verschillende runs van het algoritme verschil-lende resultaten geeft. Het artikel van Wattenberg, Viegas, and Johnsongeeft een mooie illustratie hoe t-SNE gebruikt kan worden en wat het effectvan de verschillende parameters is [18].

15

Page 18: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Hoofdstuk 3

Gerelateerd onderzoek

t-SNE is al eerder gebruikt om te analyseren hoe fonetische classificatiewerkt in diepe neurale netwerken.

Mohamed, Hinton, and Penn gebruiken 2D t-SNE embeddings om deinput features bij Deep Belief Networks (DBN’s) te vergelijken [9]. Hierbijvergeleken zij 2 netwerken met elkaar waarbij de eerste met filterbank featu-res is getraind en de tweede met MFCC features. Uit een vergelijking van deaccuracy blijkt dat het netwerk dat getraind is met filterbank features beterpresteert dan het netwerk met MFCC features. Om een beter inzicht tekrijgen waarom dit het geval is visualiseren zij de originele features. Hieruitblijkt dat filterbanks veel meer interne structuur bezitten, zoals te zien infiguur 3.1.

16

Page 19: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Figuur 3.1: Visualisatie van MFCC features en filterbank features [9, pagina4275]. Elke kleur representeert een andere spreker. Filterbank features zijnveel meer geclusterd dan de MFCC features. Dit houdt in dat filterbankfeatures meer interne structuur bezitten dan MFCC features.

17

Page 20: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Op dezelfde wijze visualiseerden zij ook de activaties van de verschillendelagen in het DBN. Hieruit blijkt dat dezelfde klanken als filterbank featuremeer gelijkenis vertonen dan als MFCC feature. Zeker in de eerste lagenvan een DBN is een beter clustering te zien bij filterbank features.

In het onderzoek van Mohamed et al. wordt t-SNE gebruikt om de ge-lijkenis tussen features te visualiseren. Hieruit blijkt dat in de verschillendelagen echte clusters te zien zijn. Dit maakt het interessant om te kijkenwaarom bepaalde input precies geclusterd is en zo te achterhalen hoe spraakgerepresenteerd wordt. Dit zullen we in ons onderzoek doen door te kijkennaar verschillende semantische informatie van de input.

2D t-SNE wordt ook toegepast bij het construeren van een ”brain mo-del” in het artikel van Sim [14]. In zijn artikel past Sim deze methode toeop 2 DNN’s die getraind zijn voor fonetische classificatie. Maar zijn me-thode is ook op andere netwerken toepasbaar. Bij deze methode kijk je naareen attribuut van de input features, zoals het bijbehorende foneem, achter-grondgeluid of de bijbehorende spreker. Om een brain model te construeren,creeert Sim voor elke node een zogenaamde activatie vector. Deze activatievector geeft voor elke mogelijke waarde van de attribuut aan hoeveel gewichtdeze node heeft om deze waarde te krijgen. Deze vectoren kun je gebruikenom te zien welke nodes daadwerkelijk bijdragen aan het toekennen van eenattribuut. Hierdoor is het mogelijk om nutteloze nodes uit je netwerk teprunen. Deze activatie vectoren kunnen ook gevisualiseerd worden door deactivatie vectoren met behulp van t-SNE naar 2D te projecteren. Hierdoorkun je zien welke nodes een bijdrage leveren aan het classificeren van be-paalde attributen. Sim heeft bovenstaande techniek verder ontwikkeld totSensitivity-Characterised Activity Neurogram’s (SCAN) [15].

In het onderzoek van [14, 15] wordt gekeken naar de activatie van lossenodes. Hierbij wordt gekeken hoe nuttig een node is om tot een bepaaldeclassificatie te komen. Dit is erg nuttig om een netwerk te optimaliseren,maar geeft weinig inzicht over de spraakeigenschappen die het netwerk ge-bruikt om het spraaksignaal juist te classificeren. En dit is juist waar we indit onderzoek naar geınteresseerd zijn.

In ons onderzoek gebruiken we 2D t-SNE om de activaties in de ver-schillende lagen van een neuraal netwerk te visualiseren. Hierbij verwachtenwe dat er in deze representatie van de verschillende lagen clusters bestaandie corresponderen met klinker/medeklinker klassen. En dat deze clusteringin diepere lagen steeds compacter wordt. In de eerste laag van het netwerkworden de activaties direct bepaald door input features. Daarom verwachtenwe dat de clustering in de eerste laag direct verband heeft met hoe de inputfeatures eruit zien. Om dit te visualiseren gebruiken we ook spectrogram-men als label voor de datapunten in de visualisatie van de eerste laag. Inde volgende lagen zal de relatie tussen de spectrogrammen en de clusteringsteeds minder worden.

18

Page 21: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Hoofdstuk 4

Setup

In dit hoofdstuk beschrijven we de gebruikte opzet om de visualisatie meete testen en waarom juist hiervoor gekozen is.

4.1 Dataset

Voor het trainen van ons model wordt het Corpus Gesproken Nederlands(CGN) gebruikt (http://lands.let.ru.nl/cgn/). Deze dataset bestaatuit verschillende soorten spraak in zowel het Nederlands als het Vlaams.Hier hebben we ons beperkt tot voorgelezen spraak in het Nederlands. Bijvoorgelezen spraak wordt beter gearticuleerd dan bij spontane spraak waar-door classificatie makkelijker is. Dit onderdeel van CGN bestaat uit 135.071woorden met een bijbehorende fonetische transcriptie. Een lijst met allefonemen en een voorbeeld van deze klank in een woord is te vinden in tabel4.1.

Niet alle fonemen komen evenveel voor in het Nederlands. Zo komenleen klinkers en nasale klinkers bijna niet voor. Daarom voegen we dezefonemen samen met gangbare fonemen. Hierdoor houden we een verdelingover zoals in tabel 4.2. Deze verdeling zullen we in de rest van dit onderzoekaanhouden.

4.2 Diep neuraal netwerk

Voor de klinker/medeklinker classificatie zullen we een netwerkarchitectuurgebruiken dat ook gebruikt wordt voor foneem classificatie. Als een netwerkin staat is fonemen te onderscheiden, zal het ook in staat zijn groepen van fo-nemen te onderscheiden. Daarom kan voor klinker/medeklinker classificatiedezelfde netwerkarchitectuur worden gebruikt. Bovendien worden hier neu-rale netwerken voor gebruikt met veel nodes per laag. Hierdoor kunnen wekijken hoe t-SNE presteert met hoog-dimensionale data. De focus van dezescriptie ligt bij de visualisatie van het neurale netwerk. Daarom hebben we

19

Page 22: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Tabel 4.1: Gebruikte fonemen in CGN gegroepeerd op medeklinker/klinker.Aangepast van [16].

(a) Medeklinkers in CGN

Categorie Voorbeeld Foneem

Plosieven put p

bad b

tak t

dak d

kat k

goal g

Fricatieven f iets f

vat v

sap s

zat z

sjaal S

ravage Z

licht x

regen G

geheel h

Nasalen lang N

mat m

nat n

oranje J

Approximanten lat l

rat r

wat w

jas j

(b) Klinkers in CGN

Categorie Voorbeeld Foneem

Korte klinkers lip I

leg E

lat A

bom O

put Y

gelijk @

Lange klinkers liep i

buur y

leeg e

deuk 2

laat a

boom o

boek u

Diftongen wijs E+

huis Y+

koud A+

Leen klinkers scene E:

freule Y:

zone O:

Nasale klinkers vaccin E∼croissant A∼conge O∼parfum Y∼

20

Page 23: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Tabel 4.2: Gebruikte fonemen en categorieen in dit onderzoek.

(a) Medeklinkers in CGN

Categorie Foneem

Plosieven p

b

t

d

k

g

Fricatieven f

v

s

z, Z

S

x

G

h

Nasalen N

m

n

Approximanten l

r

w

j, J

(b) Klinkers in CGN

Categorie Foneem

Korte klinkers I

E, E∼, E:

A, A∼O O∼ O:

Y, Y∼, Y:

@

Lange klinkers i

y

e

2

a

o

u

Diftongen E+

Y+

A+

21

Page 24: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

gekozen om een basic fully-connected feed-forward DNN te gebruiken met 3lagen. Als basis zullen we het netwerk gebruiken zoals beschreven door Mo-hamed, Dahl, and Hinton in hun onderzoek [8]. Om de training nog verderte vereenvoudigen maken we een paar aanpassingen op deze setup.

4.2.1 Architectuur

In hun onderzoek gebruiken Mohamed et al. generative pre-training voorde initializeren van de nodes. Deze methode kost echter veel tijd. Uit hetonderzoek van Zeiler et al. blijkt dat door het gebruik van rectified linearunits (RELU) en random initialisatie geen pre-training nodig is [19]. Voorde training van ons netwerk gebruiken we daarom RELU units in plaats vanpre-training. Ons netwerk ziet er als volgt uit:

· Aantal lagen: 3.

· Units per laag: 1024.

· Type units: RELU.

· Output: softmax.

· Loss functie: crossentropy.

4.2.2 Input features

Voor de input features gebruiken we filterbanks in plaats van MFCC’s. Ditdoen we omdat filterbanks het spraaksignaal beter representeren en eenbetere spraakherkenning opleveren [9]. Onze input features zien er als volgtuit:

· Audio splitsing: frames van 25 ms met elke 10 ms een nieuw frame.

· Aantal filterbanks: 24.

· Splicing: 5. (Gebruik een context van 5 frames voor en 5 frames na).

Input features worden alleen gemaakt van klinker of medeklinker framesmet genoeg context frames om de input feature compleet te maken. Deeerste en laatste vijf frames van een audio bestand worden dus niet alsinput feature gebruikt.

Voor de labeling van de input features gebruiken we de fonetische trans-criptie van de dataset. Deze bestaat uit een reeks begin- en eindtijden enhet foneem dat binnen deze tijdspanne wordt uitgesproken. Deze begin- eneindtijden worden gebruikt om te zien welk foneem er binnen een frame uit-gesproken wordt. Als binnen een frame twee fonemen worden uitgesproken,dan wordt het foneem toegekend dat het grootste deel van de tijd wordtuitgesproken. Vervolgens hebben we deze framelabels en tabel 4.1 gebruiktom te bepalen of een frame bij een klinker of medeklinker hoort.

22

Page 25: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

4.2.3 Training

Bij de training van het netwerk wordt 80% van de dataset voor traininggebruikt en 20% als testset. Hiervoor wordt de data random gesplitst. Hetnetwerk wordt voor 20 epochen getraind, waarbij we 20 keer alle input fea-tures langs gaan om het netwerk te trainen. Om overfitting te voorkomenen het netwerk efficienter te trainen wordt het netwerk met minibatches van128 inputs per keer geoptimaliseerd. In tegenstelling tot Mohamed et al.gebruiken we Adam als optimizer [3]. Deze optimizer werkt beter dan destandaard gradient descent optimizer [17]. Onze training ziet er als volgtuit:

· Splitsing dataset: random split met de verhouding 80/20 train/test.

· Aantal epochs: 20.

· Minibatches: 128.

· Optimizer: Adamoptimizer met learning rate 1E − 4.

In spraakherkenning wordt voor de evaluatie van een netwerk de foneemerror rate (PER) gebruikt. Hierbij wordt de output van het neurale netwerkvoor elk frame dat bij een foneem hoort gebundeld tot een resultaat. Bijonze visualisatie zullen we naar de werking van het neurale netwerk kijkenen dus naar de verwerking van de losse frames. Daarom zullen we bij deevaluatie van ons netwerk alleen kijken naar de error rate per frame.

Onze dataset wordt random gesplitst in een trainingsset en testset. Dezesplitsing kan invloed hebben op de prestatie van ons neurale netwerk. Daaromwordt de training van ons netwerk vijf keer herhaald met elke keer een nieuwerandom splitsing van de dataset. Hierdoor kunnen we de prestatie van de vijfnetwerken met elkaar vergelijken en zien hoeveel invloed de dataset splitsinghierop heeft.

Dit werk is uitgevoerd op de Nederlandse e-infrastructuur met de support van deSURF Cooperative.

23

Page 26: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Hoofdstuk 5

Resultaten en discussie

5.1 Diep neuraal netwerk

We gebruiken de frame error rate om te bepalen hoe goed ons netwerk ge-traind is. Onze vijf getrainde netwerken halen een gemiddelde accuracy van85,5% met een standaarddeviatie van 0,003079, zie tabel 5.1. Het randomsplitsen van de dataset heeft dus weinig invloed op de prestatie van hetgetrainde netwerk.

netwerk test accuracy train accuracy

netwerk 1 0.848374431472 0.84836106599

netwerk 2 0.857841984772 0.857757116751

netwerk 3 0.856413076142 0.856874111675

netwerk 4 0.857618304569 0.857666030457

netwerk 5 0.854819055838 0.854964045685

gemiddeld (standaarddeviatie) 0.8550133706 (0.003488816) 0.8551244741 (0.003527633)

Tabel 5.1: accuracy van de netwerken. Elk netwerk is met een eigen randomtestset en trainset getraind.

Deze accuracy houdt in dat gemiddeld 14.5% van de frames verkeerdgeclassificeerd wordt. De classificatie klinker/medeklinker heeft betrekkingop een foneem als geheel. Om te bepalen of een foneem een klinker is, moetde classificatie van alle bijbehorende frames geclusterd worden. Hierdoor kanhet zijn dat niet alle frames goed geclassificeerd worden, maar het foneemals geheel toch een correcte classificatie krijgt. Deze stap voeren wij nietuit. Daarom zal onze error rate waarschijnlijk lager zijn als je naar foneemerror rate kijkt.

24

Page 27: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

5.2 Visualisatie

In deze sectie zullen we de verschillende lagen in ons getrainde netwerkvisualiseren en analyseren. Hiervoor gebruiken we getraind netwerk 2. Ditnetwerk heeft met 85,8% de hoogste accuracy van onze getrainde netwerken(zie tabel 5.1). Voor de visualisatie hebben we 1024 random frames uit detestset gebruikt als input. Bij het maken van de plots hebben we de volgendet-SNE instellingen gebruikt:

1. Learning rate: 10

2. Perplexiteit: 25

3. Iteraties: laat het algoritme net zo lang optimaliseren totdat er geenverandering meer plaatsvindt.

We zijn tot deze waarden gekomen door plots te maken van de input datamet verschillende t-SNE instellingen. Hieruit is gebleken dat vooral de per-plexiteit een belangrijke factor is voor de uitkomst van het algoritme. Bijeen te kleine waarde komen alle datapunten ver uit elkaar en is er geen clus-tering. En bij te grote waarde komen alle datapunten bij elkaar te liggen. Degekozen instellingen lijken voor elke laag een bruikbaar plot op te leveren.

Om het overzicht te bewaren worden niet alle plots behandeld in dithoofdstuk. Alle plots zijn terug te vinden op https://github.com/Syluyi/

DNN/tree/master/embeddings.

5.2.1 Klinkers medeklinkers

Ons netwerk is getraind om klinkers en medeklinkers te onderscheiden. Doorper laag te kijken bij welke klasse de spraakinput behoort, kun je zien inhoeverre de verschillende klassen van elkaar verschillen in die laag. Het t-SNE algoritme plaatst namelijk input dat erg op elkaar lijkt, dicht bij elkaaren input dat veel verschilt ver uit elkaar.

25

Page 28: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

(a) Originele input van het netwerk. (b) Laag 1 van het netwerk.

(c) Laag 2 van het netwerk. (d) Laag 3 van het netwerk.

: klinkers : medeklinkers

Figuur 5.1: Representatie van de input in de verschillende lagen van hetnetwerk.

In figuur 5.1b zie je de representatie in de eerste laag van het netwerk.Hier zie je al een licht verschil in de representatie van de klinkers en mede-klinkers. De meeste klinkers bevinden zich links in het plot en de meestemedeklinkers rechts. Er is echter geen scheidslijn te trekken in deze tussende klinkers en medeklinkers. Er zijn veel medeklinkers die dicht bij klinkersliggen en omgekeerd.

In 5.1c zie je de representatie in laag 2 van het netwerk. In de tweede

26

Page 29: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

laag lijkt er een scheidslijn te zijn ontstaan tussen de klinkers onder en demedeklinkers boven. Er zijn echter veel punten die aan de verkeerde kant vandeze scheidslijn liggen. De datapunten zijn in de tweede laag meer verspreiddan in de eerste laag. Er is ook duidelijkere clustervorming te zien, waarbijdatapunten van dezelfde klasse dichter bij elkaar liggen en de afstand totdatapunten buiten de groep juist groter zijn.

In 5.1d zie je de representatie in de derde laag van het netwerk. Indeze laag zie je duidelijke gescheiden clusters. Rechtsboven is een clustervan medeklinkers te zien. Linksonderin zie je een cluster met overwegendklinkers en rechts onderin zijn zowel klinkers als medeklinkers te vinden. Erzijn nog steeds een aantal punten die in een ’verkeerd’ cluster lijken te zitten.Het is interessant om te zien of deze punten ook verkeerd geclassificeerdworden. Dit zullen we in de volgende sectie bekijken.

In de verschillende plots van figuur 5.1 is te zien dat niet alle datapunteneven ver van elkaar liggen. Het is interessant om te onderzoeken waaromdeze punten juist bij elkaar geplaatst worden. We zullen hier in secties 5.2.3,5.2.4 en 5.2.5 verder naar kijken.

5.2.2 Correcte classificatie

Ons netwerk heeft een accuracy van 85,8%. Dit betekent dat 14,2% vande spraakinput verkeerd geclassificeerd wordt. Dit geldt ook voor de inputdie voor de plots gebruikt zijn. Door bij elke datapunt aan te geven of debijbehorende spraakinput correct geclassificeerd is, kunnen we zien waar inde plots zich incorrecte datapunten bevinden. De representatie in de laatstelaag van het netwerk wordt gebruikt om de spraakinput mee te classificeren.Daarom zullen we kijken naar de correcte classificatie in de laatste, derdelaag van het netwerk.

27

Page 30: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

: correct geclassificeerde medeklinker : correct geclassificeerde klinker

: incorrect geclassificeerde medeklinker : incorrect geclassificeerde klinker

Figuur 5.2: Representatie in laag 3 van het netwerk met correctheid van declassificatie als label.

In Figuur 5.2 is te zien waar de incorrect geclassificeerde spraakinputzich in de derde laag van het netwerk bevindt. Hierin is te zien dat demeeste datapunten die zich in een cluster van de andere klasse bevinden in-derdaad incorrect geclassificeerd worden. De clustering in de representatievan een laag zegt dus iets over hoe deze datapunten geclassificeerd zullenworden. Deze clustering is echter niet perfect. Doordat het aantal dimensiesgereduceerd wordt, is het onmogelijk om alle onderlinge relaties correct tebehouden. Dit is goed terug te zien in figuur 5.3. Hier komt de dichtst-bijzijnde spraakinput in de hoog-dimensionale ruimte niet overeen met deafstand in de laag-dimensionale representatie.

28

Page 31: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Figuur 5.3: De 50 meest dichtstbijzijnde buren van de aangewezen klinkerin 5.2 in de hoog-dimensionale ruimte (rood). 0 zijn klinkers en 1 zijnmedeklinkers.

5.2.3 Categorieen

De representatie van de spraak is in de lagen van het netwerk geclusterd.Waarom worden juist deze punten bij elkaar geclusterd? De klinkers en me-deklinkers zijn op te delen in zeven categorieen op basis van de manier vanuitspreken. Deze indeling is terug te vinden in tabel 4.2. De klinkers zijn opte delen in de categorieen korte klinker, lange klinker en diftong. De mede-klinkers bestaan uit de categorieen fricatief, plosief, nasaal en approximant.De manier van uitspreken zorgt ervoor dat de spraakinput van elke catego-rie er anders uitziet. Door naar de representatie in de verschillende lagente kijken, kunnen we zien hoe in ons netwerk met dit onderscheid wordtomgegaan.

29

Page 32: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

(a) Originele input van het netwerk. (b) Laag 1 van het netwerk.

(c) Laag 2 van het netwerk. (d) Laag 3 van het netwerk.

: korte klinker : lange klinker : diftong : approximant

: plosief : fricatief : nasaal

Figuur 5.4: Representatie in de verschillende lagen van het netwerk met decategorieen als label.

In figuur 5.4b zie je de representatie van de spraakinput in de laag 1van het netwerk. De plosieven, fricatieven en nasalen hebben in deze eerstelaag een eigen cluster. De spraakinput van de overige categorieen zijn meerverspreid. Als we de representatie van de eerste laag met de originele inputvergelijken valt op dat de nasalen in de eerste laag van het netwerk meer bij

30

Page 33: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

elkaar liggen dan in de originele input. Hoewel de klinkers nog steeds doorelkaar lopen, zit er meer afstand tussen de verschillende datapunten.

De representatie in laag 2 van het netwerk lijkt erg op die van laag1, zie figuur 5.4c. De globale plaatsing van de verschillende datapuntenis hetzelfde. De datapunten van de verschillende categorieen liggen echternet dichter bij elkaar. Ook de verschillende categorieen klinkers lijken meergeclusterd. De lange klinkers lijken zich in drie clusters op te delen in drieclusters met tussen deze drie clusters de korte klinkers.

In de derde laag zijn duidelijke clusters ontstaan, zie 5.4d. Plosievenen fricatieven vormen samen een cluster ver van de andere datapunten. Denasalen zijn ook bij elkaar geplaatst. De lange klinkers zijn in drie clustersopgedeeld met de korte klinkers hier tussenin net zoals de diftongen. Deapproximanten zijn de enige categorie die door heel het plot verspreid zijn.

Hoewel ons netwerk getraind is om klinkers en medeklinkers te onder-scheiden, maakt ons netwerk in de representatie van de spraakinput ookonderscheid tussen de categorieen van fonemen. Vooral de representatie vande spraakinput in de derde laag van het netwerk levert veel onderscheidtussen deze categorieen. Dit kunnen we vergelijken met de oorspronkelijkeinput van figuur 5.4a. De originele input features bezitten ook onderscheidtussen de verschillende categorieen. De fricatieven en plosieven vormen eeneigen cluster, maar de overige categorieen lopen door elkaar. Hiermee ver-geleken biedt de representatie in laag 3 van het netwerk meer onderscheid.Ons netwerk heeft dus geleerd deze categorieen te onderscheiden.

De approximanten lijken qua uitspraak erg op de manier waarop klin-kers worden uitgesproken. Hierdoor is het logisch dat zij bij de klinkersgegroepeerd worden. Hierdoor worden veel approximanten verkeerd geclas-sificeerd. Een manier om de accuracy van ons netwerk te verbeteren is om deapproximanten als klinker te classificeren. Dit is ook de reden waarom Liu,Tsao, and Chang voor het classificeren van Chinese klinkers en medeklinkersde approximanten als klinker gecategoriseerd hebben [6].

5.2.4 Fonemen

In het vorige sectie zagen we dat de lange klinkers in drie clusters verdeeldzijn. Om te kijken waarom dit zo is, zullen we naar nog specifiekere in-formatie moeten kijken dan alleen de categorie. Daarom zullen we naar defonemen als label kijken.

31

Page 34: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

: a : A : A+ : 2 : p : b : t : d : k

: y : Y : Y+ : @ : f : v : s : z : S

: e : E : E+ : u : x : G : h : N : m

: o : O : i : I : n : l : r : w : j

Figuur 5.5: Laag 3 van het netwerk, gekleurd op fonemen

In de drie clusters met lange klinkers in de laatste laag van het netwerkbestaan uit verschillende fonemen. Het cluster boven (bruin) bestaat uit/o/’s. Het cluster links (oranje) bestaat uit /a/’s en het cluster onder (groen)bestaat uit /i/’s en /e/’s. Het is interessant om te zien dat ook de kortevorm van de klinker bij de lange klinker geclusterd is; Dus /A/ ligt bij de/a/, de /O/ licht bij de /o/ en de /E/ ligt bij de /e/. De plaatsing van dezeklinkers komt overeen met de klinkerdriehoek, zie figuur 2.3. De /u/ ligteigenlijk nog verder van de /a/ en /i/ dan de /o/, maar deze klank komt inonze visualisatie maar heel weinig voor.

32

Page 35: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

(a) Originele input van het netwerk. (b) Laag 3 van het netwerk.

: a : A : A+ : 2 : p : b : t : d : k

: y : Y : Y+ : @ : f : v : s : z : S

: e : E : E+ : u : x : G : h : N : m

: o : O : i : I : n : l : r : w : j

Figuur 5.6: Plot van de originele input en de representatie in de derde laagvan het netwerk, gekleurd op foneem.

Het netwerk heeft als doel het classificeren van klinkers en medeklin-kers. Hierbij moet hij de generieke kenmerken van deze klassen achterhalen.Daarom is het interessant dat het netwerk toch onderscheid maakt tussendeze specifieke fonemen. In figuur 5.6 vergelijken we de representatie in laag3 van het netwerk met de originele input. In de originele input zijn dezefonemen niet zo sterk geclusterd als in de derde laag van ons netwerk. Onsnetwerk heeft dit onderscheid dus zelf leren maken. Dit komt waarschijn-lijk omdat we een heel groot netwerk gebruikt hebben om deze classificatieuit te voeren. Hierdoor heeft ons netwerk extra capaciteit om dit onder-scheid te kunnen maken. In het onderzoek van Liu et al. werd een veelkleiner netwerk gebruikt om klinker/medeklinker classificatie uit te voeren[6]. Mogelijk wordt dit onderscheid in zo’n klein netwerk niet gemaakt.

In de plots van figuur 5.5 en 5.6 valt op dat sommige datapunten een(bijna) identieke kleurcode hebben. Hierdoor is het lastig om de verschil-lende fonemen te onderscheiden. Hier komt tevens bij dat datapunten over-lappen, waardoor het nog lastiger is de goede kleur te bepalen. Anderesoftware gaat mogelijk anders om met veel verschillende labels waardoor erin deze situatie beter leesbare plots worden gemaakt.

5.2.5 Spectrogrammen

In de vorige paragrafen hebben we naar verschillende aspecten van de inputgekeken. Het is ook mogelijk om de input zelf te visualiseren met spectro-grammen. Dit doen we door de FFT frequency bins te visualiseren die weook voor het genereren van de input features gebruikt hebben. Om van de

33

Page 36: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

FFT frequency bins een spectrogram te kunnen maken moeten deze waardenomgezet worden naar decibel (dB). In figuur 5.7a zie je hoe zo’n spectro-gram eruit ziet. In dit spectrogram zijn de verschillende fonemen duidelijkte onderscheiden door naar de plaatsing van de formanten te kijken en hunovergangen.

(a) Spectrogram van het hele woord uitkijken. (b) Spectrogram van eeninput feature rond de t.

Figuur 5.7: Filterbanks gegenereerd van FFT frequency bins voor het woorduitkijken. De verticale as geeft de frequentie weer in Hz. De horizontale asgeeft de tijd in milliseconden. De kleur geeft de energie binnen een frequentieweer in decibel.

De input features voor ons netwerk bestaan steeds uit 11 frames. Infiguur 5.7b zie je hoe een zo’n input feature eruit ziet.

34

Page 37: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

(a) Originele input van het netwerk. (b) Laag 1 van het netwerk.

(c) Laag 2 van het netwerk. (d) Laag 3 van het netwerk.

Figuur 5.8: Plot van de verschillende lagen van het netwerk. Met als labeleen spectrogram van de input.

In figuur 5.8 zien we hoe de plots eruit zien met spectrogram van deoriginele input als label. Hierin kun je zien dat verschillende typen inputop een andere plek in de plots terecht komt. In de eerste laag van hetnetwerk (figuur 5.8b) worden spectrogrammen die op elkaar lijken bij elkaar

35

Page 38: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

geplaatst. In laag 3 (zie figuur 5.8d) lijkt er veel minder direct verband te zijntussen de spectrogram en de groepering. Vergelijkbare spectrogrammen zijnnu veel meer verspreid over verschillende clusters. Doordat de verschillendedatapunten dicht bij elkaar liggen overlappen de spectrogrammen. Hierdooris het lastig om een gedetailleerd beeld te krijgen. Door op bepaalde plekkenin de plots in te zoomen kunnen we een beter beeld krijgen.

In de plots valt op dat er veel bijna blauwe spectrogrammen aanwezigzijn. Dit betekent dat er in heel dit frame weinig energie aanwezig is. Ditis interessant, omdat we alleen input features gebruikt hebben waarbij demiddelste frame bij een foneem hoort. Hierdoor zou je verwachten dat erwel energie aanwezig is in zo’n frame. De verschillende spectrogrammenoverlappen, waardoor je meer van de randen ziet. De overige frames kunnenwel stiltes bevatten. Met een andere indeling van de kleurschaal zou ditmogelijk minder zijn. De hoeveelheid blauw in de spectrogrammen kanook komen doordat de bepaling van een framelabel niet heel nauwkeurig is.Hierdoor worden frames met stilte toch bij een foneem gerekend.

36

Page 39: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Hoofdstuk 6

Conclusies

In ons onderzoek hebben we de output in elke laag van een diep neuraalnetwerk gevisualiseerd om hiermee inzicht te krijgen hoe spraak binnen ditnetwerk gerepresenteerd wordt. Hierbij hebben we de representatie van eenverzameling spraakinput in een laag met elkaar vergeleken. Deze methodelevert plots op waarbij de input geclusterd is.

Door verschillende labels te gebruiken hebben we gekeken of we inzichtkonden krijgen waarom bepaalde input in een laag geclusterd is. Ons net-werk heeft geleerd onderscheid te maken tussen plosieven, fricatieven, langeklanken, korte klanken, diftongen en nasalen. Ons netwerk maakt ook on-derscheid tussen de a, i en o. Om overzichtelijke plots te houden is hetbelangrijk niet te veel verschillende labels te gebruiken. We hebben ookspectrogrammen van de input als labels gebruikt. Dit lijkt geen inzicht opte leveren.

In ons netwerk hebben we gezien dat in iedere diepere laag van het net-werk de klinkers en medeklinkers sterker geclusterd worden. Ook hebbenwe gezien dat de clustering op categorie in de derde laag van het netwerksterker is dan de clustering in de originele input. Omdat er in deze repre-sentatie meer onderscheid is tussen punten van de verschillende klassen, zoudeze representatie beter geschikt kunnen zijn als input voor classifiers. Alsdeze hypothese klopt zou je de visualisatie kunnen gebruiken om te bepalenwelke laag van het netwerk het best geschikt is voor de classificatietaak.Tevens kun je de visualisatie gebruiken om te kijken of de representaties ineen netwerk geschikt zijn voor andere classificatie taken dan de taak waarhet netwerk op getraind is. Deze hypothese kan getest worden door metiedere representatie als input een classifier te bouwen en de accuracy vandeze classifiers met elkaar te vergelijken.

In dit onderzoek hebben we ons beperkt tot een netwerk dat klinkersen medeklinkers classificeert. Als vervolgonderzoek is het interessant om tekijken hoe spraak eruit ziet in een netwerk dat fonemen classificeert.

37

Page 40: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Bibliografie

[1] NTi Audio. Fft fast fourier transform. http://www.nti-audio.com/

en/functions/fast-fourier-transform-fft.aspx. geraadpleegd op10-05-2017.

[2] Geoffrey Hinton, Li Deng, Dong Yu, George E Dahl, Abdel-rahmanMohamed, Navdeep Jaitly, Andrew Senior, Vincent Vanhoucke, PatrickNguyen, Tara N Sainath, et al. Deep neural networks for acoustic mo-deling in speech recognition: The shared views of four research groups.In IEEE Signal Processing Magazine, volume 29, pages 82–97. IEEE,2012.

[3] Diederik P. Kingma and Jimmy Ba. Adam: A method for stochasticoptimization. In CoRR, volume abs/1412.6980, 2014.

[4] Kwamikagami. English: A schematic vowel triangle, based onthe formants in the pronunciations of the ipa by daniel jonesand john wells. https://en.wikipedia.org/wiki/File:Vowel_

triangle,_intermediate_vowels.png, oktober 2015. geraadpleegdop 27-12-2017.

[5] Peter Ladefoged and Keith Johnson. A course in phonetics. NelsonEducation, 2014.

[6] Yen-Teh Liu, Yu Tsao, and Ronald Y. Chang. A deep neural networkbased approach to mandarin consonant/vowel separation. In ConsumerElectronics-Taiwan (ICCE-TW), 2015 IEEE International Conferenceon, pages 324–325. IEEE, 2015.

[7] Laurens van der Maaten and Geoffrey Hinton. Visualizing data usingt-sne. In Journal of Machine Learning Research, volume 9, pages 2579–2605, 2008.

[8] Abdel-rahman Mohamed, George E. Dahl, and Geoffrey Hinton. Acous-tic modeling using deep belief networks. In IEEE Transactions on Au-dio, Speech, and Language Processing, volume 20, pages 14–22, 2012.

38

Page 41: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

[9] Abdel-rahman Mohamed, Geoffrey Hinton, and Gerald Penn. Under-standing how deep belief networks perform acoustic modelling. InAcoustics, Speech and Signal Processing (ICASSP), 2012 IEEE Inter-national Conference on, pages 4273–4276. IEEE, 2012.

[10] Offnfopt. English: A neural network with multiple lay-ers. https://commons.wikimedia.org/wiki/File:Multi-Layer_

Neural_Network-Vector.svg, april 2015. geraadpleegd op 20-11-2017.

[11] Bruno A Olshausen. Aliasing. http://redwood.berkeley.edu/

bruno/npb261/aliasing.pdf. geraadpleegd op 10-05-2017.

[12] PCWorld. Speech recognition through the decades: How we endedup with siri. https://www.pcworld.com/article/243060/speech_

recognition_through_the_decades_how_we_ended_up_with_siri.

html, november 2011. geraadpleegd op 20-11-2017.

[13] Kishore Prahallad. Speech technology: A practical introduction, topic:Spectrogram, cepstrum and mel-frequency analysis. Carnegie MellonUniversity & International Institute of Information Technology Hyde-rabad. Slide.

[14] Khe Chai Sim. On constructing and analysing an interpretable brainmodel for the dnn based on hidden activity patterns. In AutomaticSpeech Recognition and Understanding (ASRU), 2015 IEEE Workshopon, pages 22–29. IEEE, 2015.

[15] Khe Chai Sim. Sensitivity-characterised activity neurogram (scan) forvisualising and understanding the inner workings of deep neural net-work. In IEICE TRANSACTIONS on Information and Systems, vo-lume 99, pages 2423–2430. The Institute of Electronics, Informationand Communication Engineers, 2016.

[16] Nederlandse Taalunie. Het .fon-formaat. http://lands.let.ru.nl/

cgn/doc_Dutch/topics/version_1.0/formats/text/fon.htm. ge-raadpleegd op 10-05-2017.

[17] van Niedek. Phonetic classification in TensorFlow. bachelorscriptie,Radboud Universiteit, 2016.

[18] Martin Wattenberg, Fernanda Viegas, and Ian Johnson. How to uset-sne effectively. Distill, 2016. doi: 10.23915/distill.00002. URL http:

//distill.pub/2016/misread-tsne.

[19] Matthew D. Zeiler, M. Ranzato, Rajat Monga, Min Mao, Kun Yang,Quoc Viet Le, Patrick Nguyen, Alan Senior, Vincent Vanhoucke, and

39

Page 42: Representatie van spraak in diepe neurale netwerken · MSc, T.M. van Laarhoven T.vanLaarhoven@cs.ru.nl ... Hierbij maken we gebruik van verschillende se-mantische informatie van de

Jeffrey Dean. On rectified linear units for speech processing. In Acous-tics, Speech and Signal Processing (ICASSP), 2013 IEEE InternationalConference on, pages 3517–3521. IEEE, 2013.

40