• Ei tuloksia

Neuroverkot akustisen sirontaongelman ratkaisemisessa

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Neuroverkot akustisen sirontaongelman ratkaisemisessa"

Copied!
54
0
0

Kokoteksti

(1)

Neuroverkot akustisen sirontaongelman ratkaisemisessa

Jaan Johansson Pro-gradu tutkielma Sovelletun fysiikan koulutusohjelma It¨a-Suomen yliopisto, Sovelletun fysiikan laitos 16. lokakuuta 2018

(2)

IT ¨A-SUOMEN YLIOPISTO, Luonnontieteiden ja mets¨atieteiden tiedekunta Sovelletun fysiikan koulutusohjelma, laskennallinen fysiikka

Jaan Johansson: Neuroverkot akustisen sirontaongelman ratkaisemisessa Pro-gradu tutkielma, 54 sivua

Tutkielman ohjaajat: FT, Timo L¨ahivaara, FT, Tomi Huttunen Lokakuu 2018

Avainsanat: neuroverkko, akustinen sironta, HRTF, 3D-¨a¨ani

Tiivistelm¨a

Ihminen hy¨odynt¨a¨a kolmiulotteista (3D) ¨a¨anen paikantamista jokap¨aiv¨aisess¨a el¨am¨ass¨a. Korvakuulokkeilla t¨allainen ¨a¨anen paikantamiskyky tavallisesti kadote- taan, mutta se on mahdollista saavuttaa keinotekoisesti. Tekem¨all¨a kuulokkeista tulevan ¨a¨anen eri taajuuksille samat muutokset kuin ihmiskeho tekee luonnostaan, saadaan 3D ¨a¨ani luotua my¨os kuulokkeisiin. Ihmiskehon muokkaama ¨a¨anen taa- juusspektri tunnetaan nimell¨a HRTF (Head-Related Transfer Function). Jokaisella ihmisell¨a on eri muotoinen keho, joten my¨os jokaisella on yksil¨ollinen HRTF. Ku- luttajatuotteisiin yksil¨olle personoitu HRTF saadaan simuloimalla jokaiselle ihmi- selle kehosta siroavan aallon paine. T¨allainen simulointi on laskennallisesti raskasta ja t¨ass¨a tutkielmassa tutkittiin neuroverkkojen hy¨odynt¨amist¨a simuloinnin korvaa- jana. Ihmiskehon sijaan k¨aytettiin helpommin parametrisoitavia ellipsoideja ¨a¨anen sirottajina. Neuroverkon oli tarkoitus muodostaa HRTF:ta edustava taajuusspektri, kun sille sy¨otet¨a¨an ellipsoidin puoliakseleiden suuruudet. My¨os tarvittavaa opetus- datan m¨a¨ar¨a¨a taajuusspektrin estimoinnin onnistumiseen tutkittiin. Neuroverkko oppi puoliakseleita vastaavat taajuusspektrit 100:n n¨aytteen opetusjoukolla.

(3)

Sanasto

Sy¨otekerros Input layer

Tulostekerros Output layer

Piilokerros Hidden layer

Sy¨ote Input / Feature / Observation

Ulostulo Output / Label

Opetusdata Training data

Koedata Test data

Kelpuutusdata Validation data

HRTF Head Related Transfer Function

Leveystaso Azimuth

Korkeustaso Elevation

Kynnysarvo Bias

ReLU Rectified Linear Unit

My¨ot¨asy¨otteinen Feed-Forward

Stokastinen gradienttioptimointialgoritmi, SGD Steepest Gradient Descent

Er¨aalgoritmi Batch Gradient Descent

Osajoukkoalgoritmi Mini-Batch Gradient Descent

Opetus-osajoukko Mini-batch

N¨ayte-er¨a Batch

Opetusaskel Training Step

Sakkofunktio Cost Function

Epokki Epoch

T¨aysin yhdistetty neuroverkko Fully Connected Neural Network

Pudotusmenetelm¨a Dropout

(4)

Sis¨ alt¨ o

1 Johdanto 5

1.1 Akustinen sironnan ratkaiseminen . . . 5

1.2 Simuloinnin korvaaminen neuroverkolla . . . 7

1.3 Tutkielman rakenne . . . 8

2 Neuroverkot 9 2.1 Neuroni . . . 9

2.2 Aktivointifunktiot . . . 10

2.3 Sakkofunktio . . . 11

2.4 Gradient descent . . . 13

2.5 Vastavirta-algoritmi . . . 14

2.6 Optimointialgoritmit . . . 15

2.7 Verkon parametrien alustaminen . . . 18

2.8 Hyperparametrit ja neuroverkon tyyppi . . . 18

2.9 Ylisovittaminen . . . 19

2.10 Regularisointimenetelm¨at . . . 20

3 Yksil¨ollisen HRTF:n opettaminen neuroverkolla 22 3.1 CIPIC-tietokanta . . . 22

3.2 HRTF:n opettaminen antropometrisista mitoista . . . 23

4 Menetelm¨at 25

5 Tulokset 30

6 Pohdinta 42

(5)

1 Johdanto

Kuulo on t¨arke¨ass¨a roolissa ihmisten havainnoidessa ymp¨arist¨o¨a¨an. ¨A¨anil¨ahteen paikan- taminen on t¨ass¨a merkityksellist¨a. ¨A¨anen paikantamisen mahdollistavat kumpaankin kor- vaan saapuneen ¨a¨anen aikaero (Interaural Time Difference, ITD), korviin saapuneiden

¨a¨anten voimakkuusero (Interaural Level Difference, ILD) sek¨a saapuneiden ¨a¨anten taa- juussis¨alt¨o (Spectral cue). ITD:n, ILD:n ja taajuussis¨all¨on yhteisvaikutusta kuvataan yh- den taajuusspektrin (Head-Related Transfer Function, HRTF) avulla. ITD ja ILD muo- dostuvat ¨a¨anil¨ahteen et¨aisyydest¨a kummastakin korvasta sek¨a p¨a¨an ulkoisista dimensiois- ta. Taajuusspektrin muoto perustuu ihmiskehon taajuusriippuvaan ¨a¨anen muokkaami- seen. Kuten ITD ja ILD, taajuusspektrikin on erilainen eri suunnissa oleville ¨a¨anil¨ahteille.

A¨¨anen taajuussis¨all¨on muuttuminen johtuu kehon eri kohdista siroavan ¨a¨anen ja suoraan korvak¨ayt¨av¨a¨an kulkevan ¨a¨anen interferenssist¨a, sek¨a korvassa tapahtuvista ¨a¨anen reso- nansseista. Spektrin muotoon vaikuttaa erityisesti ulkokorvan muoto [1]. Taajuusspektri ja asetelma sen muodostumiseen on esitetty Kuvassa 1.

Korvakuulokkeilla kuunneltaessa t¨allainen ¨a¨anen paikantamiskyky tavallisesti kadote- taan ja ¨a¨ani kuulostaa tulevan p¨a¨an sis¨alt¨a. Uudet sovellukset voisivat kuitenkin hy¨odynt¨a¨a kolmiulotteista ¨a¨anihavainnointia. Virtuaalitodellisuudessa, joka voi sis¨alt¨a¨a esimerkiksi pelej¨a tai oppimisymp¨arist¨on, 3D ¨a¨ani parantaa kokemusta merkitt¨av¨asti. T¨am¨an lis¨aksi my¨os vanhempaan teknologiaan on mahdollista tuoda uusia elementtej¨a 3D ¨a¨anen avulla.

T¨allaisia ovat musiikki ja elokuvat.

Jotta kolmiulotteisen (3D) ¨a¨anen kuuntelu olisi mahdollista, ¨a¨ani on suodatettava.

A¨¨anelle on teht¨av¨a samanlainen muokkaus, mink¨a keho tekee itse. Taajuusspektrin muo- don m¨a¨aritt¨aminen on hankalin osa 3D ¨a¨anen muodostamisessa korvakuulokkeille. Ih- misten kehot ovat anatomisesti erilaisia, jolloin ¨a¨ani siroaa jokaisesta eri tavalla ja jokai- sella ihmisell¨a on yksil¨ollinen HRTF. HRTF voidaan mitata asettamalla mikrofoni kor- vak¨ayt¨av¨an suulle ja mittaamalla eri suunnista toistetun ¨a¨anen taajuusspektri [2]. T¨am¨a on hankalasti toteutettava menetelm¨a, kun 3D ¨a¨ani halutaan k¨aytt¨o¨on kuluttajatuot- teisiin. Voidaan my¨os valita jo olemassa olevista HRTF:st¨a parhaiten sopiva perustuen ulkokorvan ja p¨a¨an mittoihin [3], mutta t¨am¨a ei vastaa yksil¨ollist¨a HRTF:¨a¨a.

1.1 Akustinen sironnan ratkaiseminen

A¨¨anen paikantamisessa t¨arke¨ass¨a roolissa ovat erityisesti HRTF:ss¨a olevien syvien kuop- pien sijainti taajuusakselilla [1]. Jotta k¨aytetty HRTF saadaan vastaamaan todellista, voidaan korvak¨ayt¨av¨an suulla taajuusvaste m¨a¨aritt¨a¨a simuloimalla sironnut ¨a¨ani tarkasti muodostetusta 3D mallista. T¨am¨a vaatii akustisen sirontaongelman ratkaisua.

HRTF kuvaa akustisen kokonaispaineen p suuruutta taajuuden funktiona. Kokonais- paine koostuu ¨a¨anil¨ahteen aiheuttamasta paineesta pi ilman sirottavaa kappaletta sek¨a

(6)

(a) (b)

(c)

Kuva 1: HRTF:n mittaamiseksi ¨a¨anil¨ahteest¨a toistettu akustinen aalto mitataan mik- rofonilla korvak¨ayt¨av¨an suulla. Kuvassa (a) ¨a¨anil¨ahteest¨a toistettu aalto saapuu kor- vak¨ayt¨av¨an suulle ajassa, joka riippuu aallon kulkemasta matkasta (b). Kuljetun mat- kan pituus m¨a¨aritt¨a¨a, mik¨a on aallon vaihe, kun se saapuu mikrofonille (musta piste).

Eri polkuja pitkin saapuneet aallot ovat eri vaiheessa ja eri voimakkuuksilla, jolloin nii- den interferenssi voi olla vahvistavaa tai heikent¨av¨a¨a. (c) esitt¨a¨a esimerkki-HRTF:n, jossa aallon paine on taajuusriippuva.

(7)

kappaleesta siroavasta kent¨ast¨a ps

p=pi+ps. (1)

Pistel¨ahteen kentt¨api on

pi = eikr

4πr, (2)

miss¨a k on aaltoluku ja r on et¨aisyys pistel¨ahteest¨a. Akustisesti kovasta kappaleesta si- ronnut kentt¨a saadaan ratkaisemalla Helmholtzin ongelma [4, 5]

2p+k2p= 0. (3)

Sirottavan kappaleen pinnalla k¨aytet¨a¨an Neumann reunaehtoa

∂p

∂n = 0, (4)

miss¨a ∂p∂n on paineen normaalin suuntainen derivaatta. Koska kokonaispaine p koostuu tulevasta paineesta ja sironneesta paineesta, ratkaistavaksi j¨a¨a

2ps+k2ps = 0 (5)

∂ps

∂n =−∂pi

∂n (6)

R→∞lim R∂ps

∂R −ikps

= 0, (7)

kun kentt¨a pi tunnetaan. Ratkaisun on toteutettava Sommerfieldin ehto (7), jonka mu- kaan sironnut aalto vaimenee kulkiessaan sirottavasta kappaleesta ¨a¨arett¨omyyteen. [5]

Joissakin erikoistapauksissa t¨am¨a voidaan ratkaista analyyttisesti sarjakehitelmien avulla [6, 7], mutta yleisiss¨a geometrioissa tulee aina ratkaista numeerisesti. T¨ass¨a ty¨oss¨a ratkaisu on tehty numeerisesti k¨aytt¨aen reunaelementtimenetelm¨a¨a (Boundary Element Method, BEM) [8].

1.2 Simuloinnin korvaaminen neuroverkolla

Simuloinnissa haasteena on riitt¨av¨an tarkan sirottavan kappaleen mallin muodostaminen sek¨a aikaa viev¨a laskenta. T¨am¨a tutkielma tutkii neuroverkon mahdollista hy¨odynt¨amist¨a laskennallisesti vaativan simuloinnin korvaajaksi. Tavoitteena on opettaa neuroverkko an- tamaan ulostulona HRTF, kun sille annetaan sy¨otteen¨a parametrisoitu sirottava kappale.

Neuroverkon toiminta on esitetty Kuvassa 2.

Sirottavana kappaleena k¨aytet¨a¨an ihmiskehon sijasta eri kokoisia ellipsoideja, jotta pystyt¨a¨an tekem¨a¨an yksinkertainen geometrinen parametrisointi.

(8)

Sy¨ ote NN Ulostulo

HRTF Neuroverkon opettaminen

Opetetun neuroverkon k¨ aytt¨ o

Sy¨ ote NN HRTF

Virheen m¨aritys Neuroverkon

muokkaaminen

Kuva 2: Neuroverkko halutaan antamaan ulostulona HRTF, kun sille sy¨otet¨a¨an ihmisen parametrisaatio. Neuroverkon opetusvaiheessa sy¨otteen tuottamaa ulostuloa verrataan todelliseen HRTF:n ja verkkoa muokataan siten, ett¨a ulostulon ja HRTF:n v¨alinen virhe pienenee. Opettamisen j¨alkeen neuroverkkoa voidaan k¨aytt¨a¨a antamaan HRTF ihmisen parametrisaation perusteella.

1.3 Tutkielman rakenne

Tutkielma koostuu seuraavista kappaleista. Kappaleessa 2 tutustutaan neuroverkkojen toimintaan. Kappaleessa 3 kuvaillaan aiemmin kirjallisuudessa toteutettua neuroverkko- jen soveltamista HRTF:n m¨a¨aritt¨amiseen perustuen ihmisen antropometrisiin mittoihin.

Lis¨aksi t¨ass¨a kappaleessa esitet¨a¨an lyhyesti aiemmasta julkaisusta muokatun menetelm¨an tulokset. Kappaleessa 4 esitet¨a¨an menetelm¨at t¨am¨an tutkielman varsinaisen tutkimuksen suorittamiseen. Kappaleessa 5 esitet¨a¨an tutkimuksen tulokset ja kappaleessa 6 pohditaan tuloksia.

(9)

2 Neuroverkot

Vaikka neuroverkot ovat viimeaikoina yleistyneet, niiden idea on vanha. 1943, Warren S.

McCulloch ja Walter H. Pitts k¨ayttiv¨at yksinkertaista neuroverkkoa mallintamaan tie- totekniikassa k¨aytettyj¨a loogisia operaatioita AND/OR/NOT [9]. Heid¨an k¨aytt¨am¨ans¨a neuroverkko oli kuitenkin vain approksimaatio n¨aille operaatioille ja silt¨a puuttui toi- nen t¨arke¨a neuroverkkojen ominaisuus, oppiminen. 1949 Donald Hebb kuvasi kirjassaan, miten neuroverkko pystyy oppimaan [10]. Esimm¨ainen tosiel¨am¨an ongelmaan sovellettu neuroverkkokin syntyi kymmenen vuotta t¨am¨an j¨alkeen [11]. Laajempi neuroverkkojen yleistymist¨a ei kuitenkaan tapahtunut t¨ah¨an aikaan. Seuraava aalto neuroverkkojen suo- siossa tuli 1990-luvulla [12]. T¨am¨an vuosikymmenen aikana yksi suurimmista kehitysas- kelista oli konvoluutioneuroverkkojen (Convolutional neural networks, CNN) keksiminen [13]. Kaikesta huolimatta t¨all¨oink¨a¨an neuroverkot eiv¨at tulleet nimen¨a tutuksi laajemmal- le yleis¨olle. 90-luvulta 2010 luvulle tapahtui kaksi asiaa, jotka mahdollistivat neuroverk- kojen laajemman hy¨odynt¨amisen. Yksi n¨aist¨a on tietokoneiden laskentatehon kasvaminen ja erityisest¨a n¨ayt¨onohjainten kehittyminen ja pilvilaskennan mahdollisuus. Toinen on suuren datam¨a¨ar¨an saatavuus internetin yleistymisen my¨ot¨a, jota tarvitaan neuroverk- kojen opettamiseen. Viime vuosina neuroverkkojen saavutukset sek¨a tutkimuksessa ett¨a teknologiateollisuudessa ovat olleet merkitt¨avi¨a. T¨ast¨a kertoo suuret koneoppimiseen liit- tyvien julkaisujen m¨a¨ar¨at ja esimerkkej¨a merkitt¨avist¨a saavutuksista teollisuudessa ovat puheen tunnistamiseen (Speech Recognition) [14, 15] ja kuvien tunnistamiseen (Image Recognition) [16, 17] liittyv¨at sovellukset.

Perinteisesti tietokone suorittaa ihmisen ohjelmoimat k¨askyt. N¨am¨a ovat tehokkai- ta menetelmi¨a, kun tiedet¨a¨an millaista algoritmia tarvitaan. Algoritmin suunnittelemi- seen tulee ongelma, kun halutaan esimerkiksi tunnistaa kuvassa olevia esineit¨a. T¨ah¨an on hankala suunnitella algoritmia ja siksi t¨allaisissa teht¨aviss¨a hy¨odynnet¨a¨an koneoppi- mista. Koneoppimisen tarkoituksena on, ett¨a algoritmi oppii itse suoriutumaan halutusta teht¨av¨ast¨a mahdollisimman hyvin. T¨all¨oin ihminen ei m¨a¨arittele algoritmia vaan se oppii itsen¨aisesti kaikki yksityiskohdat. Oppimisesta vastaa neuroverkko. [12, 18, 19]

Neuroverkko on tietokonealgoritmi, joka pystyy oppimaan funktioita sille sy¨otetyn datan perusteella. Neuroverkko mukailee ihmisaivojen toimintaa ja se koostuu toisiinsa kytketyist¨a neuroneista. T¨ass¨a kappaleessa tutustutaan neuroverkkojen rakenteeseen ja niiden oppimisprosessiin.

2.1 Neuroni

Neuroverkko koostuu yksitt¨aisist¨a neuroneista, joiden toiminta mukailee ihmisaivossa ole- vien neuronien toimintaa. Aivoissa yksitt¨aiset neuronit ovat yhteydess¨a toisiinsa eri vah- vuisten liitosten avulla ja t¨am¨a mahdollistaa aivojen toiminnan. Keinotekoisessa neuro-

(10)

verkossa (artificial neural network) neuronit on jaettu kerroksiin. Kuvassa 3 on neuroverk- ko, jossa on kolme kerrosta. Ensimm¨aist¨a kerrosta sanotaan sy¨otekerrokseksi ja viimeist¨a ulostulokerrokseksi. N¨aiden v¨aliss¨a ovat piilokerrokset. Kuvassa n¨akyv¨at nuolet kertovat, miten neuronit ovat yhteydess¨a toisiinsa. Jokaisen kerroksen jokainen neuroni on yhtey- dess¨a jokaiseen vierekk¨aisten kerrosten neuroniin.

Jokaisella neuronilla on yksi skalaariarvo. Sy¨otekerroksen neuroneilla t¨am¨a arvo m¨a¨ar-

¨aytyy verkkoon sy¨otett¨av¨an datan mukaan. Muiden kerrosten neuroneilla t¨am¨a skalaariar- vo m¨a¨ar¨aytyy edellisten kerrosten neuronien arvojen ja neuronien v¨alisten yhteyksien mu- kaan. Neuronien yhteyksien voimakkuutta kuvataan painokertoimilla wkjl , jotka ovat yk- sil¨ollisi¨a jokaiselle neuronien v¨aliselle yhteydelle. Edell¨a esitetty painokerroin on kerrokses- salolevanj:n neuronin ja kerroksessal−1 olevankneuronin v¨alill¨a, kun sy¨otekerroksessa l= 1 ja ulostulokerroksessa l =L. Neuronien v¨alisi¨a yhteyksi¨a kuvaavien painojen lis¨aksi jokaiselle neuronille on oma kynnysarvo (bias) blj.

Yksinkertaisimmassa neuroverkossa jokaisella neuronilla suoritetaan laskutoimitus, jos- sa edellisen kerroksen neuronien arvotxl−1k painotetaan painokertoimilla. Neuronin arvok- si tulee 1, jos summa on suurempi kuin kynnysarvo ja 0, jos summa on pienempi kuin kynnystermi

ulostulo=

1, jos Σwlkjxl−1k ≥blj 0, jos Σwlkjxl−1k < blj

. (8)

T¨allaisia neuroneja kutsutaa perseptroneiksi ja neuroverkkoa, joka koostuu perseptroneis- ta kutsutaan perseptronineuroverkoksi. Todellisuudessa neuroverkoissa ei k¨aytet¨a persept- roneja, koska niiden bin¨a¨arisest¨a arvosta on haittaa opettamisen aikana. Opetettaessa neuroverkkoa, toivottavana ominaisuutena on muutokset sy¨otekerroksessa saavat aikaan jatkuvia muutoksia ulostulokerroksessa. T¨am¨a ei toteudu k¨aytett¨aess¨a perseptroneja.

Vaihtoehto perseptroneille on k¨aytt¨a¨a neuronien arvona summaa Σkwlkjxl−1k +blj. T¨allai- nen neuroverkko on lineaarinen funktio nimelt¨a¨an Linear Regression Model. Vaikka lineaa- rinen verkko helpottaa oppimista, se pystyy approksimoimaan ainoastaan lineaarisia funk- tioita. Todellisuudessa valtaosa ongelmista, joihin neuroverkkoja pyrit¨a¨an hy¨odynt¨am¨a¨an, ovat ep¨alineaarisia. Neuroverkon approksimoiva funktio saadaan ep¨alineaariseksi k¨aytt¨a- m¨all¨a aktivointifunktiota (activation function).

2.2 Aktivointifunktiot

Neuroverkon kyky oppia ep¨alineaarisia funktioita mahdollistuu, kun k¨aytet¨a¨an aktivointi- funktiota. Aktivointifunktion halutaan olevan jatkuva, jotta pienet muutokset sy¨otteess¨a aiheuttavat vain pieni¨a muutoksia ulostulossa. Kuitenkaan ei haluta lineaarista aktivoin- tifunktiota. Aktivointifunktiona voitaisiin k¨aytt¨a¨a monenlaisia funktioita, mutta nyky¨a¨an

(11)

b

11

b

12

b

13

b

21

w

1,32

w

2,11

Sy¨ otekerros Piilokerros Ulostulokerros

y

x

2

x

1

Kuva 3: Esimerkki t¨aysin yhdistetyst¨a neuroverkosta. Siin¨a on kolme kerrosta: sy¨otekerros, piilokerros ja ulostulokerros. Kaikissa kerroksissa jokainen neuroni on yhdistetty vie- rekk¨aisten kerrosten neuroneihin.

Linear Unit) R(x)[18]

σ(x) = 1

1 +e−x (9)

tanh(x) = ex−e−x

ex+e−x (10)

R(x) = max{0, x}. (11)

Aktivaatiofunktion arvoa neuronin arvollaxkutsutaan aktivaatioksi. Kuvassa 4 on esitet- ty edell¨a mainitut aktivointifunktiot. On huomioitava, ett¨a aktivaatio voi saada vain tiet- tyj¨a arvoja. T¨am¨an vuoksi ulostulot on skaalattava, jotta ulostulokerroksen aktivaation on mahdollista saada jokainen ulostulon arvo. T¨am¨a tarkoittaa, ett¨a esimerkiksi sigmoidia k¨aytett¨aess¨a ulostulokerros on skaalattava v¨alille ]0,1[.

2.3 Sakkofunktio

Neuroverkon opettaminen tarkoittaa painojen ja kynnysarvojen muokkaamista siten ett¨a neuroverkon sy¨otextuottaa ulostulokerroksellaLaktivaationaL(x), joka on mahdollisim- man l¨ahell¨a todellista ulostuloa y. T¨am¨a tarkoittaa optimointiongelman ratkaisua, jossa minimoidaan residuaali||y−aL(x)||jossakin muodossa.

Neuroverkon opettamiseksi tarvitaan opetusdataa. Opetusdata sis¨alt¨a¨a sy¨otteit¨a ja niit¨a vastaavat ulostulot. Sy¨otteiden sy¨ott¨amist¨a neuroverkkoon ja n¨ait¨a vastaavien ulos- tulojen laskemista kutsutaan my¨ot¨asy¨otteiseksi (feed-forward) prosessiksi. Sakkofunktiok-

(12)

Kuva 4: Yleisimmin k¨aytetyt aktivointifunktiot sigmoidi, hyperbolinen tangentti ja ReLU sek¨a n¨aiden derivaattafunktiot.

si voidaan valita residuaalin normin neli¨o

Cx =||y(x)−aL(x)||2. (12) Sigmoidin ja hyperbolisen tangentin derivaatat ovat l¨ahell¨a nollaa, muualla kuin pis- teen x = 0 l¨aheisyydess¨a. T¨am¨an seurauksena k¨aytett¨aess¨a sigmoidia tai hyperbolista tangenttia aktivointifunktiona ja normin neli¨ot¨a sakkofunktiona, neuroverkon oppimi- nen tapahtuu nopeasti, kun verkko on vain v¨ah¨an v¨a¨ar¨ass¨a, mutta hitaasti kun verk- ko on enemm¨an v¨a¨ar¨ass¨a. T¨am¨a heikent¨a¨a verkon kyky¨a oppia ja johtuu n¨aiden ak- tivointifunktioiden derivaatan suuresta arvosta l¨ahell¨a nollaa ja pienenev¨ast¨a arvosta et¨a¨annytt¨aess¨a nollasta. T¨am¨a ongelma voidaan huomioida k¨aytt¨am¨all¨a sakkofunktiona nk. cross-entropy:¨a

C=−1

x[ylnaL+ (1−y) ln(1−aL)]. (13)

(13)

T¨am¨an sakkofunktion derivaatassa painojen ja kynnysarvojen suhteen

∂C

∂wj = 1

xxj(σ(z)−y) (14)

∂C

∂b = 1

x(σ(z)−y) (15)

ei ole σ0 termej¨a, jotka aiheuttavat neuroverkon oppimisen hidastumisen. Lis¨aksi sakkoC on suurin, kun aktivaatio ulostulokerroksessa tuottaa suurimman virheen.

2.4 Gradient descent

Oppimisen aikana neuroverkko muuttaa parametrej¨a¨an wkjl ja blk sopivammiksi. T¨am¨a tapahtuu muuttamalla niit¨a kohti sakkofunktion negatiivista gradienttia. Gradientin ana- lyyttinen laskeminen globaalin minimin l¨oyt¨amiseksi ei ole mahdollista, koska muuttu- jien m¨a¨ar¨a on liian suuri. T¨am¨an vuoksi opetusjoukon n¨aytett¨a x vastaavat gradientit on laskettava erikseen jokaiselle ulostulokerroksen neuronille. Sakkofunktion gradienttina k¨aytet¨a¨an koko opetusjoukon yksitt¨aisille n¨aytteille laskettujen gradienttien keskiarvoa

∇C = 1

x∇Cx. (16)

Lasketusta sakkofunktion gradientista saadaan gradientti jokaisessa ulostulokerroksen neu- ronissa sek¨a painokertoimien ett¨a kynnysarvon suhteen. N¨aille parametreille saadaan nyt laskettua p¨aivitetyt arvot

w0Ljk =wjkL −η ∂C

∂wLjk (17)

b0Lj =bLj −η∂C

∂bLj . (18)

T¨am¨a er¨aalgoritmi (Batch gradient descent) [20] muuttaa neuroverkon painoja ja kynny- sarvoja koko opetusjoukon sakkofunktion negatiivisen gradientin suuntaan. Mik¨ali sakko- funktiossa on useita lokaaleja minimikohtia, verkon oppiminen voi pys¨ahty¨a n¨aihin kohtiin (Kuva 5).

Vaihtoehtoinen tapa on p¨aivitt¨a¨a neuroverkon parametreja erikseen jokaisella n¨aytteell¨a lasketulla sakkofunktiolla k¨aytt¨aen stokastista gradienttioptimointialgoritmia (Stochastic gradient descent, SGD) [20]. T¨all¨oin yksitt¨aisten n¨aytteiden erilaiset sakkofunktiot saa- vat neuroverkon muuttamaan parametreja eri tavoin (Kuva 5). T¨all¨oin v¨ahennet¨a¨an riski¨a opettamisen pys¨ahtymiseen lokaaleihin minimeihin. Mutta toisaalta t¨all¨oin neuroverkon oppiminen hidastuu, koska yksitt¨aisten n¨aytteiden sakkofunktiot ovat erilaisia, eiv¨atk¨a ap- proksimoi hyvin koko datan sakkofunktiota ja globaalia minimi¨a. Kompromissina n¨aille

(14)

Kuva 5: Er¨aalgoritmi muodostaa lokaaleja minimej¨a, joihin neuroverkon oppiminen voi pys¨ahty¨a. SGD:ss¨a yksitt¨aisten n¨aytteiden sakkofunktioiden lokaalit minimit ovat eri koh- dissa, jolloin oppimisen pys¨ahtymiselt¨a ennen globaalia minimi¨a on mahdollista v¨altty¨a.

kahdelle menetelm¨alle on osajoukkoalgoritmi (mini-batch gradient descent). T¨ass¨a mene- telm¨ass¨a koko opetusjoukosta on valittu osajoukko, jonka n¨aytteille lasketaan sakkofunk- tion gradientit ja n¨aiden keskiarvoa k¨aytet¨a¨an parametrien p¨aivitt¨amiseen. T¨am¨an avulla voidaan ehk¨aist¨a lokaalien minimien ongelmaa, mutta toisaalta yksitt¨aisten n¨aytteiden sakkofunktiot eiv¨at hidasta opettamista.

Opetus-osajoukko vaihdetaan jokaisen opetusaskeleen (training step) j¨alkeen. Ope- tusaskeleen aikana yksi n¨ayte tai n¨aytejoukko (batch) sy¨otet¨a¨an neuroverkkoon ja ver- kon kaikki parametrit muutetaan negatiivisen gradientin suuntaan. Opetusaskel toiste- taan, kunnes kaikkia opetusn¨aytteit¨a on k¨aytetty opettamisessa. Kun kaikkia n¨aytteit¨a on k¨aytetty opettamisessa, on kulunut yksi epokki.

2.5 Vastavirta-algoritmi

Sakkofunktion ja SGD:n avulla saadaan muutettua ulostulokerroksen painoja ja kynny- sarvoja, siten ett¨a verkko suoriutuu paremmin. Aiempien kerrosten parametrien muut- tamiseen k¨aytet¨a¨an vastavirta (backpropagation) -algoritmia [21]. Algoritmi laskee ensin ulostulokerroksen aktivaatioiden virheet δjL jokaiselle neuronille

δjL= ∂C

∂aLj σ0(zjL). (19)

(15)

Ensimm¨ainen termi mittaa sakkofunktion muutoksen j neuronin aktivaation suhteen.

T¨ah¨an termiin vaikuttaa valittu sakkofunktio. Toinen termi mittaa, miten j neuronin aktivaatio muuttuu neuronin arvon zjL funktiona. T¨ah¨an termiin vaikuttaa valittu akti- vaatiofunktio.

Kun ulostulokerroksen aktivaatioiden virheet tiedet¨a¨an, virheet jatketaan neuroverkon edelliselle kerroksellel =L−1

δL−1 = ((wL)TδL)·σ0(zL−1). (20) T¨am¨a yht¨al¨o voidaan yleist¨a¨a p¨atem¨a¨an kaikille kerroksille, jolloin saadaan tiet¨a¨a virhe jokaisella kerroksella. Kerroksen l aktivaatioiden virhe on

δl= ((wl+1)Tδl+1)·σ0(zl). (21) Virheen suuruuden eteneminen kuhunkin edellisen kerroksen neuroniin m¨a¨ar¨aytyy neuro- nien v¨alisen painon suuruudella eli sill¨a, miten vahva n¨aiden neuronien liitos on.

SGD tarvitsee sakkofunktion osittaisderivaatat neuroverkon parametrien suhteen. N¨am¨a saadaan neuronin aktivaation virheest¨a seuraavien yht¨al¨oiden avulla

∂C

∂bljlj (22)

∂C

∂wjkl =al−1k δjl. (23)

Sijoittamalla n¨am¨a yht¨al¨o¨on (17) ja (18), saadaan p¨aivitetty¨a kaikki neuroverkon para- metrit.

2.6 Optimointialgoritmit

T¨ah¨an asti neuroverkon parametrien p¨aivitt¨aminen on tehty muuttamalla niit¨a sakko- funktion negatiivisen gradientin suuntaan askelparametrin m¨a¨ar¨a¨am¨an matkan. T¨allainen optimointi johtaa jyrkkiin suunnanmuutoksiin opetuksen aikana. Lis¨a¨am¨all¨a optimointiin parametrien liikem¨a¨ar¨a, saadaan oppimispolkua ja siten opetukseen k¨aytetty¨a aikaa lyhen- netty¨a (kuva 6). T¨am¨a my¨os pienent¨a¨a lokaalien minimien vaikutusta. Liikem¨a¨ar¨an vaiku- tus saadaan, kun opetusaskeleessa huomioidaan my¨os aiemman opetusaskeleen sakkofunk- tion gradientin suunta. Voidaan ajatella ett¨a gradientin m¨a¨ar¨a¨am¨a kiihtyvyys muuttaa parametrien edellisen muutoksen liikem¨a¨ar¨a¨a samalla tavalla kuin gravitaatio vaikuttaa m¨aess¨a vieriv¨an pallon etenemiseen.

Liikem¨a¨ar¨an vaikutus saadaan lis¨a¨am¨all¨a painojen p¨aivitt¨amiseen (17) edellisell¨a ite- raatiolla tehdyn muutoksen sis¨alt¨av¨a termi. K¨aytet¨a¨an parametreille wljk ja blj yhteist¨a

(16)

Kuva 6: Liikem¨a¨ar¨an lis¨a¨aminen lis¨a¨a saman vaikutuksen kuten kappaleen massa mekanii- kassa. Massa saa aikaan edellisell¨a iteraatiolla k¨aytetyn parametrien muutoksen lis¨a¨amisen seuraavan iteraation parametrin arvon estimointiin. Liikem¨a¨ar¨a¨a hy¨odynt¨am¨all¨a on mah- dollista v¨ahent¨a¨a opetukseen k¨aytetty¨a aikaa.

merkint¨a¨aθ, jota voidaan k¨aytt¨a¨a jokaisen painon ja kynnysarvon p¨aivitt¨amiseen. Lis¨aksi merkit¨a¨an ∂C∂θ = dθ. T¨all¨oin iteraatiolla i p¨aivitetty parametrin θ arvo liikem¨a¨ar¨a huo- mioituna on

θii−1+η∆θi, (24)

miss¨a iteraatiolla itapahtuva muutos parametrissa θ

∆θi =β∆θi−1−(1−β)dθi. (25)

Kerroin β ja m¨a¨aritt¨a¨a, miten paljon painotetaan edellisen iteraation liikem¨a¨ar¨a¨a.

Optimointialgoritmeissa oppimiskertoimen suuruuden valinnalla on suuri merkitys neu- roverkon oppimiseen. Liian suurella arvolla neuroverkon on hankala supeta l¨ahestytt¨aess¨a minimikohtia ja liian pieni arvo vaatii liian paljon aikaa supetakseen. Nykyaikaisilla opti- mointialgoritmeilla on mahdollista vaikuttaa liikem¨a¨ar¨an merkitykseen ja oppimiskertoi- men mukautumiseen opetuksen aikana. AdaGrad [22], RMSProp [23] ja Adam [24] ovat er¨ait¨a suosituimpia optimointialgoritmeja [18]. N¨aill¨a algoritmeilla on jokaisella omat vah- vuutensa ja heikkoutensa.

AdaGrad mahdollistaa jokaiselle parametrille oman oppimiskertoimen asettamisen ja n¨aiden parametrien muuttamisen omien sakkofunktioiden gradienttien perusteella. Neu- roverkon seuraava parametri θi saadaan p¨aivitt¨am¨all¨a aiemman iteraation parametria

θii−1− η +√

ri

dθ. (26)

(17)

on pieni luku nollalla jakamisen v¨altt¨amiseksi ja ri on aiemmat gradientit huomioiva funktio

ri =ri−1+ (dθ)2. (27)

ri kasvaa jokaisella iteraatiolla ja sen vuoksi t¨am¨an algoritmin ongelmana on, ett¨a sen askelparametri pienenee jokaisella iteraatiolla. Suurin ongelma t¨am¨a on lokaalien minimien kohdalla, jossa askelparametri pienenee voimakkaasti ja globaaliin minimiin suppeneminen hidastuu huomattavasti.

RMSProp-algoritmi vastaa AdaGradia muuten kuin oppimiskertoimen mukautumisel- la. RMSProp muuttaa oppimiskerrointa siten ett¨a aiempien iteraatioiden sakkofunktiot huomioidaan eksponentiaalisesti pienenev¨all¨a painolla. Funktiona ri k¨aytet¨a¨an

ri =ρri−1+ (1−ρ)dθ2, (28)

miss¨a ρ on positiivinen luku.

Adam vastaa RMSProp-algoritmia sill¨a muutoksella, ett¨a siin¨a lis¨at¨a¨an liikem¨a¨ar¨an vaikutus. Parametrien muutosta edustava termi koostuu kahdesta osasta. Ensimm¨ainen osa vastaa liikem¨a¨ar¨a¨a ja se koostuu aiemman iteraation muutoksen suunnasta mi−1 ja t¨am¨anhetkisen iteraation sakkofunktion gradientista dθ

mi1mi−1+ (1−β1)dθ. (29) Toinen osa koostuu RMSProp-algoritmin termist¨a

vi2vi−1 + (1−β2)dθ2. (30) Liikem¨a¨ar¨aosassa ja RMSProp-osassa on eri painokertoimet β1 ja β2, jotka m¨a¨aritt¨av¨at aiempien gradienttien ja nykyisen gradientin painotuksen. Adam-algoritmissa termitmija vi alustetaan nolliksi. T¨am¨a aiheuttaa harhan todellisiin arvoihin verrattuna. RMSProp- algoritmissa vastaavaa ongelmaa ei ole huomioitu, mutta Adam k¨aytt¨a¨a termien mi ja vi sijaan korjattuja termej¨a

˜

mi = mi

1−β1i (31)

˜

vi = vi

1−β2i, (32)

miss¨a parametrien β1 ja β2 eksponentti on t¨am¨anhetkinen iteraatio. Lopullinen Adam- algoritmin parametrien p¨aivitys on

θii−1−α m˜i

√˜vi+. (33)

(18)

2.7 Verkon parametrien alustaminen

Ennen ensimm¨aist¨a my¨ot¨asy¨otteist¨a operaatiota kaikki neuroverkon parametrit on alus- tettava. Alustaminen tehd¨a¨an tavallisesti valitsemalla painoille ja kynnysarvoille satunnai- set arvot jostakin jakaumasta. Jakauma voi olla esimerkiksi normaalijakauma tai tasaja- kauma. Satunnaisesti valituilla parametrin arvojen suuruudella on merkitys sy¨otekerroksen neuroneista l¨ahtev¨an signaalin etenemiseen neuroverkossa. Liian pienet parametrien ar- vot aiheuttavat neuroverkossa edetess¨a¨an signaalin heikkenemisen jokaisella kerroksella ja liian suuret aiheuttavat signaalin kasvamisen jokaisella kerroksella. Xavier-algoritmi [25] valitsee automaattisesti painot sopiviksi ja kynnysarvot alustetaan usein nollaksi.

Algoritmi valitsee kerroksen l painot wl yleens¨a normaalijakaumasta tai tasajakaumasta m¨a¨arittelem¨all¨a jakauman varianssin sy¨ote- ja ulostulokerrosten neuronien m¨a¨ar¨an mu- kaan. Jakauman varianssi on

Γ(wl) = 2

n1 +nL, (34)

miss¨an1 on ensimm¨aisen kerroksen neuronien m¨a¨ar¨a ja nL on viimeisen kerroksen neuro- nien m¨a¨ar¨a.

Parametrien alustamisella on suuri merkitys neuroverkon oppimiseen. Xavier algorit- mist¨a on suurin hy¨oty sigmoidia tai hyperbolista tangenttia neuronien aktivointifunk- tiona, jolloin v¨altyt¨a¨an suurten tai pienten arvojen aiheuttamalta pienelt¨a gradientilta, jonka seurauksena neuroverkko oppii hitaasti. K¨aytett¨aess¨a ReLU:a aktivointifunktiona, sopivampi varianssi Γ painokertoimien jakaumalle on [26]

Γ(wl) = 2

nl, (35)

miss¨a nl on kerroksessa l olevien neuronien lukum¨a¨ar¨a.

2.8 Hyperparametrit ja neuroverkon tyyppi

Neuroverkon oppimien parametrien lis¨aksi k¨aytt¨aj¨an on m¨a¨aritett¨av¨a hyperparametrit (hyper-parameters). Hyperparametrit valitaan ennen opettamista ja niiden avulla py- syt¨a¨an vaikuttamaan neuroverkon kykyyn oppia. N¨ait¨a parametreja ovat muun muassa neuroverkon rakenteen m¨a¨aritt¨av¨at piilokerroksien m¨a¨ar¨a ja neuronien m¨a¨ar¨a kussakin kerroksessa sek¨a SGD:n oppimiskertoimen koko.

Hyperparametrien valitsemiseksi ei ole selvi¨a s¨a¨ant¨oj¨a, mutta neuroverkon sovelluskoh- de on ensimm¨ainen asia, jossa joudutaan tekem¨a¨an p¨a¨at¨oksi¨a hyperparametreista. Viel¨a ennen varsinaisten parametrien m¨a¨aritt¨amist¨a joudutaan tekem¨a¨an valinta, millaista neu- roverkkoa halutaan k¨aytt¨a¨a. T¨am¨an tutkielman tulokset on saatu k¨aytt¨am¨all¨a t¨aysin yh- distetty¨a neuroverkkoa, mutta mainittakoon ett¨a monissa ongelmissa on k¨ayt¨oss¨a kon-

(19)

voluutio neuroverkot (Convolutional Neural Networks, CNN) [13] ja takaisinkytkeytyv¨a neuroverkko (Recurrent Neural Network, RNN) [18] muun muassa niiden kuvien spatiaa- lisen ja puheen temporaalisen informaation s¨ailytt¨amisen kyvyn vuoksi.

Neuroverkon tyypin valinnan j¨alkeen parhaiten sopivien hyperparametrien valinta suo- ritetaan usein kokeilemalla. Verkon toiminnasta saadaan informaatiota, jonka perusteella saadaan k¨asitys, millaisia muutoksia parametreihin pit¨aisi tehd¨a. Muutokset voivat liit- ty¨a verkon kykyyn oppia opetusdatan pieni¨a piirteit¨a tai liian hitaaseen oppimiseen, joi- ta pystyt¨a¨an s¨a¨at¨am¨a¨an oppimiskertoimen avulla. T¨am¨an lis¨aksi liian pieni verkon koko voi aiheuttaa sen, ettei se kykene oppimaan haluttua monimutkaista funktiota. Toisaalta isoja verkkoja on hankala opettaa katoavan gradientin (vanishing gradient) ongelman ta- kia [12]. T¨am¨a johtuu siit¨a, ett¨a my¨ohemmill¨a kerroksilla parametrit muuttuvat aiempia nopeammin.

Sopivien hyperparametrien l¨oyt¨amiseksi neuroverkon suorituskyky¨a testataan erilli- sell¨a datajoukolla, jota kutsutaan kelpuutusdataksi (validation data). T¨ass¨a datajoukossa ei ole samoja n¨aytteit¨a kuin opetusdatassa tai testidatassa, jota k¨aytet¨a¨an neuroverkon suorituskyvyn mittaamiseen. Neuroverkkoa kutsutaan ylisovitetuksi (overfitting) [27], jos se on opetettu ja toimii hyvin yhdess¨a datajoukossa, mutta suoriutuu huonosti yleistetyn datan kanssa. Ylisovittamiselta pyrit¨a¨an v¨alttym¨a¨an hy¨odynt¨am¨all¨a kelpuutusdataa.

Hyperparametrien automaattista valintaa on my¨os tutkittu [28]. Sopivimpien hyperpa- rametrien valinta voidaan tehd¨a esimerkiksi m¨a¨aritetyst¨a diskreetist¨a parametrijoukosta, tekem¨all¨a satunnainen valinta [29] tai gradienttiin pohjautuvalla valinnalla [30].

2.9 Ylisovittaminen

Neuroverkko on funktio, joka approksimoi kuvausta sy¨otteiden ja ulostulojen v¨alill¨a. Ap- proksimointi suoritetaan parametrien, painojen ja kynnysarvojen avulla. Parametrien m¨a¨ar¨an kasvaessa ylisovittamisen riski kasvaa. Ylisovittaminen tarkoittaa, ett¨a verkko oppii opetusdatan tietyt piirteet, mutta sit¨a ei pystyt¨a yleist¨am¨a¨an t¨am¨an datajoukon ulkopuolelle. Samanlainen ilmi¨o tapahtuu, kun polynomi sovitetaan dataan, jonka data- pisteiden m¨a¨ar¨a on enint¨a¨an yksi enemm¨an kuin polynomin asteluku. T¨all¨oin polynomi saadaan sovitettua dataan t¨aydellisesti, mutta se ei yleens¨a ole paras kuvaus datalle. Yliso- vittamista tapahtuu herkimmin, kun datajoukko on pieni, eli parametrien m¨a¨ar¨a on pieni tai neuroverkkoa opetetaan liian pitk¨a¨an (liian monta epokkia). Ylisovittaminen voidaan huomata tarkastelemalla opetusjoukon ja kelpuutusjoukon sakkofunktion arvoa epokkien funktiona. Neuroverkon oppiessa molempien joukkojen sakkofunktion arvo v¨ahenee, mut- ta kun tapahtuu ylisovittamista, opetusjoukon sakkofunktion arvo jatkaa v¨ahenemist¨a ja validaatiojoukon sakkofunktio siirtyy kasvuun.

Kuvassa 7 on kaksi neuroverkon ennustamaa signaalia. N¨aiden signaalien opettamises-

(20)

Kuva 7: Kaksi n¨aytett¨a ylisovitetusta neuroverkon ulostulosta. a) N¨ayte opetusdatasta, johon neuroverkko on ylisovitettu voimakkaasti. b) N¨ayte testidatasta, johon neuroverkko ei kykene ennustamaan oikeaa signaalia.

sa neuroverkolle on annettu kaksi parametria, joiden perusteella sen on pit¨anyt ennustaa n¨aiden parametrien tuottama signaali. Vasemmanpuolinen n¨ayte oli mukana opetuksessa ja oikeanpuoleinen n¨ayte ei ollut. T¨ass¨a tapauksessa huomataan, ett¨a neuroverkko on yli- sovittanut voimakkaasti opetusdataan, mutta ei osaa yleist¨a¨a t¨am¨an datan ulkopuolelle.

2.10 Regularisointimenetelm¨ at

Ylisovittamisen ehk¨aisemiseksi voidaan k¨aytt¨a¨a regularisointimenetelmi¨a. Yksi t¨arke¨a kei- no on k¨aytt¨a¨a kelpuutusdataa, josta mainittiin aiemmin. T¨am¨a ehk¨aisee hyperparametrien valinnan ylisovittamisen testidataan. Paras keino ylisovittamisen ehk¨aisemiseksi on lis¨at¨a opetusdataa. Tavallisesti opetusdataa on saatavilla rajallinen m¨a¨ar¨a ja t¨am¨a ei ole mah- dollista. Toinen keino on v¨ahent¨a¨a verkon parametrien m¨a¨ar¨a¨a pienent¨am¨all¨a neuroverkon kokoa. T¨am¨a menetelm¨a on suositeltava, mik¨ali mahdollista mutta pieni neuroverkon koko rajaa pois sovelluskohteet, jotka vaativat tehokkaamman neuroverkon.

Regularisointimenetelm¨at muokkaavat joko itse neuroverkkoa tai sakkofunktiota siten ett¨a on mahdollista v¨altty¨a ylisovittamiselta. L2 regularisointi [31] muokkaa sakkofunk- tiota lis¨a¨am¨all¨a regularisointitermin sakkofunktioon. Regularisoitu residuaalin normi on [12]

Cx =||y(x)−aL(x)||2+ λ

2nΣww2. (36)

Regularisointitermi sis¨alt¨a¨a painojen neli¨oiden summan ja regularisointiparametrinλ >0.

Regularisointi voidaan tehd¨a muillekin sakkofunktioille. Regularisointitermi m¨a¨aritt¨a¨a, suosiiko verkko enemm¨an pieni¨a painoja vai sakkofunktion minimoimista.

Pudotusmenetelm¨a (Dropout) [32] on toisenlainen regularisointimenetelm¨a. Sakko- funktion muokkaamisen sijaan se muokkaa verkon rakennetta. Muokkaaminen tapahtuu

(21)

poistamalla tilap¨aisesti osa neuroneista. T¨am¨an j¨alkeen neuroverkkoa opetetaan j¨aljelle j¨a¨aneill¨a neuroneilla opetus-osajoukolle (Mini-batch). Yhdelle opetus-osajoukolle opetta- misen j¨alkeen poistetut neuronit palautetaan ja uudet poistettavat neuronit valitaan sa- tunnaisesti. T¨am¨a toistetaan koko opetusdatalle. T¨am¨an prosessin aikana ei opeteta koko neuroverkkoa, joten se ei k¨arsi ylisovittamisesta. J¨aljelle j¨a¨aneist¨a neuroneista koostuvat neuroverkot ovat ylisovittuneet opetus-osajoukon datalle, jolle ne on opetettu. Neuroverk- ko kokonaisuudessaan ei kuitenkaan ole ylisovitettu, koska sit¨a ei ole k¨aytetty kaikkine neuroneineen mill¨a¨an opetusjoukolla opettamiseen.

(22)

Kuva 8: CIPIC-tietokannassa k¨aytetyt mitat ihmisen parametrisointiin. (Kuva: V. R. Al- gazi and R. O. Duda and D. M. Thompson. The CIPIC HRTF Database.IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, 21-24 October, 2001.)

3 Yksil¨ ollisen HRTF:n opettaminen neuroverkolla

Neuroverkkoja on aiemmin k¨aytetty yksil¨ollisen HRTF:n muodostamiseen [34]. T¨all¨oin opetusdata saatiin tietokannasta, jossa on henkil¨oiden HRTF:ta vastaavat impulssivas- teet. HRTF on korvak¨ayt¨av¨a¨an menev¨an ¨a¨aniaallon amplitudispektri ihmiskehosta siron- neelle aallolle. Impulssivaste t¨all¨oin on taajuustasossa olevan amplitudispektrin informaa- tio ilmaistuna aikatasossa. T¨all¨oin impulssivaste (Head-Related Impulse Response, HRIR) ja HRTF ovat yhteydess¨a Fourier-muunnoksen avulla. HRIRf(t) saadaan muutettua taa- juustasoon HRTF:ksi ˆf(t) Fourier-muunnoksella

f(ω) =ˆ Z

−∞

f(t)e−iωtdt, (37)

miss¨a aikatason impulssivaste f(t) muunnetaan taajuuden ω funktioksi. HRTF saadaan aikatasoon Fourier’n k¨a¨anteismuunnoksella

f(t) = 1 2π

Z

−∞

fˆ(ω)eiωtdω. (38)

3.1 CIPIC-tietokanta

CIPIC (UC Davis, Center for Image Processing and Integrated Computing) on HRTF:n tutkimiseen luotu tietokanta [33]. Sinne on ker¨atty kokeellisesti mitattu HRIR 45 koe- henkil¨olt¨a 1250 suunnasta 2 metrin et¨aisyydelt¨a p¨a¨an keskipisteest¨a. Tietokanta sis¨alt¨a¨a my¨os koehenkil¨oist¨a mitattuja antropometrisia mittoja. Mitat sis¨alt¨av¨at p¨a¨an ja hartioi- den koon sek¨a erityisesti ulkokorvasta tehtyj¨a mittoja, joiden oletetaan olevan t¨arkeit¨a HRTF:n m¨a¨aritt¨amiseksi (Kuva 8).

(23)

3.2 HRTF:n opettaminen antropometrisista mitoista

Neuroverkkojen hy¨odynt¨amist¨a HRTF:n muodostamisessa antropometrisiin mittoihin pe- rustuen on tutkittu k¨aytt¨am¨all¨a opetuksessa sy¨otteen¨a henkil¨on antropometrisi¨a mittoja ja ulostulona saman henkil¨on HRIR [34]. Heid¨an saamansa tulokset n¨ayttiv¨at lupaavil- ta siin¨a mieless¨a, ett¨a neuroverkko oppi impulssivasteen suurimpien piikkien paikat ja oli virheelt¨a¨an pienempi kuin impulssivasteiden keskiarvon virhe. Ty¨oss¨a [34] k¨aytettiin CIPIC-tietokannan 35 koehenkil¨on dataa, joilla oli kaikki heid¨an haluamat antropomet- riset mitat sek¨a HRIR:t.

T¨am¨an tutkielman ensimm¨ainen askel oli toistaa edell¨a mainittu koe HRIR:n sijaan HRTF:ll¨a. T¨all¨oin neuroverkko oppisi suoraan HRTF:n sille annettujen antropometristen mittojen perusteella. T¨am¨a tehtiin sen takia, ett¨a opittu impulssivaste on mahdollisesti kadottanut paljon taajuusinformaatiota, vaikka sen antama impulssivaste on l¨ahell¨a halut- tua. Sen sijaan HRTF:ta opetettaessa sakkofunktion arvo pienenee taajuusinformaation ollessa oikein.

Neuroverkon opetusjoukoksi valittiin 35 koehenkil¨ost¨a 34, jolloin yht¨a koehenkil¨o¨a k¨aytettiin neuroverkon suoriutumisen mittaamiseen testidatana. Neuroverkolle opetet- tiin HRTF vain yhdest¨a suunnasta. Neuroverkon sy¨otteen¨a oli koehenkil¨oiden 7 ant- ropometrista mittaa, jotka m¨a¨aritt¨av¨at p¨a¨aosin HRTF:n muodon [35]. Ulostulona oli t¨am¨an henkil¨on HRTF. Koe suoritettiin kaksi kertaa. Molemmissa tapauksissa neuro- verkon suorituskyky¨a mittaava koehenkil¨o valittiin satunnaisesti, kuitenkin eri henkil¨o kummassakin tapauksessa. K¨aytetyss¨a neuroverkossa oli 5 piilokerrosta, joissa oli 64 neu- ronia. Kaikkien muiden paitsi ulostulokerroksessa olevien neuroneiden aktivaatiofunktio- na k¨aytettiin ReLU:a. Ulostulokerroksessa k¨aytettiin sigmoidia aktivointifunktiona. As- kelparametri oli 0.001 ja neuroverkko hy¨odynsi pudotusmenetelm¨a¨a neuronien verkkoon j¨att¨amistodenn¨ak¨oisyydell¨a 0.9. Neuroverkkoa opetettiin 2000 epokkia. K¨aytetty neuro- verkko vastaa aiemmassa HRIR:n opetuksessa k¨aytetty¨a. Poikkeuksena ulostulokerroksen aktivointifunktiona k¨aytettiin ReLU:n sijasta sigmoidia, koska sen huomattiin tuottavan parempia oppimistuloksia. Lis¨aksi k¨aytetty antropometristen mittojen m¨a¨ar¨a (7) poikke- aa HRIR kokeessa k¨aytetyst¨a 23:sta mitasta.

Kuvassa 9 on kahden erillisen opetetun neuroverkon ennustamat HRTF:t. Lis¨aksi ku- vassa on sakkofunktion arvo verkkojen opettamisen aikana. N¨aiss¨a kahdessa neuroverkossa oli k¨aytetty satunnaisesti valittuja henkil¨oit¨a testidatana.

(24)

Kuva 9: Opetetun neuroverkon ennustama HRTF ja todellinen HRTF kahdelle opetus- joukolle sek¨a n¨aiden sakkofunktio epokkien funktiona. HRTF:t ovat skaalattuja kymme- nesosaan alkuper¨aisest¨a opetuksen vuoksi.

(25)

4 Menetelm¨ at

T¨am¨an tutkielman p¨a¨aasiallinen tarkoitus oli opettaa neuroverkolle ihmist¨a yksinkertai- semman ja paremmin parametrisoitavan kappaleen sirottaman ¨a¨aniaallon taajuusvaste en- nalta m¨a¨aritellyiss¨a pisteiss¨a. Sirottavaksi kappaleeksi valittiin erikokoisia sferoidisia kap- paleita. Ne ovat ellipsoideja, joilla kaksi kolmesta puoliakselista ovat samanpituisia (kuva 12). Mittausasetelmaa muutettiin HRTF:n mittauksesta siten ett¨a ¨a¨anil¨ahteen paikka oli aina 1 mm p¨a¨ass¨a ellipsoidista positiiviseny-akselin puolella, kun origo oli kappaleen kes- kell¨a. Lis¨aksi mittauspisteisteet olivat ellipsoidin ymp¨ar¨oiv¨all¨a ympyr¨an pinnalla. Pallo- pinta oli origokeskeinen ja s¨ateelt¨a¨an 2 m. Mittauspisteit¨a oli 836. Kuvassa 10 on esitetty simuloinnissa k¨aytetty asetelma, jossa ellipsoidin ymp¨arille on kuvattu mittauspisteet. 0 elevaatio tasossa ¨a¨anil¨ahde, ellipsoidi ja kaikki tason mittauspisteet on kuvassa 11.

T¨ass¨a ty¨oss¨a neuroverkkoja pyrit¨a¨an opettamaan pienell¨a datam¨a¨ar¨all¨a. Koetta varten simuloitiin BEM:ll¨a 200:sta erikokoisesta ellipsoidista siroava ¨a¨anikentt¨a mittauspisteiss¨a.

Jokaiselle mittauspisteelle opetettiin oma neuroverkko antamaan taajuusspektri, kun sille sy¨ott¨a¨a ellipsoidin puoliakseleiden arvot. Neuroverkon opettaminen tehtiin viidell¨a eri suuruisella opetusjoukolla. Opetus tehtiin 20, 50, 100, 150 ja 190 ellipsoidilla. Jokaisessa tapauksessa k¨aytettiin 10 ellipsoidia arvioimaan neuroverkon suorituskyky¨a laskemalla keskiarvo taajuusspektrin suhteelliselle virheelle

C =E

||y−y||ˆ 2

||y||2

, (39)

miss¨a ˆyon neuroverkon approksimaatio taajuusspektrille jayon todellinen taajuusspektri.

yja ˆyovat vektoreita, jotka sis¨alt¨av¨at koko testidatan. Sakkofunktion lopulliseksi arvoksi m¨a¨ariteltiin keskiarvo viiden viimeisen epokin virheen arvosta, jotta v¨ahennet¨a¨an mah- dollisen sakon arvon heilahtelun vaikutusta. Testaukseen k¨aytettyj¨a n¨aytteit¨a ei k¨aytetty opettamisessa.

Opettamiseen k¨aytetyn neuroverkon hyperparametrit optimoitiin 100 opetusn¨aytteell¨a mittauspisteess¨a (φ, θ) = (0,90) ja samoja hyperparametreja k¨aytettiin jokaisessa mit- tauspisteess¨a ja kaikilla opetusdatan m¨a¨arill¨a. Neuroverkot olivat t¨aysin yhdistettyj¨a, ja koostuivat 3 piilokerroksesta, joissa kussakin oli 256 neuronia. Sy¨otekerroksessa oli 2 neu- ronia puoliakselin arvoille ja ulostulokerroksessa oli 375 neuronia, joka on taajuusspektrin pituus. Askelparametri oli η = 0.001 ja sit¨a pienennettiin jokaisen epokin j¨alkeen 0.99 kertaiseksi. Aktivointifunktiona k¨aytettiin jokaisessa piilokerroksessa ReLU:a ja ulostulo kerroksessa sigmoid funktiota. Optimointialgoritmi oli AdamOptimizer.

Jokaisen suunnan keskiarvon lis¨aksi tarkasteltiin kolmen yksitt¨aisen suunnan suoriu- tumista tarkemmin, jotta on mahdollista n¨ahd¨a, miten neuroverkon approksimoiva taa- juusvaste vertautuu todelliseen taajuusvasteeseen. Ensimm¨ainen suunta on ¨a¨anil¨ahteen

(26)

Kuva 10: Mittauspisteet ymp¨ar¨oiv¨at ellipsoidia 2 m s¨ateisell¨a pallopinnalla.

Kuva 11: Mittausasetelmasta 0-elevaatiotasossa. Kuvaan on merkitty ellipsoidi, ¨a¨anil¨ahde ja kaikki 0-elevaation mittauspisteet. Ellipsoidi ei ole todellisessa mittakaavassa.

(27)

Kuva 12: ¨A¨aniaaltoa sirottavana kappaleena k¨aytettiin ellipsoideja, joiden kaksi puoliak- selia ovat samanpituisia. T¨allaisia ellipsoideja kutsutaan prolate ja oblate sferoideiksi.

Ne muodostuvat, kun ellipsi py¨or¨aytet¨a¨an puoliakselinsa ymp¨ari. Prolate sferoidi (vasem- man puoleinen kuva) muodostuu kun py¨or¨aytys tehd¨a¨an pidemm¨an puoliakselin ymp¨ari ja oblate sferoidi (oikean puoleinen kuva) muodostuu kun py¨or¨aytys tehd¨a¨an lyhyemm¨an puoliakselin ymp¨ari. Ellipsoideille muodostuu t¨all¨oin kaksi samanmittaista puoliakselia.

2 neuronia

256 neuronia 256 neuronia 256 neuronia 375 neuronia

Kuva 13: Taajuusspektrin opettamiseen k¨aytetyn neuroverkon rakenne. Sy¨otekerroksessa on kaksi neuronia puoliakselien arvoille ja ulostulokerroksessa on 375 neuronia, joka on taajuusspektrin pituus. Piilokerroksessa on kolme ja jokaisessa on 256 neuronia. Kaikki kerrokset ovat t¨aysin yhdistettyj¨a.

(28)

θ

ϕ

z

x

y

Kuva 14: T¨ass¨a tutkielmassa k¨aytetty koordinaatisto. Leveystason ja korkeustason kulmat on m¨a¨aritelty kuvan mukaisesti siten ett¨a kulma (φ, θ) = (0,0) on positiivisen x-akselin suunnassa.

puolelta, (φ, θ) = (+90,0), toinen on ¨a¨anil¨ahteeseen n¨ahden sivulta, (φ, θ) = (0,0) ja kol- mas on ¨a¨anil¨ahteeseen n¨ahden vastakkaiselta puolelta (φ, θ) = (−90,0). Kuvassa 14 on t¨ass¨a kuvassa k¨aytetty koordinaatisto.

Kolmelle suunnalle opettamisen tarkoituksena oli lis¨aksi tutkia ekstrapolointiongel- maa. Kuvassa 15 on esimerkkin¨a opettamiseen ja testaukseen k¨aytetyt puoliakseleiden arvot 50 n¨aytteen kokeessa. Kuvasta n¨akyy opettamiseen k¨aytetyt puoliakselien arvot ja kaksi testivaiheessa k¨aytetty¨a arvoa. Neuroverkon kyky¨a ennustaa taajuusspektri tutkit- tiin, kun puoliakseleiden arvot ovat n¨aytejoukon reunoilla. T¨am¨a tarkoittaa puoliakselei- den arvojen valitsemista l¨ahelt¨a 5 cm tai 15 cm. N¨aytejoukon koon vaikutusta ekstra- polointiongelmaan tutkittiin k¨aytt¨am¨all¨a eri kokoisia opetusjoukkoja. Opetusjoukkojen koot olivat samat kuin aiemmassa kokeessa: 20, 50, 100, 150 ja 190. Testidataa ei valittu satunnaisesti kuten aiemmin, vaan reunalta valittiin yksi n¨ayte, jonka verkon estimoi- ma taajuusspektri vastaa huonosti todellista 50 n¨aytteell¨a opetettaessa. Samaa n¨aytett¨a k¨aytettiin muillakin opetusdatan m¨a¨arill¨a. Sakkofunktion arvon kehittymist¨a seurattiin n¨aill¨a kahdella n¨aytteell¨a, kun opetusdatan m¨a¨ar¨a¨a kasvatettiin.

Todellisuudessa ellipsoidien puoliakseleiden pituudet sis¨alt¨av¨at mittauksesta johtu- vaa satunnaista virhett¨a. T¨ass¨a ty¨oss¨a opetettaviin taajuusvasteisiin tai puoliakseleiden pituuksiin ei lis¨atty kohinaa. Tulokset eiv¨at siis ota kantaa neuroverkon kykyyn siet¨a¨a mittausvirhett¨a.

Jokainen t¨ass¨a ty¨oss¨a k¨aytetty neuroverkko opetettiin k¨aytt¨aen Python-kielell¨a toi-

(29)

Kuva 15: Semiakseleiden arvot, joita k¨aytettiin neuroverkon opettamiseen ja testaami- seen, kun tutkittiin ekstrapolointiongelmaa. Punaisella on merkitty neuroverkon opetta- miseen k¨aytetyt puoliakseleiden arvot, vihre¨all¨a testidatan ekstrapolointin¨ayte ja mustalla testidatan interpolointin¨ayte.

mivaa Tensorflow-kirjastoa [36]. Liitteiss¨a 1 ja 2 on luonnokset opettamiseen k¨aytetyist¨a koodeista.

(30)

5 Tulokset

Kuvissa 16 ja 17 on sakkofunktion keskiarvo viidelt¨a viimeiselt¨a epokilta, kun opetusdatan m¨a¨ar¨a on 20, 50, 100, 150 ja 190 n¨aytett¨a. Kuvassa 18 on edellisille kuville jokaisen suunnan sakon keskiarvo opetusdatan m¨a¨ar¨an funktiona.

Kuvissa 19 ja 20 on suunnasta (φ, θ) = (0,0), kuvissa 22 ja 23 on suunnasta (φ, θ) = (90,0) ja kuvissa 25 ja 26 on suunnasta (φ, θ) = (0,−90) interpolointi- ja ekstrapo- lointin¨aytteille todellinen ja neuroverkon ennustama taajuusspektri kaikilla opetusdatan m¨a¨arill¨a. Kuvassa 21, 24 ja 27 on n¨aill¨a jokaisella datam¨a¨ar¨all¨a vastaaville suunnille ope- tetun verkon sakkofunktion arvo epokkien funktiona.

(31)

Kuva 16: Sakkofunktion arvo jokaisessa mittauspisteess¨a opetuksen lopussa eri m¨a¨ar¨all¨a opetusdataa. Opetusdatan m¨a¨ar¨a on kuvissa ylimm¨ast¨a alimpaa 20, 50 ja 100.

(32)

Kuva 17: Sakkofunktion arvo jokaisessa mittauspisteess¨a opetuksen lopussa eri m¨a¨ar¨all¨a opetusdataa. Opetusdatan m¨a¨ar¨a on kuvissa ylimm¨ast¨a alimpaa 150 ja 190.

Kuva 18: Keskiarvo kuvien 16 ja 17 datasta opetusdatan koon funktiona.

(33)

Kuva 19: Neuroverkon ennustamat ja todelliset interpolointi- ja ekstrapolointi- taajuusspektrit n¨aytteiden m¨a¨arill¨a 20, 50 ja 100 mittauspisteess¨a (φ, θ) = (0,0).

(34)

Kuva 20: Neuroverkon ennustamat ja todelliset interpolointi- ja ekstrapolointi- taajuusspektrit n¨aytteiden m¨a¨arill¨a 150 ja 190 mittauspisteess¨a (φ, θ) = (0,0).

(35)

Kuva 21: Sakkofunktion arvo 20, 50, 100, 150 ja 190 opetusn¨aytteell¨a epokkien funktiona mittauspisteess¨a (φ, θ) = (0,0).

(36)

Kuva 22: Neuroverkon ennustamat ja todelliset interpolointi- ja ekstrapolointi- taajuusspektrit n¨aytteiden m¨a¨arill¨a 20, 50 ja 100 mittauspisteess¨a (φ, θ) = (90,0).

(37)

Kuva 23: Neuroverkon ennustamat ja todelliset interpolointi- ja ekstrapolointi- taajuusspektrit n¨aytteiden m¨a¨arill¨a 150 ja 190 mittauspisteess¨a (φ, θ) = (90,0).

(38)

Kuva 24: Sakkofunktion arvo 20, 50, 100, 150 ja 190 opetusn¨aytteell¨a epokkien funktiona mittauspisteess¨a (φ, θ) = (90,0).

(39)

Kuva 25: Neuroverkon ennustamat ja todelliset interpolointi- ja ekstrapolointi- taajuusspektrit n¨aytteiden m¨a¨arill¨a 20, 50 ja 100 mittauspisteess¨a (φ, θ) = (−90,0).

(40)

Kuva 26: Neuroverkon ennustamat ja todelliset interpolointi- ja ekstrapolointi- taajuusspektrit n¨aytteiden m¨a¨arill¨a 150 ja 190 mittauspisteess¨a (φ, θ) = (−90,0).

(41)

Kuva 27: Sakkofunktion arvo 20, 50, 100, 150 ja 190 opetusn¨aytteell¨a epokkien funktiona mittauspisteess¨a (φ, θ) = (−90,0).

(42)

6 Pohdinta

Ty¨oss¨a tutkittiin neuroverkkojen soveltuvuutta akustisesta siroamisesta syntyv¨an taa- juusspektrin oppimiseen sirottavan kappaleen parametrisaation perusteella. Lis¨aksi tut- kittiin opetusdatan vaikutusta neuroverkon kykyyn oppia taajuusspektri.

Sirottavana kappaleena k¨aytettiin ellipsoideja, joiden kaksi puoliakselia ovat saman- pituisia. Taajuusspektrit mitattiin 836:ssa kappaleen ymp¨ar¨oiv¨ass¨a pallopinnalla olevas- sa pisteess¨a. Neuroverkolle opetettiin taajuusspektri kussakin pisteess¨a sirottavan kap- paleen puoliakseleiden pituuksien perusteella. Opetettavan neuroverkon hyperparamet- rit optimoitiin k¨aytt¨am¨all¨a opetukseen 100 n¨aytett¨a ja mittauspisteen¨a (φ, θ) = (0,0).

T¨am¨an seurauksena muiden mittauspisteiden taajuusspektrien virhett¨a saataisiin mah- dollisesti pienennetty¨a optimoimalla neuroverkko jokaiselle mittauspisteelle erikseen. Suu- rin suhteellinen taajuusspektrin virhe on ¨a¨anil¨ahteen vastakkaisella puolella ellipsoidia (φ, θ) = (−90,0). On yll¨att¨av¨a¨a, ett¨a neuroverkon on t¨all¨oin todella hankala oppia taa- juusspektri. Kuvassa 27 huomataan, ettei sakkofunktio edes l¨ahde suppenemaan kaikil- la opetuskerroilla. T¨ass¨akin suunnassa mitattu taajuusspektri on luultavasti mahdollista opettaa neuroverkolle, mik¨ali verkon rakenne muutetaan t¨alle suunnalle sopivaksi.

Kuvassa 18 kaikkien suuntien sakkofunktioiden arvojen keskiarvo pienenee datam¨a¨ar¨an kasvaessa. T¨am¨a oli haluttu tulos, mutta datan m¨a¨ar¨all¨a oletettiin olevan viel¨akin suu- rempi vaikutus.

Opetuksessa k¨aytettiin pient¨a datam¨a¨ar¨a¨a, koska haluttiin tutkia, onko pienell¨a m¨a¨a- r¨all¨a dataa mahdollista opettaa taajuusspektri ellipsoidista siroavalle aallolle. Sovelluskoh- teena neuroverkolle on taajuusspektrin opettaminen ihmisen korvasta siroavalle ¨a¨anelle (HRTF). HRTF:n tapauksessa sirottava kappale, eli korva, on paljon monimutkaisempi, joten sen oletetaan vaativan enemm¨an opetusdataa ja lis¨aksi datan ker¨a¨aminen HRTF:n opettamiseen on hidasta, joten siin¨a joudutaan jokatapauksessa ty¨oskentelem¨a¨an pienen datam¨a¨ar¨an kanssa.

Pienen datam¨a¨ar¨an k¨aytt¨aminen tuottaa yleisesti ongelmia, koska uusien n¨aytteiden joukossa on todenn¨ak¨oisemmin n¨aytteit¨a, joiden kanssa neuroverkko joutuu ekstrapo- loimaan. Ekstrapolointiongelmaa haluttiin tutkia valitsemalla ekstrapolointin¨ayte, jonka puoliakseleiden arvot ovat opetusjoukon reunalta ja vertaamalla t¨at¨a interpolointin¨aytteeseen, jonka puoliakseleiden arvot ovat l¨ahell¨a keskiarvoja. N¨aill¨a n¨aytteill¨a neuroverkon ap- proksimoivaa taajuusspektri¨a vertailtiin tarkemmin kolmessa mittauspisteess¨a. Kahdelle suunnalle kuvissa 19, 20, 22 ja 23 olevat taajuusspektrien approksimaatiot ovat heik- koja pienimmill¨a datam¨a¨arill¨a ja paranevat datan m¨a¨ar¨an kasvaessa 100 n¨aytteeseen.

Yll¨att¨aen t¨at¨a suuremmilla datam¨a¨arill¨a approksimaation paranemista ei tapahtunut. In- terpolointin¨aytteen ja ekstrapolointin¨aytteen v¨alill¨a ei ollut suurta eroa vaikkakin inter- polointin¨ayte n¨aytti suoriutuvan hieman paremmin leveystasoilla 0 ja 90. ¨A¨anil¨ahteen

(43)

varjopuolella olevalla opetussuunnalla neuroverkko ei oppinut taajuusspektri¨a kummalla- kaan n¨aytteell¨a. Opetusdatan suurempikaan m¨a¨ar¨a ei parantanut oppimista t¨alt¨a suun- nalta.

T¨am¨a interpoloinnin ja ekstrapoloinnin tutkiminen suoritettiin sen vuoksi, ett¨a HRTF:n laskemisessa joudutaan mahdollisesti my¨os ekstrapoloimaan, koska ihmisten korvat ovat eri muotoisia.

Interpoloinnin ja ekstrapoloinnin vaikutuksen tutkimiseen voisi jatkossa ottaa mukaan enemm¨an n¨aytteit¨a. Esimerkiksi kaikki n¨aytteet voitaisiin jakaa kahtia interpolointi ja ek- strapolointin¨aytteisiin. T¨all¨oin olisi mahdollista tutkia esimerkiksi kummankin joukon vir- heiden keskiarvoa, jolloin v¨altytt¨aisiin yksitt¨aisen n¨aytteen antamalta satunnaisuudelta.

Jatkossa opetettavien neuroverkkojen m¨a¨ar¨a¨a on mahdollista v¨ahent¨a¨a esitt¨am¨all¨a data paremmassa muodossa. Data voitaisiin esitt¨a¨a sen p¨a¨akomponenttien avulla [37].

T¨all¨oin mittauspisteiden m¨a¨ar¨a olisi mahdollista pienent¨a¨a, kun kaikkien taajuusvasteiden esitt¨amiseen tarvitaan vain osasta suunnista m¨a¨aritetyt taajuusvasteet.

Viitteet

[1] B. Xie. Head-Related Transfer Function and Virtual Auditory Display. J. Ross Publishing, Inc., 2013.

[2] W. G. Gardner and K. D. Martin. Hrtf measurements of a kemar. J. Acoust. Soc.

Amer., 97(3907-3908), 1995.

[3] S-N. Yao, T. Collins, and C. Liang. Head-related transfer function selection using neural networks. Archieves of Acoustics, 42(3), 2017.

[4] J. S. Asvestas, J. J. Bowman, P. L. Christiansen, O. Einarsson, R. E. Kleinman, D. L. Sengupta, T. B. A. Senior, F. B. Sleator, P. L. E. Uslenghi, and N. R. Zitron.

Electromagnetic Acoustic Scattering by Simple Shapes. North-Holland Publishing Company, 1969.

[5] F. Ihlenburg. Finite Element Analysis of Acoustic Scattering. Springer, 1998.

[6] R. Adelman, N. A. Gumerov, and R. Duraiswami. Semi-analytical computation of acoustic scattering by spheroids and disks. Acoustic Society of America, 136, 2014.

[7] R. Adelman, N. A. Gumerov, and R. Duraiswami. Software for computing the sphe- roidal wave functions using arbitrary precision arithmetic. arXiv:1408.0074v1, 2014.

[8] S. J¨arvenp¨a¨a, T. Huttunen, A. Vanne, M. Malinen, J. Roivainen, and P. Yl¨a-Oijala.

Fast boundary element simulation of noise emission from vibrating structures. Jour- nal of Structural Mechanics, 49, 2016.

(44)

[9] W. S. McCulloch and W. H. Pitts. A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, 5(115-133), 1943.

[10] D. Hebb. The Organization of Behavior A NEUROPSYCHOLOGICAL THEORY.

OHN WILEY and SONS, Inc, 1949.

[11] B. Widrow. Thinking about thinking: The discovery of the lms algorithm. IEEE Signal Processing Magazine, 100, 2005.

[12] M. A. Nielsen. Neural Networks and Deep Learning. Determination Press, 2015.

[13] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 1998.

[14] T. N. Sainath, B. Kingsbury, A-R. Mohamed, G. E. Dahl, G. Saon, H. Soltau, T. Be- ran, A. Y. Aravkin, and B. Ramabhadran. Improvements to deep convolutional neural networks for lvcsr. arXiv:1309.1501v3, 2013.

[15] C-C Chiu, T. N. Sainath, Y. Wu, R. Prabhavalkar, P. Nguyen, Z. Chen, A. Kan- nan, R. J. Weiss, K Rao, E. Gonina, N. Jaitly, B. Li, J. Chorowski, and M. Bacchiani. State-of-the-art speech recognition with sequence-to-sequence models.

arXiv:1712.01769v6, 2018.

[16] A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. NIPS’12 Proceedings of the 25th International Con- ference on Neural Information Processing Systems, 1, 2012.

[17] M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional networks.

arXiv:1311.2901v3, 2013.

[18] N. Buduma. Fundamentals of Deep Learning. O’Reilly Media, Inc, 2017.

[19] I. Goodfellow, Y. Bengio, and A. Courville. Deep Learning. MIT Press, 2016.

[20] S. Ruder. An overview of gradient descent optimization algorithms.

arXiv:1609.04747v2, 2017.

[21] D. E. Rumelhart, G. E. Hinton, and R. J. Williams. Learning representations by backpropagation. Nature, 323(9), 1986.

[22] J. Duchi, E. Hazan, and Y. Singer. Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12, 2011.

[23] T. Tijmen and G. Hinton. Coursera: Neural networks for machine learning, lecture

(45)

[24] D. P. Kingma and J. L. Ba. Adam: A method for stochastic optimization.

arXiv:1412.6980v9, 2017.

[25] X. Glorot and Y. Bengio. Understanding the difficulty of training deep feedforward neural networks. Proceedings of the 13th International Conference on Artificial In- telligence and Statistics, 9, 2010.

[26] K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers: Surpassing human- level performance on imagenet classification. arXiv:1502.01852v1, 2015.

[27] R. Caruana, S. Lawrence, and L. Giles. Overfitting in neural nets: Backpropagation, conjugate gradient, and early stopping.NIPS’00 Proceedings of the 13th International Conference on Neural Information Processing Systems, 2000.

[28] F. Hutter, J. L¨ucke, and L Schmidt-Thieme. Beyond manual tuning of hyperpara- meters. K¨unstliche Intelligenz, 29(4), 2015.

[29] J. Bergstra and Y. Bengio. Random search for hyper-parameter optimization.Journal of Machine Learning Research, 13, 2012.

[30] P. Frasconi M. Pontil L. Franceschi, M. Donini. Forward and reverse gradient-based hyperparameter optimization. arXiv:1703.01785v3, 2017.

[31] A. Y. Ng. Feature selection, l1 vs. l2 regularization, and rotational invariance. Procee- dings of the twenty-first international conference on Machine learning, 69, 2004.

[32] N. Srivastava, G. Hinton, A. Krizhevsky, I. Sutskever, and R. Salakhutdinov. Dro- pout: A simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 15(1), 2014.

[33] V. R. Algazi, R. O. Duda, and D. M. Thompson. The cipic hrtf database. IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, 21-24 Octo- ber, 2001.

[34] C. J. Chun, J. M. Moon, G. W. Lee, N. K. Kim, and H. K. Kim. Deep neural network based hrtf personalization using anthropometric measurements. Audio Engineering Society, Convention Paper 9860, 2017.

[35] M. Zhang, R. Kennedy, T. Abhayapala, and W. Zhang. Statistical method to identify key anthropometric parameters in hrtf individualization. 2011 Joint Workshop on Hands-free Speech Communication and Microphone Arrays, 2011.

[36] M. Abadi, A. Agarwal, and P. Barham et.al. Tensorflow: Large-scale machine learning on heterogeneous distributed systems. arXiv, 1603.04467v2, 2016.

(46)

[37] C. Hold, F. Seipel, F. Brinkmann, A. Lykartsis, and S. Weinzierl. Eigen-images of head-related transfer functions. Audio Engineering Society, Convention Paper 9891, 2017.

(47)

Liite1: Python-Koodi kaikkien suuntien opettamiseen

import t e n s o r f l o w a s t f

import m a t p l o t l i b . p y p l o t a s p l t import numpy a s np

from l o a d d a t a h 5 o n e d i r e c t i o n import l o a d d a t a h 5 o n e d i r e c t i o n import random

# Number o f n e u r o n s i n e a c h h i d d e n l a y e r n n o d e s h l 1 = 256

n n o d e s h l 2 = 256 n n o d e s h l 3 = 256

# Number o f n e u r o n s i n i n p u t and o u t p u t l a y e r n f e a t u r e s = 2

n l a b e l s = 375

hm epochs = 200 # Number o f e p o c h s t o r u n TRAINING SPLIT = 100 # Number o f t r a i n i n g s a m p l e s

e t a = 0 . 0 0 1 # L e a r n i n g r a t e

# I n i t i a l i z e v a r i a b l e s f o r i n p u t s and o u t p u t s x = t f . p l a c e h o l d e r ( ’ f l o a t ’ , [ None , n f e a t u r e s ] ) y = t f . p l a c e h o l d e r ( ’ f l o a t ’ )

d e f n e u r a l n e t w o r k m o d e l ( d a t a ) :

# D e f i n e n e t w o r k s t r u c t u r e h i d d e n 1 l a y e r = {

’ w e i g h t s ’ : t f . V a r i a b l e ( 0 . 0 1 ∗ t f . random normal ( [ n f e a t u r e s , n n o d e s h l 1 ] ) ) ,

’ b i a s e s ’ : t f . V a r i a b l e ( 0 . 1 ∗ t f . random normal ( [ n n o d e s h l 1 ] ) )}

h i d d e n 2 l a y e r = {

’ w e i g h t s ’ : t f . V a r i a b l e ( 0 . 0 1 ∗ t f . random normal (

(48)

[ n n o d e s h l 1 , n n o d e s h l 2 ] ) ) ,

’ b i a s e s ’ : t f . V a r i a b l e ( 1 ∗ t f . random normal ( [ n n o d e s h l 2 ] ) )}

h i d d e n 3 l a y e r = {

’ w e i g h t s ’ : t f . V a r i a b l e ( 0 . 0 1 ∗ t f . random normal ( [ n n o d e s h l 2 , n n o d e s h l 3 ] ) ) ,

’ b i a s e s ’ : t f . V a r i a b l e ( 1 ∗ t f . random normal ( [ n n o d e s h l 3 ] ) )}

o u t p u t l a y e r = {

’ w e i g h t s ’ : t f . V a r i a b l e ( 0 . 0 1 ∗ t f . random normal ( [ n n o d e s h l 3 , n l a b e l s ] ) ) ,

’ b i a s e s ’ : t f . V a r i a b l e ( 0 . 1 ∗ t f . random normal ( [ n l a b e l s ] ) )}

# A c t i v a t i o n s i n e a c h l a y e r

l 1 = t f . add ( t f . matmul ( data , h i d d e n 1 l a y e r [ ’ w e i g h t s ’ ] ) , h i d d e n 1 l a y e r [ ’ b i a s e s ’ ] )

l 1 = t f . nn . r e l u ( l 1 )

l 2 = t f . add ( t f . matmul ( l 1 , h i d d e n 2 l a y e r [ ’ w e i g h t s ’ ] ) , h i d d e n 2 l a y e r [ ’ b i a s e s ’ ] )

l 2 = t f . nn . r e l u ( l 2 )

l 3 = t f . add ( t f . matmul ( l 2 , h i d d e n 3 l a y e r [ ’ w e i g h t s ’ ] ) , h i d d e n 3 l a y e r [ ’ b i a s e s ’ ] )

l 3 = t f . nn . r e l u ( l 3 )

o u t p u t = t f . matmul ( l 3 , o u t p u t l a y e r [ ’ w e i g h t s ’ ] ) + o u t p u t l a y e r [ ’ b i a s e s ’ ]

o u t p u t = t f . nn . s i g m o i d ( o u t p u t ) r e t u r n o u t p u t

d e f t r a i n n e u r a l n e t w o r k ( x ) :

(49)

# I n i t i a l i z e c o m p u t a t i o n a l g r a p h s p r e d i c t i o n = n e u r a l n e t w o r k m o d e l ( x )

c o s t = t f . l o s s e s . m e a n s q u a r e d e r r o r ( y , p r e d i c t i o n )

o p t i m i z e r = t f . t r a i n . AdamOptimizer ( l e a r n i n g r a t e=e t a ) . m i n i m i z e ( c o s t ) c o s t t e s t = t f . m e t r i c s . m e a n s q u a r e d e r r o r ( y , p r e d i c t i o n )

# Loop o v e r a l l m e a s u r e m e n t p o i n t s d i r e c t i o n = 1

w h i l e d i r e c t i o n <= 8 3 6 :

# Load t r a i n i n g d a t a and t e s t d a t a .

# b a t c h x and b a t c h y c o n t a i n s a l l d a t a

# t r a i n x and t r a i n y a r e s e l e c t e d f r o m b a t c h x and b a t c h y

# t e s t x and t e s t y a r e s e l e c t e d f r o m b a t c h x and b a t c h y

# T r a i n i n g d a t a and t e s t d a t a h a v e s e p a r a t e s a m p l e s

b a t c h x , b a t c h y = l o a d d a t a h 5 o n e d i r e c t i o n ( d i r e c t i o n ) t r a i n x = b a t c h x [ : TRAINING SPLIT , : ]

t r a i n y = 11 ∗ b a t c h y [ : TRAINING SPLIT , : ] t e s t x = b a t c h x [ 1 9 0 : 2 0 0 , : ]

t e s t y = 11 ∗ b a t c h y [ 1 9 0 : 2 0 0 , : ]

c o s t t e s t s t o r e = [ ] # S t o r e c o s t o f t e s t d a t a w i t h t f . S e s s i o n ( ) a s s e s s :

# I n i t i a l i z e v a r i a b l e s

s e s s . run ( t f . g l o b a l v a r i a b l e s i n i t i a l i z e r ( ) )

s e s s . run ( t f . group ( t f . g l o b a l v a r i a b l e s i n i t i a l i z e r ( ) , t f . l o c a l v a r i a b l e s i n i t i a l i z e r ( ) ) )

f o r epoch i n range( hm epochs ) :

# T r a i n n e t w o r k o v e r e p o c h s

i i = 0

e r r o r t r a i n = 0 e r r o r t e s t = 0

w h i l e i i < TRAINING SPLIT :

Viittaukset

LIITTYVÄT TIEDOSTOT

Matematiikan perusteet taloustieteilij¨ oille Ib Tentti 28.5.2012.

Todista

5. Kirjoitetaan k¨ arkeen n¨ aiss¨ a s¨ armiss¨ a olevien lukujen summa ja tehd¨ a¨ an t¨ am¨ a jokaiselle kuution k¨ arjelle. Onko mahdollista, ett¨ a jokaisessa kuution

teht¨ av¨ an muihin

Muodosta teht¨ av¨ an 5 osittaisesta j¨ arjestyksest¨ a alkioita lis¨ a¨ am¨ all¨ a joukon A t¨ aydellinen

Suorakulmion muotoisesta levyst¨ a, jonka sivut ovet 630 mm ja 480 mm, valmis- tetaan suorakulmaisen s¨ armi¨ on muotoinen astia leikkaamalla levyn nurkista pois yht¨ asuuret neli¨

(b) valitaan ympyr¨ an keh¨ alt¨ a yksi piste ja toinen piste sattuman va- raisesti ympyr¨ an sis¨ alt¨ a ja j¨ anne piirret¨ a¨ an ympyr¨ an sis¨ all¨ a olevan pisteen kautta

2.4.5 Kuinka moneen eri järjestykseen korttipakan 52 korttia voidaan asettaa.