TRANSFORMACIJA KOORDINATNIH SISTEMOV Z NEVRONSKIMI SISTEMI Igor Belič * Izvleček: UDK: 5J9.6:68J.3. Članek prikazuje možnost uporabe nevronskih sistemov pri transfo rma c i j ah različnih koordinatnih sistemov. Uporaba nevronskih sistemov na tem področju ni običajna, ponuja pa številne možnosti. Kot primer je prikazana uporaba nevronskega sistema za transformacijo kartezičnega koordinatnega sistema v drug - rotiran kartezični koordinatni sistem. Prikazan je matematičen postopek rotacije in način, kako se rotacija koordinatnih sistemov predstavi nevronskemu sistemu. Rezultati testiranj kažejo, da so nevronski sistemi sposobni izvajati transformacijo - rotacijo kartezičnih koordinatnih sistemov. Praktična uporaba nevronskih sistemov za izvajanje transformacij zahteva natančno analizo obnašanja preslikave, ki jo naučen nevronski sistem izvaja. Ključne besede: nevronski sistemi, učenje, GPS, transformacije, rotacija, koordinatni sistemi, NEURAL NETWORKS FOR COORDINATE SYSTEMS TRANSFORMATION Abstract: The article proposes the use of neural networks for different coordinate systems transformation. It is not a typical application for neural networks but it openes several new aspects. As an example the neural network is used to perform the transformation from one cartesian coordinate system to another, which is rotated with the respect to original. The rotation is first introduced in classical way by matrix equation. The calculated transformation is used as the training set for the neural network. Experimental work shows that neural networks are able to learn and perform the rotation of coordinate systems although the practical use of neural networks in the field has to be thoroughly analysed. Keywords: neural networks, machine learning, GPS, transformations, rotation, coordinate systems. * Višji predavatelj, magister elektrotehnike, Visoka policijsko-varnostna šola, Kotni kova 8, Ljubljana 253 Igor Belič Transformacija koordinatnih sistemov z nevronskimi sistemi 1. UVOD Preračunavanja med različnimi koordinatnimi sistemi (geocentrični koordinatni sistem WGS 84, kartezični koordinatni sistem, geodetske koordinate, državni koordinatni sistem, ....) je računsko zelo intenzivna in zahtevna naloga. Vsi sistemi preračunavanja so matematično dobro znani, povsod pa naletimo na napake, ki jih povzročajo različni vplivni faktorji - med najpomembnejšimi je zamenjava oblike zemlje z matematično idealnim telesom. Že nekaj časa se zelo pospešeno razvija področje nevronskih sistemov, ki poskuša prodreti na področja, ki so modelsko znatno slabše opremljena kot geodezija. Namen članka je pokazati, da se numerično dobro poznane transformacije, lahko zamenja z nevronskimi sistemi, ki se prtvarjanja enega koordinatnega sistema v drugega naučijo in so ga sposobni v poljubnih točkah znotraj poznanega področja, s primerno točnostjo tudi reproducirati. Če torej velja, da nevronski sistemi lahko z zadovoljivo točnostjo izvedejo transformacije koordinatnih sistemov, potem sledi naslednji korak, kjer lahko v takšne transformacije mnogo lažje vpeljemo nelinearna lokalna odstopanja, ki sicer kvarijo meritve (lokalne deformacije). Primer uporabe nevronskega sistema je prikazan na rotaciji dveh kartezičnih koordinatnih sistemov. 2. TRANSFORMACIJA KOORDINATNIH SISTEMOV Pogosto uporabljana transformacija, ki se uporabljajo pri preračunavanju med GPS (ITRS - International Terrestrial Reference System) in državnim koordinatnim sistemom (KSDM - koordinatni sistem državne mreže) je podobnostna transformacija (Leick, 1995), ki vsebuje rotacijo in translacijo. Transformacija med dvema koordinatnima sistemoma X{ in X2 je podobnostna in obenem tudi konformna (ohranja merilo). Zapisana je z naslednjo matrično enačbo: x2 = (1 + dm)RX J + T kjer je: X{ koordinate točke v prvem koordinatnem sistemu X2 koordinate točke v premaknjenem (rotacija in transiacija) koordinatnem sistemu R ortogonalna rotacijska matrika 1 + dm faktor merila T vektor premika (translacije) izhodišča koordinatnih sistemov Rotacijska matrika R je sestavljena in je produkt posameznih rotacijskih matrik osi koordinatnega sistema. Kot rotacije je označen pozitivno, kadar je v nasprotni smeri gibanja urinih kazalcev. Matriko R imenujemo tudi kardanska matrika. Sestavljena je iz produkta treh matrik: R = Rx(a)Ry{fi)Rz(r) 254 Igor Belič Transformacija koordinatnih sistemov z nevronskimi sistemi Kjer so posamezne matrike: "l 0 0 cosß 0 -sin ß cos y sin y 0" Rx = 0 cosa sina H 0 1 0 ; R.= -sin y cos y 0 0 -sina cosa sin ß 0 cosß 0 0 1 Produkt rotacij je torej: R(a,ß,y) = cos ß cos y cosa sin y + sin a sin ß cos y sin asm y- cos a sin ß cos y -cos/? sin y cos a cos ^ - sin a sin ß sin y sin a cos y + cos a sin ß sin y sin ß - sin a cos ß cosa cos ß Rotacija in translacija koordinatnega sistema imata dve, za uporabo nevronskih sistemov, zelo ugodni lastnosti. Transformacija je zvezna in enolična. 3. PRIPRAVA POSKUSA Z NEVRONSKIM SISTEMOM Testiranje uporabe nevronskega sistema je namenjeno prikazu ustreznosti uporabe nevronskega sistema za izvajanje zahtevane transformacije. Pri tem je osnovna enačba premika koordinatnih sistemov nekoliko poenostavljena, saj za sam prikaz delovanja nekateri parametri enačbe niso pomembni. Poskus se omejuje na rotacijo koordinatnih sistemov in zato upošteva enačbo = RX j in je narejen za različne kote rotacij koordinatnih osi a, p, y. Ti so glede na kote, ki se praktično uporabljajo, nerealno veliki. Nevronski sistem se mora transformacije naučiti na znanem področju, kjer je natančno poznana (izračunana). Glede na natančnost poznavanja transformacije, preračun ni zahteven. Izbira učne množice za prikaz sposobnosti nevronskega sistema, da se nauči pravil transformacije ni pretirano zahtevna naloga. Tabela 1 prikazuje učno množico osnovnih točk in pripadajočih transformacij. V tabeli so zapisane točke v kocki velikosti 10x 1 ()x 10 in njim pripadajoče transformirane točke. Tabela 2 prikazuje točke, v katerih je bilo preverjeno delovanje nevronskega sistema. Vse poskusne točke se nahajajo v notranjosti kocke z velikostjo stranice 10. Testna množica je manjša od učne in tesne točke ne sovpadajo z učnimi.. Poskus je bil izveden za štiri različne rotacije, pri čemer so bili koti a, p in y naslednji: a P y testi 5° 5° 5° test2 10° 10° 10( test 3 20° 20° 20' test4 15° 's/1 o. 15( 255 ë . 1: Učna i X y -1,1855 0,853553 1,366025 -2,37101 1,707107 2,732051 -3,55651 2,56066 4,098076 -4,74202 3,414214 5,464102 10 -5,92752 4,267767 6,830127 -0,33195 2,624844 1 -1,51746 3,478398 2,366025 -2,70296 4,331951 3,732051 -3,88847 5,185505 5,098076 10 -5,07397 6,039058 6,464102 0,521602 -0,6639 4,396136 0,633975 2 -1,84941 -3,03491 6*956796 4/732051 10 -4,22042 7,810349 6,098076 1,375156 6,167427 0,267949 0,189651 7,02098 1,633975 -0,99585 "> 181 v; 7,874533 3 10 -3,36686 9,58164 5,732051 2,228709 7,938718 -0,09808 1,043204 8,792271 1,267949 -0,1423 9,645824 2,633975 10 -2,51331 11*35293 4 10 3,082262 9,710009 '-0,4641 10 1,896758 10,56356 0,901924 10 0,711253 11,41712 2,267949 10 -0,47425 12,27067 3,633975 10 10 -1,65976 13,12422 5 0 0 0 -1,1855 0,853553 1,366025 -2,37101 1,707107 2,732051 -3,55651 2,56066 4,098076 -4,74202 3,414214 5,464102 10 -5,92752 4,267767 6,830127 -0,33195 -1,51746 -2,70296 -3,88847 -5,07397 0,521602 -2,85439 2,741181 1,555676 6,146264 7,51229 1,682163 3,048188 6 0,370172 7,508508 4,414214 8 -0,81533 8,362061 5,780239 10 -2,00084 9,215615 7,146264 2 3,594734 7,572692 1,316137 4 2,40923 8,426246 2,682163 6 1,223725 9,279799 4,048188 8 0,03822 10,13335 5,414214 10 -1,14728 10,98691 6,780239 2 4,448288 9,343983 0,950112 4 3,262783 10,19754 2,316137 6 2,077278 11,05109 3,682163 8 0,891774 11,90464 5,048188 10 -0,29373 12,7582 6,414214 0 2,732051 -0,73205 2,828427 2 1,546546 0,121503 4,194453 4 0,361042 0,975056 5,560478 6 -0,82446 1,828609 6,926503 8 -2,00997 2,682163 8,292529 10 -3,19547 3,535716 9,658554 2 2,4001 1,892794 3,828427 4 1,214595 2,746347 5,194453 6 0,02909 3,5999 6,560478 8 -1,15641 4,453454 7,926503 10 -2,34192 5,307007 9,292529 2 3,253653 3,664085 3,462402 4 2,068148 4,517638 4,828427 6 0,882644 5,371191 6,194453 8 -0,30286 6,224745 7,560478 10 -1,48837 7,078298 8,926503 2 4,107206 5,435376 3,096376 6 1*736197 7^142483 5^828427 10 -0,63481 8^849589 ¿560478 2 4,96076 7,206667 2,730351 4 3,775255 8,06022 4,096376 6 2,589751 8,913774 5,462402 8 1,404246 9,767327 6,828427 10 0,218741 10,62088 8,194453 2 5,814313 8,977958 2,364326 4 4,628809 9,831511 3,730351 6 3,443304 10,68506 5,096376 1,072295 12,39217 7,828427 4,098076 -1,09808 4,242641 2,912572 -0,24452 5,608666 1,727067 0,609031 6,974691 0,541562 1,462584 8,340717 -0,64394 2,316137 9,706742 10 -1,82945 3,169691 11,07277 2 3,766125 1,526768 5,242641 4 2,58062 2,380322 6,608666 6 1,395116 3,233875 7,974691 8 0,209611 4,087428 9,340717 10 -0,97589 4,940982 10,70674 2 4,619678 3,298059 4,876615 4 3,434174 4,151613 6,242641 6 2,248669 5,005166 7,608666 8 1,063165 5,858719 8,974691 10 -0,12234 6,712273 10,34072 2 5,473232 5,06935 4,51059 4 4,287727 5,922904 5,876615 6 3,102223 6,776457 7,242641 8 1,916718 7,630011 8,608666 10 0,731213 8,483564 9,974691 2 6,326785 6,840641 4,144564 4 5,141281 7,694195 5,51059 6 3,955776 8,547748 6,876615 8 2,770271 9,401302 8,242641 10 1,584767 10,25485 9,608666 2 7,180339 8,611932 3,778539 4 5,994834 9,465486 5,144564 6 4,809329 10,31904 6,51059 8 3,623825 11,17259 7,876615 10 2,43832 12,02615 9,242641 0 5,464102 -1,4641 5,656854 2 4,278597 -0,61055 7,02288 4 3,093092 0,243005 8,388905 6 1,907588 1 $96559 9,75493 8 0,722083 1,950112 11,12096 10 -0,46342 2,803665 12,48698 5,13215 1,160743 6,656854 3,946646 2,014296 8,02288 2,761141 2,86785 9,388905 1,575637 3,721403 10,75493 0,390132 4,574956 12,12096 5,985704 4,800199 3J85587 7,656854 3,614695 4,639141 9,02288 2,42919 5,492694 10,38891 10 1,243685 6,839257 5,653753 3,282743 III 11,75493 7^290829 8,656854 10 2,097239 7,692811 6,507306 4'136297 IUI 5,558778 9^656854 10 2,950792 9,88883 11,02288 10 8,546364 8,245907 5,192753 10 7,360859 9,09946 6,558778 10 6,175355 9,953014 7,924803 10 4,98985 10,80657 9,290829 10 10 3,804345 11,66012 10,65685 10 0 6,830127 -1,83013 7,071068 10 0 5,644622 -0,97657 8,437093 10 0 4,459118 -0,12302 9,803119 10 0 3,273613 0,730533 11,16914 10 10 10 0 0 2 10 0S4 1,584087 2,43764 0,794717 12,53517 13,90119 8,071068 10 2 5,312671 1,648271 9,437093 10 2 4,127167 2,501824 10,80312 10 2 2,941662 3,355378 12,16914 10 2 10 1,756157 4,208931 13,53517 10 4 7,351729 2,566008 7,705042 10 4 6,166225 3,419562 9,071068 10 4 4,98072 4,273115 10,43709 10 4 3,795215 5,126669 11,80312 10 4 10 2,609711 5,980222 13,16914 10 6 8,205283 4,3373 7,339017 10 6 7,019778 5,190853 8,705042 10 6 5,834273 6,044406 10,07107 10 6 4,648769 6,89796 11,43709 10 6 10 3,463264 7,751513 12,80312 10 8 9,058836 6,108591 6,972992 10 8 7,873331 6,962144 8,339017 10 8 6 6,687827 7,815697 9,705042 10 8 8 5,502322 8,669251 11,07107 10 8 10 4,316817 9,522804 12,43709 10 10 2 9,912389 7,879882 6,606966 10 10 4 8,726885 8,733435 7,972992 10 10 6 7,54138 9,586988 9,339017 10 10 8 6,355875 10,44054 10,70504 10 10 10 5,170371 11,2941 12,07107 x y z xl yl zl 1 1 1 0,517037 1,12941 1,207107 1 1 5 -1,85397 2,836516 3,939158 1 1 9 -4,22498 4,543623 6,671208 1 5 1 2,224144 4,671992 0,475056 1 5 5 -0,14687 6,379098 3,207107 1 5 9 -2,51787 8,086205 5,939158 1 9 1 3,931251 8,214574 -0,25699 1 9 5 1,560241 9,921681 2,475056 1 9 9 -0,81077 11,62879 5,207107 5 1 1 3,249088 0,397359 4,035534 5 1 5 0,878079 2,104465 6,767585 5 5 1 4,956195 3^939941 3^303483 5 5 5 2,585185 5,647048 6,035534 5 5 9 0,214176 7,354154 8,767585 5 9 1 6,663301 7,482523 2,571432 5 9 5 4,292292 9,18963 5,303483 5 9 9 1,921283 10,89674 8,035534 9 1 1 5,981139 -0,33469 6,863961 9 1 5 3,610129 1,372415 9,596012 9 1 9 1,23912 3,079521 12,32806 9 5 1 7,688245 3,20789 6,13191 9 5 5 5,317236 4,914997 8,863961 9 5 9 2,946227 6,622104 11,59601 9 9 1 9,395352 6,750472 5,399859 9 9 5 7,024343 8,457579 8,13191 9 9 9 4,653334 10,16469 10,86396 Igor Belič Transformacija koordinatnih sistemov z nevronskimi sistemi 4. UPORABLJEN NEVRONSKI SISTEM Pri testiranju je bil uporabljen nevronski sistem, prikazan na sliki 1. Konfiguracija nevronskega sistema nima povratnih povezav (Feed Forward) in je učena s principom povratnega razširjanja napak (Error Backpropagation) (Cherkassky, 1998), (Golden, 1996). Sistem ima vhodno plast s tremi nevroni. Na vsak vhodni nevron pride po ena koordinata točke. Sledita dve skriti plasti s po desetimi nevroni. Na koncu je še izhodna plast, ki spet predstavlja koordinate točke, tokrat v premaknjenem koordinatnem sistemu. Slika 1: Za testiranje je bil uporabljen nevronski sistem s tremi vhodnimi nevroni, dvema skritima plastema po deset nevronov in izhodno plastjo s tremi nevroni. Parametri nevronskega sistema so bili: Hitrost učenja 0,5 Vztrajnostni koeficient 0,3 Vhodni šum 0 Učna toleranca 0,01 Testna toleranca 0,02 Uporabljen je bil programski paket Neuralyst 1.4 proizvajalca Cheshire. 5. REZULTAT TESTIRANJ Rezultati testiranj kažejo, daje začetna hipoteza po kateri naj bi bili nevronski sistemi sposobni izvajati transformacijo koordinatnih sistemov upravičena. Testni nevronski sistem se je v vseh štirih testnih primerih naučil reprodukcije prevajalne funkcije - transformacije -z naprej postavljeno toleranco dovolj enega odstopanj a 1%. V vseh štirih primerih je potek učenja sistema in temu primerno upadanje velikosti srednje kvadratne napake, monotono padajoče. Razmere ponazarja slika 2. 258 Igor Belič Transformacija koordinatnih sistemov z nevronskimi sistemi Slika 2: Potek srednje kvadratne napake, ki jo pri učenju na izhodu naredi nevronski sistem. Na abscisni osi je število učnih ciklov (epochs). Zadnja delitev predstavlja 49920-to ponovitev. Na ordinatni osi je velikost srednje kvadratne napake. 6. SKLEP Namen dela je bil ugotoviti, ali nevronski sistem lahko nadomesti računanje rotacij in s tem poveča hitrost in robustnost delovanja. Ugotovitve prikazanega dela so: * Prikazano učenje nevronskega sistema izpolnjuje pričakovanja in dokazuje, da se je nevronski sistem sposoben naučiti transformacije - rotacije kartezičnega koordinatnega sistema. * Za praktično uporabo nevronskega sistema pri opisanih tran s form ac ij ah j e nujna optimizacija nevronskega sistema ter prilagoditev v praktično uporabno področje. * Nujna je analiza uporabnega področja ter napak, ki jih zaradi svoje nelinearnosti v izračun vnaša nevronski sistem. * Naučen nevronski sistem je v svojem delovanju zelo hiter in je zato primeren za uporabo tam, kjer je hitrost izvedbe transformacije pomembnejša od dosežene točnosti. * Nevronski sistemi zaradi postopkov učenja lahko v izvajanje transformacije vpeljejo tudi lokalne anomalije, ki jih je sicer težko upoštevati. LITERATURA 1. Cherkassky V., Muiler F., 1998: Learning from Data, John Wiley & Sons, New York. 2. Golden R.M., 1996: Mathematical Methods for Neural Network Analysis and Design, MIT Press, New York. 3. Leick A., 1995: GPS Satellite Surveying. John Wiley & Sons, New York 259 Igor Belič Transformacija koordinatnih sistemov z nevronskimi sistemi POVZETEK Preračunavanja med različnimi koordinatnimi sistemi je v geodeziji pogosto uporabljana in računsko intenzivna naloga. Postopki preračunavanja so matematično dobro znani in definirani. Namen članka je pokazati, da se izračunavanje transformacije lahko zamenja z nevronskimi sistemi, ki se pretvarjanja enega koordinatnega sistema v drugega naučijo. Primer uporabe nevronskega sistema je prikazan na rotaciji dveh kartezičnih koordinatnih sistemov in preizkušen na štirih različnih rotacijah. Nevronski sistem se nauči transformacije na znanem področju, kjer je natančno poznana. Priloženi sta tabeli učne in testne množice, ki dajeta bralcu možnost praktične ponovitve poskusa. Testna množica je manjša kot učna in tesne točke ne sovpadajo z učnimi. Rezultati testiranj kažejo, da so se nevronski sistemi sposobni naučiti transformacije dveh koordinatnih sistemov. Testni nevronski sistem se je naučil reprodukcije transformacije z naprej postavljeno toleranco dovoljenega odstopanja 1%. Potek učenja sistema in upadanje velikosti srednje kvadratne napake je za izbran sistem monotono padajoče. Praktična uporaba sistema zahteva natančno analizo delovanja. SUMMARY Calculation of various transformations between coordinate systems are very common in geodesy. They are often numerically intensive. The transformation algorithms are very well known. The main focus of the article is to show that neural networks can be used for coordinate system transformations. The rotation of two Cartesian coordinate systems was used as an example. Four different rotations were tested. Neural network is trained to perform the transformation on the known subspace. Two tables are attached to the paper to enable reader to repeat the experiment. Training set is much larger than the testing one, and the testing points differ from training points. Experimental results show, that neural networks are able to learn the transformation of two coordinate systems. Training and test tolerance were set on 1%, meaning that all reproduced points are within the given tolerance. Training root mean square error decreases in time. Practical use of neural networks for coordinate systems transformation, requires concise analysis of the network behaviour. 260