S Laskennallinen Neurotiede

Samankaltaiset tiedostot
S Laskennallinen Neurotiede

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa.

S Laskennallinen Neurotiede

Numeeriset menetelmät

MS-A0004/MS-A0006 Matriisilaskenta Laskuharjoitus 6 / vko 42

MTTTP5, luento Otossuureita ja niiden jakaumia (jatkuu)

Matematiikan tukikurssi

Esimerkki: Tietoliikennekytkin

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Ratkaisuehdotukset LH 7 / vko 47

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

1 Kannat ja kannanvaihto

Matriisilaskenta Laskuharjoitus 5 - Ratkaisut / vko 41

Ortogonaalinen ja ortonormaali kanta

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

Luento 10: Työ, energia ja teho. Johdanto Työ ja kineettinen energia Teho

Ratkaisuehdotukset LH 3 / alkuvko 45

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Ohjelmoinnin perusteet Y Python

Vektoreiden virittämä aliavaruus

Koodausteoria, Kesä 2014

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Sisätuloavaruudet. 4. lokakuuta 2006

Determinantti. Määritelmä

Matriisipotenssi. Koska matriisikertolasku on liitännäinen (sulkuja ei tarvita; ks. lause 2), voidaan asettaa seuraava määritelmä: ja A 0 = I n.

Tekijä MAA2 Polynomifunktiot ja -yhtälöt = Vastaus a)

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )

Demo 1: Simplex-menetelmä

Algoritmit 2. Luento 13 Ti Timo Männikkö

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Kuvaus. Määritelmä. LM2, Kesä /160

Tehtävä 2. Osoita, että seuraavat luvut ovat algebrallisia etsimällä jokin kokonaislukukertoiminen yhtälö jonka ne toteuttavat.

Laskuharjoitus 2 ( ): Tehtävien vastauksia

Ville Turunen: Mat Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

Lineaarikuvauksen R n R m matriisi

Harjoitusten 5 vastaukset

4. Lasketaan transienttivirrat ja -jännitteet kuvan piiristä. Piirielimien arvot ovat C =

Matriisilaskenta. Harjoitusten 3 ratkaisut (Kevät 2019) 1. Olkoot AB = ja 2. Osoitetaan, että matriisi B on matriisin A käänteismatriisi.

Ohjelmoinnin perusteet Y Python

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

Lineaarialgebra b, kevät 2019

plot(f(x), x=-5..5, y= )

Ohjelmoinnin perusteet Y Python

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Ortogonaalisen kannan etsiminen

T Privacy amplification

Jatkuvat satunnaismuuttujat

MS-A0004/A0006 Matriisilaskenta

Yleistä vektoreista GeoGebralla

Tieteellinen laskenta 2 Törmäykset

Ratkaisuehdotukset LH 10 / vko 48

ax + y + 2z = 0 2x + y + az = b 2. Kuvassa alla on esitetty nesteen virtaus eräässä putkistossa.

Lineaariset yhtälöryhmät ja matriisit

Ohjelmoinnin perusteet Y Python

Determinantti. Määritelmä

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

Luottamusvälit. Normaalijakauma johnkin kohtaan

Numeeriset menetelmät

2.8. Kannanvaihto R n :ssä

Regressioanalyysi. Vilkkumaa / Kuusinen 1

Zeon PDF Driver Trial

Insinöörimatematiikka D

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

ẋ(t) = s x (t) + f x y(t) u x x(t) ẏ(t) = s y (t) + f y x(t) u y y(t),

Determinantit. Kaksirivinen determinantti. Aiheet. Kaksirivinen determinantti. Kaksirivinen determinantti. Kolmirivinen determinantti

Oletetaan ensin, että tangenttitaso on olemassa. Nyt pinnalla S on koordinaattiesitys ψ, jolle pätee että kaikilla x V U

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Tilastollisen analyysin perusteet Luento 9: Moniulotteinen lineaarinen. regressio

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Tyyppi metalli puu lasi työ I II III

Etsintä verkosta (Searching from the Web) T Datasta tietoon Heikki Mannila, Jouni Seppänen

Kantavektorien kuvavektorit määräävät lineaarikuvauksen

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Regressioanalyysi. Kuusinen/Heliövaara 1

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

7 Vapaus. 7.1 Vapauden määritelmä

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

Tehtäväsarja I Kerrataan lineaarikuvauksiin liittyviä todistuksia ja lineaarikuvauksen muodostamista. Sarjaan liittyvät Stack-tehtävät: 1 ja 2.

Latinalaiset neliöt ja taikaneliöt

Pienimmän neliösumman menetelmä (PNS)

811120P Diskreetit rakenteet

Kokonaislukuaritmetiikka vs. logiikkaluupit

Ortogonaaliset matriisit, määritelmä 1

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin

BM20A0700, Matematiikka KoTiB2

T Hahmontunnistuksen perusteet

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 3 /

Transkriptio:

S-114.3812 Laskennallinen Neurotiede Laskuharjoitus 3 8.12.2006 Heikki Hyyti 60451P

Tehtävä 2 Tehtävässä 2 piti tehdä 100 hermosolun assosiatiivinen Hopfield-muistiverkko. Verkko on rakennettu Matlab-ohjelmaan seuraavalla koodilla: clear; P = 10; N = 100; % siirtymän estimaatti. Se siirtää todennäköisyyttä -1 ja 1 välillä. % jos siirtymä on 1, niin todennäköisyys saada 1 on 100% % jos siirtymä on -1, niin todennäköisyys saada 1 on 0% siirtyma = 0; if (siirtyma > 1) siirtyma = 1; else if (siirtyma < -1) siirtyma = -1; end end % Tekee matriisin, jossa on sarakkeissa N mittaiset vektorit v % ja P saraketta, jokainen yhtä P arvoa varten. V = round(rand(n, P)+(siirtyma/2))*2-1; % Lasketaan jokaisella P:n arvolla pistetulo vektorien kesken ja lasketaan % kaikki P:t yhteen. Se onnistuu matriisialgebralla helposti. % Lisäksi pitää tyhjentää diagonaaliakseli. M = V*V'; M = M.*(ones(N)-eye(N)); % Otetaan muistettava vektori talteen. Vm = V(:,1); % v:n alkuarvo niin että sillä on positiivinen overlap. % Tällä tavoin arvottuna satunnainen välillä [0,1] % samalla kaavalla saadaan negatiivinen overlap, kun Vm:n ja -1 merkki % vaihdetaan. v = sign(round(vm.*rand(n, 1))*1.5-1); for t = 1:20 end % overlap funktio overlap(t) = v' * Vm / N; % v:n aktiviteetti. M*v laskee summan M:n rivien ja v:n tulosta. % Siitä otetaan sign() funktiolla merkki ja muodostetaan uusi v:n arvo. v = sign(m*v); figure(1); plot(1:t,overlap); axis([1 t -1 1]); title(['muistaminen, kun overlap alussa on ' num2str(overlap(1),2) ', N= ' int2str(n) ' ja P=' int2str(p) ]); xlabel('aika'); ylabel('overlap'); Tämä koodi tekee ensin satunnaisen muistiavaruuden, V. Siitä luodaan hermosolujen väliset yhteydet matriisiin, M. Sen avulla lasketaan aikayksiköitä eteenpäin. Kunkin hetkinen tilanne on vektorissa, v. Kuvaan 1 on piirretty muistaminen kun overlap on ollut alussa positiivinen eli v:n alkutila on ollut lähellä muistettavaa tilaa.

Kuva 1. Kuvaan on piirretty positiivisella overlapilla aloitettu iterointi, kun P=10. Jos overlap on alussa negatiivinen, eli v:n alkutila on ollut hyvin kaukana muistettavaa tilaa, niin tämä verkko muistaakin täysin käänteisen tilan. Tällöin overlap iteroituu lähelle arvoa -1, kuten kuvasta 2 nähdään. Kuva 2. Kuvassa on piirretty negatiivisella overlapilla aloitettu iterointi, kun P=10.

Tällainen käytös selittyy sillä, että jos iterointivaiheessa v:n yksi alkio on negatiivinen, kertoo se kaikki matriisin M summattavat alkiot negatiivisella kertoimella, jolloin lopputuloskin on erimerkkinen verrattuna siihen että v:n alkion alkuarvo olisi ollut positiivinen. Näin lopputulos iteroituu kohti joko -1 tai +1 riippuen alkuarvosta, jos muistaminen tapahtuu. Voimme olettaa vektorin muistetuiksi, jos vektorin käänteisvektori (-v) löytyy. Tällöin voimme tosin tallentaa puolet vähemmän tietoa verkkoomme. Seuraavassa vaiheessa tutkimme Hopfield:n verkon muistikapasiteettia. Kasvatamme muistiavaruuden P kokoa 1 eteenpäin ja laskemme eri P:n arvoilla toteutuuko muistaminen vai ei. Koska järjestelmämme arpoo aina satunnaiset alkuarvot, pitää meidän laskea useita kertoja samalla P:n arvolla ja keskiarvoistaa tuloksia. Seuraava Matlab-koodi on muutettu yllä olleesta koodista niin, että se laskee 100 toistoa jokaiselle P:n arvolle ja laskee kaikki P:n arvot välillä [1,100]: clear; % muutetaan edellistä listausta niin, että tehdään sama mittaus 100 kertaa % jokaisella P.n arvolla. lasketaan P:n arvot 1-100. Näistä % laskentatuloksista otetaan keskiarvot jokaista P:tä kohti ja saadaan % todennäköisyys sille, että kullakin P.n arvolla muistaminen tapahtuu % oikein. for ii = 1:100 for P = 1:100 N = 100; % Tekee matriisin, jossa on sarakkeissa N mittaiset vektorit v % ja P saraketta, jokainen yhtä P arvoa varten. V = round(rand(n, P))*2-1; % Lasketaan jokaisella P:n arvolla pistetulo vektorien kesken ja lasketaan % kaikki P:t yhteen. Se onnistuu matriisialgebralla helposti. % Lisäksi pitää tyhjentää diagonaaliakseli. M = V*V'; M = M.*(ones(N)-eye(N)); % Otetaan muistettava vektori talteen. Vm = V(:,1); % viimeistä kohtaa varten overlap = 1; v = Vm; for t = 1:20 % overlap funktio overlap(t) = v' * Vm / N; end v = sign(m*v); %viimeistä testiä varten taulukointi. overlapend(ii,p) = overlap(t); end; end figure(1); plot(1:p,mean(overlapend)); axis([1 P 0 1]); title('muistamisen todennäköisyys P:n funktiona, kun overlap on alussa 1'); xlabel('p, muistiavaruuden koko'); ylabel('overlapin keskiarvo 100 näytteestä');

Edellisen koodin piirtämä keskiarvokäyrä on kuvassa 3. Siitä nähdään, että todennäköisyys sille, että muistaminen tapahtuu oikein alkaa laskea nopeasti, kun P>10. Kun P=30 niin vain enää joka toinen kerta muistetaan oikein. Kuvasta nähdään hyvin, miten muistin tehokkuus heikkenee muistettavien asioiden lisääntyessä. Kuva 3. Kuvassa on 100 overlap-mittauksen keskiarvo kullakin P:n arvolla. Lisäksi muistamisen tehokkuuden arviointia auttaa keskihajonnan laskeminen edellisen käyrän lisäksi. Se saadaan laskettua seuraavalla Matlab-koodilla: plot(1:100,std(overlapend)) title('muistamisen keskihajonta P:n funktiona, kun overlap on alussa 1'); ylabel('overlapin keskihajonta 100 näytteestä'); xlabel('p, muistiavaruuden koko'); Tällä koodilla on piirretty kuvaan 4 keskihajonta. Kuvasta 4 havaitaan, että muistamisessa alkaa tulla hajontaa kun P>10 ja hajonta on suurimmillaan kun P on 20 ja 30 välillä. Kuvista 3 ja 4 voidaan päätellä, että Muistaminen tapahtuu hyvin, kun P<= 10 ja muistamisen todennäköisyys pienenee jyrkästi, kun 10<P<30. Kun P>30 ei muistaminen enää toimi juuri ollenkaan.

Kuva 4. Kuvassa on 100 overlap-mittauksen keskihajonta kullakin P:n arvolla.