Backpropagation-algoritmi

Samankaltaiset tiedostot
1. NEUROVERKKOMENETELMÄT

1. NEUROVERKKOMENETELMÄT

Johdatus tekoälyn taustalla olevaan matematiikkaan

Kognitiivinen mallintaminen. Nelli Salminen

Tällä kerralla ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus Kertausta: Perseptronin oppimissääntö

1. LINEAARISET LUOKITTIMET

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

ImageRecognition toteutus

Johdatus tekoälyn taustalla olevaan matematiikkaan

Kognitiivinen mallintaminen Neuraalimallinnus, luento 1

Johdatus tekoälymatematiikkaan (kurssilla Johdatus Watson-tekn

1. TILASTOLLINEN HAHMONTUNNISTUS

Johdatus tekoälyn taustalla olevaan matematiikkaan

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

1 Rajoittamaton optimointi

TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio. Kimmo Berg. Mat Optimointioppi. 9. harjoitus - ratkaisut

JOHDATUS TEKOÄLYYN TEEMU ROOS

Antti Rasila. Kevät Matematiikan ja systeemianalyysin laitos Aalto-yliopisto. Antti Rasila (Aalto-yliopisto) MS-A0204 Kevät / 16

JOHDATUS TEKOÄLYYN TEEMU ROOS

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

Luento 8: Epälineaarinen optimointi

Luento 8: Epälineaarinen optimointi

(0 desimaalia, 2 merkitsevää numeroa).

1. LINEAARISET LUOKITTIMET (jatkoa)

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Kohdeyleisö: toisen vuoden teekkari

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

2 Osittaisderivaattojen sovelluksia

1. TODENNÄKÖISYYSJAKAUMIEN ESTIMOINTI

Matematiikka B1 - avoin yliopisto

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

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

Yhden muuttujan funktion minimointi

Derivaatta: funktion approksimaatio lineaarikuvauksella.

Inversio-ongelmien laskennallinen peruskurssi Luento 4

1. TODENNÄKÖISYYSJAKAUMIEN ESTIMOINTI

Piiri K 1 K 2 K 3 K 4 R R

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

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

Numeeriset menetelmät

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

Ratkaisuehdotukset LH 7 / vko 47

Numeeriset menetelmät

Luento 10: Optimointitehtävien numeerinen ratkaiseminen; optimointi ilman rajoitusehtoja

MLP-hermoverkko ja sen soveltaminen kuvien luokitteluun

Johannes Lehmusvaara Konvoluutioneuroverkot kirjain- ja numeromerkkien tunnistuksessa. Kandidaatintyö

Keskeiset tulokset heikko duaalisuus (duaaliaukko, 6.2.1) vahva duaalisuus (6.2.4) satulapisteominaisuus (6.2.5) yhteys KKT ehtoihin (6.2.

JOHDATUS TEKOÄLYYN TEEMU ROOS

Numeeriset menetelmät

Viikko 3: Lineaarista regressiota ja luokittelua Matti Kääriäinen

Osakesalkun optimointi

Lineaarinen optimointi. Harjoitus 6-7, Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän. c T x = min!

Numeeriset menetelmät TIEA381. Luento 12. Kirsi Valjus. Jyväskylän yliopisto. Luento 12 () Numeeriset menetelmät / 33

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 4: Ketjusäännöt ja lineaarinen approksimointi

Inversio-ongelmien laskennallinen peruskurssi Luento 7 8

MS-A0207 Differentiaali- ja integraalilaskenta 2 Luento 5: Gradientti ja suunnattu derivaatta. Vektoriarvoiset funktiot. Taylor-approksimaatio.

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

Koska ovat negatiiviset. Keskihajontoja ei pystytä laskemaan mutta pätee ¾.

Taustatietoja ja perusteita

Talousmatematiikan perusteet: Luento 13. Rajoittamaton optimointi Hessen matriisi Ominaisarvot ja vektorit Ääriarvon laadun tarkastelu

JOHDATUS TEKOÄLYYN TEEMU ROOS

Viikon aiheet. Funktion lineaarinen approksimointi

Numeeriset menetelmät

Matematiikan tukikurssi

JOHDATUS TEKOÄLYYN TEEMU ROOS

Kuva 1: Funktion f tasa-arvokäyriä. Ratkaisu. Suurin kasvunopeus on gradientin suuntaan. 6x 0,2

MS-A0305 Differentiaali- ja integraalilaskenta 3 Luento 3: Vektorikentät

Matematiikan tukikurssi

Tehtäväsarja I Tehtävät 1-5 perustuvat monisteen kappaleisiin ja tehtävä 6 kappaleeseen 2.8.

Valintakoe

Luento 9: Newtonin iteraation sovellus: optimointiongelma

MS-A0205/MS-A0206 Differentiaali- ja integraalilaskenta 2 Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

Luku 8. Aluekyselyt. 8.1 Summataulukko

LUKU 3. Ulkoinen derivaatta. dx i 1. dx i 2. ω i1,i 2,...,i k

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

JOHDATUS TEKOÄLYYN TEEMU ROOS

Derivaatan sovellukset (ääriarvotehtävät ym.)

Talousmatematiikan perusteet: Luento 14. Rajoittamaton optimointi Hessen matriisi Ominaisarvot Ääriarvon laadun tarkastelu

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 )

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Matematiikan peruskurssi (MATY020) Harjoitus 10 to

Algoritmit 2. Luento 13 Ti Timo Männikkö

Matematiikan tukikurssi

Demo 1: Simplex-menetelmä

1.7 Gradientti ja suunnatut derivaatat

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 4: Derivaatta

Dynaamiset regressiomallit

Osa IX. Z muunnos. Johdanto Diskreetit funktiot

3.2.2 Tikhonovin regularisaatio

Ilkka Mellin Todennäköisyyslaskenta. Osa 2: Satunnaismuuttujat ja todennäköisyysjakaumat. Momenttiemäfunktio ja karakteristinen funktio

Värähdysliikkeet. q + f (q, q, t) = 0. q + f (q, q) = F (t) missä nopeusriippuvuus kuvaa vaimenemista ja F (t) on ulkoinen pakkovoima.

Luento 9: Yhtälörajoitukset optimoinnissa

Epälineaaristen yhtälöiden ratkaisumenetelmät

Kokonaislukuoptimointi

v 8 v 9 v 5 C v 3 v 4

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Mallin arviointi ja valinta. Ennustevirhe otoksen sisällä, parametrimäärän valinta, AIC, BIC ja MDL

Transkriptio:

Backpropagation-algoritmi Hyvin yleisesti käytetty Backpropagation (BP) -algoritmi on verkon halutun ja todellisen vasteen eroa kuvastavan kustannusfunktion minimointiin perustuva menetelmä. Siinä MLP-verkon struktuuri on kiinnitetty etukäteen. Koska BP-menetelmä perustuu gradient descent -optimointiin, kustannusfunktion on syytä olla differentioituva: kannattaa käyttää jatkuvia ja derivoituvia aktivaatiofunktiota askelfunktioden sijasta. (Tällöin MLP-verkon 1. piilokerros ei kuvaa piirrevektoreita hyperkuution kulmiin!)

Käytetetään seuraavia merkintöjä: Luokittelun onnistumista mitataan kustannusfunktiolla J Verkossa on sisääntulokerroksen lisäksi L kerrosta perseptroneja Sisääntulokerroksessa on k 0 = l perseptronia, r:nnessä kerroksessa on k r perseptronia, 1 r L Kaikilla perseptroneilla on samanlainen aktivaatiofunktio paitsi sisääntuloperseptroneilla, jotka eivät suorita varsinaista laskentaa Opetusnäytteitä x(i) on käytettävissä N kpl:tta ja niitä vastaavat halutut vasteet y(i) tunnetaan: (y(i), x(i)), 1 i N Verkon todellinen vaste i:nnelle opetusnäytteelle on ŷ(i) Vektori w r j koostuu r:nnen kerroksen j:nnen perseptronin synaptisista painoista ja kynnysarvosta v r j on r:nnen kerroksen j:nnen perseptronin sisääntulon ja painovektorin w r j sisätulo 2

3

BP-menetelmässä verkkoa päivitetään iteratiivisesti gradient descent -menetelmällä: w r j(new) = w r j(old) + w r j, (1) missä ja µ on positiivinen opetusparametri w r j = µ J w r j (2) 4

Gradienttien laskenta Tyypillisesti BP:n kustannusfunktio on seuraavaa muotoa: J = N E(i), (3) i=1 missä E(i) on jokin y(i):stä ja ŷ(i):stä (verkon haluttu ja todellinen vaste) riippuva funktio, esim. neliövirheiden summa. BP:n päivityssäännössä (1) tarvittava gradientti voidaan laskea silloin seuraavasti: 5 y r 1 k (i) on (r 1):nnen kerroksen k:nnen perseptronin i:nnettä opetusnäytettä vastaava ulostulo wjk r on synaptinen painokerroin (r 1):nnen kerroksen k:nnen perseptronin ja r:nnen kerroksen j:nnen perseptronin välillä (ks. edellinen kuva)

r:nnen kerroksen j:nnen neuronin aktivaatiofunktion f( ):n argumentti on silloin: k r 1 vj r (i) = wjky r r 1 k (i) + wj0 r k=1 k r 1 = k=0 wjky r r 1 k (i), (4) missä y r 0(i) = 1, r, i Ulostulokerroksessa r = L, y r k (i) = ŷ k(i), k = 1,..., k L Sisääntulokerroksessa r = 1, y r 1 k (i) = x k (i), k = 1,..., k 0 Kaavan (4) ja ketjusäännön perusteella: E(i) w r j = E(i) v r j (i) v r j (i) w r j (5) 6

Kaavan (4) perusteella: v r j (i) w r j = ( w r j0,..., w r jk r 1 ) T v r j (i) = y r 1 (i), (6) missä y r 1 (i) = (1, y r 1 1 (i),..., y r 1 k r 1 (i)) T Käytetään seuraavaa merkintää: (delta-termi) E(i) v r j (i) = δr j (i) (7) Silloin N wj r = µ δj r (i)y r 1 (i) (8) i=1 7

Delta-termin laskenta Edellinen tarkastelu yleistyy siis kaikille muotoa (3) oleville kustannusfunktioille. Seuraavaksi esitetään delta-termin laskenta virheiden neliösummiin perustuvalle kustannusfunktiolle: J = 1 2 = 1 2 N k L i=1 m=1 N k L i=1 m=1 e 2 m(i) (y m (i) ŷ m (i)) 2 (9) Delta-termit lasketaan lähtien liikkeelle ulostuloskerroksesta ja peruuttamalla (backpropagation!) kohti sisääntulokerrosta: 8

Ulostulokerros, r = L: δ L j (i) = E(i) v L j (i) E(i) = 1 2 k L m=1 e 2 m(i) = 1 2 Edellisten kaavojen perusteella: missä f on f:n derivaatta Muut kerrokset, r < L: k L m=1 (10) (f(v L m(i)) y m (i)) 2 (11) δ L j = e j (i)f (v L j (i)), (12) E(i) v r 1 j = k r k=1 E(i) vk r(i) vk r(i) v r 1 j (i) = k r δk r k=1 vk r(i) v r 1 j (i) (13) 9

Käytetään seuraava merkintää: Toisaalta δ r 1 j = vk r(i) (i) = v r 1 j y r 1 m Edellisten kaavojen perusteella k r δk r k=1 vk r(i) v r 1 j (i) kr 1 m=0 wr km yr 1 m v r 1 j (i) (i) (14) (15) = f(v r 1 m (i)) (16) vk r(i) v r 1 j (i) = wr kjf (v r 1 j (i)) (17) Delta-termi voidaan kirjoittaa siis seuraavasti: k r j (i) = ( δk(i)w r kj)f r (v r 1 j (i)) (18) δ r 1 k=1 10

tai samassa muodossa kuin kaava (12) ulostulokerrokselle δ r 1 j (i) = e r 1 j (i)f (v r 1 j (i)), (19) missä e r 1 j (i) = k r k=1 δ r k(i)w r kj (20) 11

Backpropagation-algoritmin vaiheet Initialisointi: arvotaan painoille pienet alkuarvot Eteenpäinlaskenta: lasketaan jokaiselle opetusnäytteelle x(i), i = 1,..., N,, käyttäen viimeisimpiä painojen arvoja v r j (i) ja y r j (i) = f(v r j (i)), j = 1,..., k r, r = 1,..., L. Lasketaan lisäksi E(i) ja J Taaksepäinlaskenta: lasketaan ulostulokerrokselle δ L j (i) ja järjestyksessä aikaisemmille kerroksille δ r 1 j (i), r = L,..., 2 Päivitys: lasketaan uudet arvot painoille wj(new) r = wj(old) r + wj r (21) N wj r = µ δj r (i)y r 1 (i) (22) i=1 12

Algoritmin lopetuskriteerinä on usein tavoitearvo J:lle, kynnysarvo J:n muutoksille tai sen gradientin pituudelle, tai maksimimäärä opetuskierroksille ( epochs ). Algoritmin konvergointinopeus riippuu luonnollisesti µ:sta: hyvin pienellä µ:lla konvergointi on varmaa, mutta hidasta; suurella µ:lla vaarana on hyppääminen optimin yli ( overshooting ). Yksi vaihtoehto on käyttää aluksi isompaa ja lopuksi pienempää µ:ta. BP ratkaisee epälineaarisen optimointiongelman, jolla on yleensä useampi kuin yksi lokaali minimi. Ei ole mitään takeita että BP löytäisi niistä parhaimman. Yleensä opetetaan verkko useita kertoja eri alkuarvoilla ja valitaan paras tulos. Edellä painovektoreita päivitettiin kaikkien opetusnäytteiden perusteella ( batch -versio). Painoja voidaan päivittää myös yksittäisten näytteiden perusteella ( on-line -versio). On-line -versiossa on enemmän satunnaisuutta, koska kustannusfunktion gradienttien estimaatit perustuvat vain yhteen näytteeseen. Tämä lisätty satun- 13

naisuus hidastaa konvergointia, mutta auttaa pääsemään pois lokaaleista minimeistä. Satunnaisuutta voidaan lisätä edelleen käyttämällä opetusnäytteet erilaisissa, satunnaisissa järjestyksessä eri opetuskierroksilla. 14

Erilaisia kustannusfunktiota Ennustusvirheiden neliösumma ei ole ainoa vaihtoehto BP:n kustannusfunktioksi. On olemassa joukko paremmin käyttäytyviä luokitteluongelmaan sopivia funktioita ( gradient descent löytää globaalin minimin, jos sellainen on olemassa). 15

Cross entropy -kustannusfunktio Ol., että verkon halutut ulostulot y k ovat satunnaismuuttujia, jotka saavat joko arvon 1 tai 0, ja verkon todelliset ulostulot ŷ k ja 1 ŷ k ovat näiden arvojen a posterior tn:iä. Ol. lisäksi, että ulostuloneuronit ovat toisistaan riippumattomia. Silloin yhden opetusnäyteen vasteelle saadaan seuraava tn: p(y) = k L k=1 (ŷ k ) y k (1 ŷ k ) 1 y k (23) Kun lasketaan koko opetusjoukon vasteiden neg. loglikelihood -funktio, saadaan cross-entropy -funktio J = N i=1 k L k=1 (y k (i) ln ŷ k (i) + (1 y k (i)) ln(1 ŷ k (i))) (24) 16

J saa minimiarvonsa, kun y k (i) = ŷ k (i) Voidaan osoittaa, että cross entropy -funktio riippuu suhteellisista virheistä ja toisin kuin ennustusvirheiden neliösumma painottaa isoja ja pieniä virheitä yhtä paljon. Kun y k :t ovat 0- tai 1-arvoisia ja painot ovat cross entropy -kustannusfunktion mielessä optimaaliset, ŷ k :t ovat todella estimaatteja luokkien a posterior tn:lle P (ω k x) (Edellinen tulos pätee myös ennustusvirheiden neliösummaan perustuvalle kustannusfunktiolle) Cross entropy -funktioon perustuvan kustannusfunktion selvin etu on se, että se divergoi, jos jokin ulostuloista lähestyy väärää lokaalia optimia ja gradient descent -menetelmä pystyy reagoimaan nopeasti. (Vastaavassa tilanteessa virheiden neliösummaan perustuva kustannusfunktio lähestyisi vakiota.) 17

Kullback-Leibler -etäisyyteen perustuva kustannusfunktio Eräs vaihtoehto kustannusfunktioksi on luokkien todellisten ja estimoitujen a posterior tnjakaumiksi tulkittujen y:n ja ŷ:n välinen Kullback-Leibleretäisyys N k L J = y k (i) ln ŷk(i) y k (i), (25) i=1 k=1 joka on aina positiivinen ja saa minimiarvon nolla, kun y = ŷ Vaikka y ja ŷ oletettiin tnjakaumiksi, ne eivät välttämättä summaudu ykkösiksi. Tästä ongelmasta päästään eroon käyttämällä ulostulokerroksessa aktivaatiofunktiona softmax-skaalausta: ŷ k = exp(v L k ) L k =1 exp(vl k ) (26) 18

BP-algoritmin variaatioita Gradient descent -menetelmään perustuvan optimoinnin yleinen ongelma on hidas konvergointi. Konvergointi on hidasta varsinkin silloin, kun gradientin suunta värähtelee opetuskierrosten välillä. Aina kohti optimia osoittava (a) ja värähtelevä (b) gradientti: 19

Värähtelyä voidaan vähentää momentti-termin avulla seuraavasti: w r j(new) = α w r j(old) µ N δj r (i)y r 1 (i) (27) i=1 w r j(new) = w r j(old) + w r j(new) (28) α on positiivinen momenttikerroin, jonka arvot ovat tyypillisesti välillä 0.1 0.8 20

Muut optimointitekniikat Gradient descent -idean sijasta voidaan käyttää muita optimointitekniikoita, esim. conjugate gradient, Newton (esim. quickprop-menetelmä), Kalman filtering, ja Levenberg-Marquard. Useimmissa em menetelmissä tarvitaan J:n Hessin matriisia, joka voidaan laskea samaan tapaan kuin gradientit BP-algoritmissä. Kustannusfunktion toiset derivaatat painojen suhteen: 2 J w q jk wr nm (29) 21

Verkon koon määrittäminen Input- ja output-dimensiot määräytyvät tyypillisesti sovelluksen kautta. Piilokerroksen neuronien määrän pitää olla riittävän suuri, jotta verkko voi oppia, millä perusteella saman luokan sisällä vektorit ovat samankaltaisia ja miten eri luokkiin kuuluvat vektorit eroavat toisistaan riittävän pieni, jotta verkko ei ala oppia samaan luokkaan kuuluvien vektorien eroavuuksian liian yksityiskohtaisesti, jolloin verkon yleistyskyky on huono (ylioppiminen) MLP-verkon piilokerroksen koko voidaan määrittää seuraavilla tavoilla: analyyttiset menetelmät karsintamenetelmät (suurta verkkoa pienennetään vaiheittain) 22

konstruktiiviset menetelmät (pientä verkkoa kasvatetaan vaiheittain) Näitä menetelmiä ei tarkastella tässä yhteydessä tarkemmin. 23

Invarianttien piirteiden tunnistaminen - Weight sharing Yksi tärkeimpiä ongelmia hahmontunnistuksessa on erilaisille transformaatioille invarianttien piirteiden löytäminen (esim. käsinkirjoitettujen merkkien tunnistuksessa paikka, koko, kallistus, vinot tai mutkittelevat rivit jne...) Yksi tapa ratkaista ongelma on suorittaa raakadatalle erilaisia esikäsittelyjä ja piirteille normalisointeja Toinen tapa on sisällyttää itse luokittelumenetelmään keinoja käsitellä transformaatioita Neuroverkkojen tapauksessa tämä voidaan toteuttaa rajoittamalla joidenkin painojen arvoja keskenään samoiksi ( weight sharing ) 24

Ns korkeamman asteluvun MLP-verkoissa ( higher order networks ) painojen jakamista voidaan soveltaa esim. seuraavasti: Perseptronien aktivaatiofunktiot saavat argumenteikseen syötteidensä epälineaarisen yhdistelmän: f(v) = f(w 0 + i w i x i + jk w jk x j x k ) (30) Perseptronin syötteiden tulkitaan olevan peräisin 2-ulotteisesta hilasta (esim. x i :t ovat kuvan pikseleiden arvoja), jonka pisteet voidaan kytkeä toisiinsa suorilla (x i, x j ) Perseptronista saadaan epälineaaristen syötetermiensä suhteen translaatioinvariantti, jos w jk = w rs silloin kun (x j, x k ) = (x r, x s ), ja rotaatioinvariantti, jos w jk = w rs silloin kun d(x j, x k ) = d(x r, x s ) Painojen jakaminen vähentää verkon vapaiden parametrien lkm:ää tuntuvasti ja yleensä verkon oppimiskyky ei heikenny ratkaisevasti 25

D. de Ridder on kuvannut painojen jakamismenetelmää yksityiskohtaisesti sivulla http://www.ph.tn.tudelft.nl/ Research/neural/feature_extraction/papers/thesis/node46.html Sovellusesimerkki painojen jakamisesta: Backpropagation Applied to Handwritten Zip Code Recognition, LeCun et al, Neural Computation, Vol 1(4), 1989 Ongelmana on tunnistaa kirjekuorista skannattuja postinumeroita Esikäsittelyvaiheessa merkit segmentoidaan ja skaalataan 16 16:n pikselin kokoiksi kuviksi Merkit tunnistetaan MLP-verkolla, jossa on 3 piilokerrosta Sisääntulokerroksessa on jokaista kuvapikseliä kohti yksi perseptroni Ulostulokerroksessa on jokaista luokkaa kohti yksi perseptroni 26

2:n ensimmäisen piilokerroksen perseptroniryhmät toimivat eräänlaisina piirretunnistimina Painojen jakamisen ansiosta piirretunnistus on translaatioinvariantia Verkon opetus perustuu BP-algoritmiin Verkossa on yhteensä 1 256 perseptronia ja 64 660 kytkentää, mutta vain 9 760 vapaata parametriä Saavutettu tunnistustarkkuus (virhe noin 5%) on huomattavan korkea 27

Esimerkkejä tunnistettavista merkeistä: 28

Kaaviokuva käsikirjoitettuja merkkejä tunnistavasta neuroverkosta: 29

Ennustusvirheiden neliösumman ja tunnistustarkkuuden kehittyminen opetuksen aikana: 30