Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Seotud dokumendid
Matemaatilised meetodid loodusteadustes. I Kontrolltöö I järeltöö I variant 1. On antud neli vektorit: a = (2; 1; 0), b = ( 2; 1; 2), c = (1; 0; 2), d

raamat5_2013.pdf

Antennide vastastikune takistus

Andmed arvuti mälus Bitid ja baidid

Õppimine Anne Villems, Margus Niitsoo ja Konstantin Tretjakov

Microsoft PowerPoint - IRZ0020_praktikum4.pptx

Image segmentation

B120_10 estonian.cdr

Microsoft Word - 56ylesanded1415_lõppvoor

Ruutvormid Denitsioon 1. P n Ütleme, et avaldis i;j=1 a ijx i x j ; kus a ij = a ji ; a ij 2 K ja K on korpus, on ruutvorm üle korpuse K muutujate x 1

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo

6

prakt8.dvi

ITI Loogika arvutiteaduses

Funktsionaalne Programmeerimine

DJI GOGGLES Kiirjuhend V1.0

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Word Pro - diskmatTUND.lwp

III teema

Mining Meaningful Patterns

Microsoft Word - Praks1.doc

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3

DVD_8_Klasteranalüüs

KOOLITUSTE HALDAMINE E-TÖÖTUKASSA KASUTAJAJUHEND 1

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

Sissejuhatus mehhatroonikasse MHK0120

Renovation of Historic Wooden Apartment Buildings

6

(loeng3-ohtlikud_koodiloigud)

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Microsoft Word - X Kvantomadused ja tehnoloogia.docx

XV kursus

Word Pro - digiTUNDkaug.lwp

Microsoft PowerPoint - Ettekanne_3Dprojekt_ESTGIS.ppt [Compatibility Mode]

Microsoft PowerPoint - loeng.ppt

Microsoft Word - Sobitusahelate_projekteerimine.doc

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

Microsoft Word - Vorm_TSD_Lisa_1_juhend_2015

Matemaatiline analüüs III 1 4. Diferentseeruvad funktsioonid 1. Diferentseeruvus antud punktis. Olgu funktsiooni f : D R määramispiirkond D R selles p

TARTU ÜLIKOOL LOODUS- JA TÄPPISTEADUSTE VALDKOND ARVUTITEADUSE INSTITUUT Lauri Kongas Turvaauk CVE Referaat aines Andmeturve MTAT Õpp

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

HWU_AccountingAdvanced_October2006_EST

View PDF

E-arvete juhend

Osakogumite kitsendustega hinnang Kaja Sõstra 1 Eesti Statistikaamet Sissejuhatus Valikuuringute üheks oluliseks ülesandeks on osakogumite hindamine.

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

lvk04lah.dvi

vv05lah.dvi

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

P2P süsteemid

Relatsiooniline andmebaaside teooria II. 6. Loeng

Kasutusjuhend Dragon Winch vintsile DWM, DWH, DWT seeria Sisukord Üldised ohutusnõuded... 3 Vintsimise ohutusnõuded... 3 Kasulik teada... 4 Vintsimise

Kiire Paigaldamine Otseühenduse Korral Lühi Manual DS-7000 Seeria NVR Salvestiste Jaoks

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

Raili Veelmaa Eve Värv Ivi Madison Meelika Maila Matemaatika tööraamat 6. klassile I osa

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

Microsoft Word - requirements.doc

PowerPointi esitlus

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

Esitlusslaidide kujundusest

Tehniline andmeleht Sadulventiilid (PN 16) VRG 2 2-tee ventiil, väliskeermega VRG 3 3-tee ventiil, väliskeermega Kirjeldus Ventiilid on kasutatavad ko

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2

AM_Ple_NonLegReport

VRB 2, VRB 3

Praks 1

FIDE reitingumäärus 1. juuli 2014 Kuremaa, Marek Kolk

Anneli Areng Kaja Pastarus Matemaatika tööraamat 5. klassile II osa

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Peer-to-peer süsteemid Peer-to-peer süsteemide liigitus Liigitus Ründed Anonüümsus Puuräsi DHT Näide: Kazaa Näide: Kadem

Operatsioonisüsteemide ehitus

Microsoft Word - EHR.docx

ET TOIMIVUSDEKLARATSIOON vastavalt järgneva määruse (EL) Nr. 305/2011 lisale III: lisale III Elektritööriistadega kasutatavad Hilti kinnitid X-P 20 B3

(Microsoft Word - Matsalu Veev\344rk AS aktsion\344ride leping \(Lisa D\) Valemid )

Programmi AnimatorDV Simple+ lühike kasutajajuhend

Slide 1

EE-macbook-retina-12-early2015-qs.indd

QUANTUM SPIN-OFF - Experiment UNIVERSITEIT ANTWERPEN

Taskuprinter KASUTUSJUHEND

Praks 1

MTAT Operatsioonisüsteemid - Turvalisus

Funktsionaalne Programmeerimine

Microsoft Word - QOS_2008_Tallinn_OK.doc

EBSCO täistekstiandmebaaside kasutamine Otsingu sooritamiseks: 1. Logi sisse 2. Vali EBSCOhost Web 3. Seejärel vali andmebaas, milles soovid otsingut

Skriptid ja käsud

Tartu Ülikool Matemaatika-informaatikateaduskond Matemaatilise statistika instituut Ann-Mari Koppel Determinatsioonikordaja ja prognoosikordaja Bakala

Tarkvaraline raadio Software defined radio (SDR) Jaanus Kalde 2017

Kom igang med Scratch

MTAT Operatsioonisüsteemid - Turvalisus

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala Roman Jagomägis Programmeerimiskeel privaatsust säilit

loogikaYL_netis_2018_NAIDISED.indd

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

Microsoft Word - Vx610 EMV KASUTUSJUHEND.doc

(Microsoft PowerPoint - Slaidid Priit P\365ldoja)

normaali

Microsoft Word - Toetuste veebikaardi juhend

Väljavõte:

Neurovõrgud. Praktikum 11. 29. aprill 2005. a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust kombinatoorsete optimiseerimisülesannete lahendamiseks. Stohhastiline võrk on süsteem mis koosneb n sõlmest. Iga sõlm saab olla seisundis +1 või 1, ning sõlme i seisundit s i nimetame tema spinniks. Igal hetkel on seega terve süsteemi seisund kirjeldatav n-elemendilise spinnide vektoriga σ: σ = (s 1, s 2,..., s n ), s i {+1, 1} Iga kahe sõlme i ja j vahel on olemas teatud vastasmõju w ij. Mida suurem on vastasmõju, seda rohkem,,tahavad sõlmed omama samasugust spinni või erisugust spinni sõltuvalt w ij märgist. Süsteemi siseenergia on defineeritud valemiga H(σ) = w ij s i s j h ext s i, (1) i,j i kus w ij on vastasmõju kordajad ning h ext on väline väli. Funktsiooni H nimetatakse tihti süsteemi hamiltoni funktsiooniks või hamiltoniaaniks. Tavaliselt eeldatakse et w ij = w ji ning w ii = 0. Viimane eeldus ei ole kitsendav: tema rakendamine muudab süsteemi energiat ainult konstandi võrra (miks?). Süsteem ise on dünaamiline ning üritab teatud seisundimuutuste kaudu saavutada energiafunktsiooni miinimumi. Sellise mudeliga saab füüsikas kirjeldada magnetismi, samas osutub et ka paljud rasked kombinatoorsed ülesanded on taandatavad sobiva hamiltoni funktsiooni minimiseerimisele. 2 NP-täieliku ülesande lahendamine Vaatleme järgmist NP-täieliku ülesannet: Partitioning: Jagada kivid kaaludega k 1, k 2,..., k 2n kahte hulka nii, et hulkade kogukaal oleks võrdne. Kui see pole võimalik, siis minimiseerida kaalude vahet. 1

Selle lahendamiseks vaatleme 2n sõlmedest koosneva võrku. Sõlme i spin s i olgu +1 kui kivi i kuulub esimesse hulka, ning 1 vastasel juhul. Algse ülesande lahendamiseks peame me seega leidma sellist spinnide konfiguratsiooni σ, mis minimiseeriks funktsiooni: H(σ) = ( 2n i=1 s i k i ) 2 Selleks et viia süsteemi kujule (1) avame sulud ning saame et w ij = k i k j. Nagu ennem tähele pandud, võime panna w ii = 0. See muudab energiat ainult konstandi võrra, ning seda on vaja edaspidises algoritmide toimimiseks. Nüüd jääb meil ainult realiseerida vastava võrgu seisundimuutmiste dünaamikat, mis viiks teda energiamiinimumi. Selleks on mitu võimalust. 2.1 Hopfieldi võrk Hopfieldi võrgu puhul on seisundi muutmise reegel järgmine: valime igal sammul ühe sõlme k (juhuslikult või järjest), ning muudame selle spinni s k. Uueks spinniks s k valime: s k = sign (h k), kus h k = j w kj s j Osutub et sellised sammud viivad võrgu energiamiinimumi. Ülesanne 1 (1p): Näita et kui w ij = w ji, w ii = 0, siis H(σ ) H(σ), s.t. iga sammuga saab energia ainult kahaneda. Seega on Hopfieldi võrgu algoritm lihtsalt ahne miinimumi otsing (local search, hill climbing) ning võib koonduda lokaalsesse miinimumi. Ülesanne 2 (1p): Lahenda ülesannet Partitioning Hopfieldi võrgu abil. Olgu kivide arv 100, ning nende kaalud (1, 2, 3,..., 100) (s.t. k i = i). Väljasta igal iteratsioonisammul võrgu energiat ja veendu, et see kahaneb. Jooksuta algoritmi mitu korda. Kas iga kord leitakse parim lahendus? Esita kood. 1. Realiseeri funktsioon function s = hopfield(w, numiterations) 2. k = [1:100] ; // Algandmed W = -k*k ; // Vorgu kaalude maatriks for i = 1:100, W(i,i) = 0;, end; // Diagonaalis nullid s = hopfield(w, 400); // Simulerime vorku printf("kuhjade kaalude erinevus: %f\n", k *s); 3. Scilabi funktsioon sign võib tagastada nulli. Me ei tohi aga spinni väärtuseks nulli panna. 2

Selleks et algoritm ei peatuks lokaalses miinimumis, tuleb teha mõnikord ka energiat suurendavaid samme. See idee toob meid Boltzmanni võrguni. 2.2 Boltzmanni võrk Kui Hopfieldi võrk vastab hill-climbing-ule, siis Boltzmanni võrk on sisuliselt libalõõmutamise algoritmi implementatsioon. Nagu Hopfieldi võrgu puhul kohendatakse igal sammul ühe sõlme spinni, kuid seekord on reegel tõenäosuslik. Tõenäosus et valitud sõlme k spin on 1 avaldub valemina: P (s k = +1) = 1 ( ) 1 + exp h k T kus T on temperatuur. Mida suurem on temperatuur, seda suurem on tõenäosus et algoritm teeb energiafunktsiooni suurendavaid samme. Võrgu treenimise käigus alustatakse kõrge temperatuuri väärtustest, ning pärast tasapisi,,jahutatakse. Temperatuuri on kasulik alandada faasides nii, et iga võrgu sõlme spinni uuendatakse vähemalt üks kord enne, kui võetakse uus T väärtus. Ülesanne 3 (1p): Lahenda ülesannet Boltzmanni võrguga. Olgu esimeste 20 iteratsiooni käigus temperatuur fikseeritud 1000 peal, ning iga järgmises faasis korruta seda arvuga α = 0.9 (faasipikkuseks olgu ka 20 iteratsiooni). Väljasta peale iga spinni uuendamist süsteemi energia ja temperatuur, koosta vastav graafik. Tee vähemalt 10000 sõlme uuendamist 1. Kui tihti koondub Boltzmanni võrk mitteoptimaalseks lahenduseks? Esita kood ning saadud tulemused. 1. Realiseeri funktsiooni function s = boltzmann(w, numiterations). Ta ainult natuke erineb funktsioonist hopfield. 2.... h_k = W(k, :)*s; p_k = 1/(1 + exp(-h_k/t)); // Toenaosus et s(k) = 1 s(k) = sign(p_k - rand()); if s(k) == 0 then, s(k) = 1;, end; // Alanda temperatuuri parast igat faasi if modulo(iter, 20) == 0 then, T = 0.9*T;, end; 1 Reaalses elus peaks iteratsioonide arv olema veel suurem, ning faasid peavad olema pikem. Hea on kui igas faasis saab iga sõlm uuendatud mitu korda. 3

2.3 Metropolise reegel Veel üks stohhastiline optimiseerimisalgoritm on Metropolise reegel. Selles algoritmis lihtsalt muudetakse igal sammul ühe juhuslikult või süstemaatiliselt valitud sõlme seisu. Siis vaadeldakse uue seisundi σ ja vana seisundi σ energiate vahet: H = H(σ ) H(σ) kui H < 0, aktsepteeritakse uus seisund. Muidu aktsepteeritakse ta tõenäosusega exp( H T ). Ülesanne 4 (1p): Lihtsusta H avaldist nii, et see sisaldaks vaid suurusi h k ja s k. Võrdle Boltzmanni ja Metropolise reeglit. Ülesanne 5 (1p): Programmeeri Metropolise reegel ning lahenda selle abil ülesannet Partitioning. Cooling schedule (ehk temperatuuri käitumine) olgu samasugune nagu eelmises ülesandes. Jooksuta 10000 võrgu iteratsiooni. Milline kolmest algoritmidest (Hopfield, Boltzmann, Metropolis) on parem? Ülesanne 6 (2p): Vaatleme veel ühe ülesande lahendamist stohhastiliste võrkudega. Olgu meil antud graaf G. Ülesandeks on jagada graafi tipud kahte hulka niimoodi, et hulkade vaheliste servade arv oleks minimaalne ning hulgad oleksid võimalikult võrdse suurusega. Sõnasta energiafunktsioon, mis jagab sõlmed kahte hulka nii, et vahepealsete servade arv oleks minimaalne. Olgu see funktsioon H 1. Sõnasta energiafunktsioon, mis jagab sõlmed kahte hulka nii, et need hulgad oleksid võimalikult võrdsed. Olgu see funktsioon H 2. Kokku kasutame minimiseerimiseks funktsiooni H(σ) = H 1 (σ)+λh 2 (σ), kus λ kontrollib kui oluline on saada hulgad võrdseteks. Vii seda funktsiooni kujule (1), s.t. leia võrgu kaalude maatriks. Esita leitud kaalude maatriksit. 3 Assotsiatiivne mälu Üks Hopfieldi võrgu rakendus on nn. assotsiatiivne mälu. Olgu x 1, x 2,..., x k mingid vektorid mida me tahame salvestada. Selleks võib konstrueerida Hopfieldi võrgu, mille kaalumaatriksiks on W = 1 k k x i x T i I. i=1 4

On võimalik veenduda, et selle võrgu lokaalseteks miinimumideks (stabiilseteks seisunditeks) on suure tõenäosusega vektorid x 1, x 2,..., x k. Seega kui sellise võrgu algseisundiks on midagi lähedast x i -le, siis suure tõenäosusega koondub võrk just seisundisse x i. See annab võimalust kasutada võrgu assotsiatiivmäluna. Loomulikult saab nii võrku talletada vaid lõpliku hulga mustreid. Selle piiri ületamisel tekivad esmalt lisamustrid ning seejärel hävivad ka kõik algsed mustrid. See efekt on tuntud üleõppimise nime all. Ülesanne 7 (1p): Failis pictures.data on salvestatud neli 10 10,,pilti. Ülesandeks on salvestada pildid 1 ja 2 Hopfieldi võrku, ning uurida kuidas piltidest 3 ja 4 suudab võrk,,meelde tuletada salvestatud pilte. Salvestamiseks kasuta eeltoodud valemit. Meeldetuletamiseks jooksuta 1000 võrgu iteratsiooni, andes algseisuna pildi 3 või 4. Muuda funktsiooni hopfield nii, et ta võtaks parameetrina algseisu. Pilte saab failist sisse lugeda ja vaadata järgmiselt: X = read("pictures.data", -1, 100); pic = X(1,:) ; // Votame esimest pilti Matplot(matrix(pic + 1, 10, 10)); // Vaatame ekraanil Ülesanne 8 (1p): Kas assotsatiivmälu jaoks saaks põhimõtteliselt kasutada ka Boltzmanni või Metropolise võrke? Milline peaks olema temperatuur? Mida võiks sel juhul tähendada lokaalsest miinimumist väljumine? 5