< eelmine | 4. OSA sisukord | järgmine > |
4.4.2 Täielikult närvivõrkudel põhinev lähenemine autor: T. Matiisen
Täielikult närvivõrkudel põhinev lähenemine kasutab masinõppe meetodeid, et õpetada tehisnärvivõrk imiteerima inimjuhi käitumist. Selline süsteem on oma ülesehituselt tunduvalt lihtsam ning toetub eelkõige suurele hulgale andmetele inimjuhtide käitumise kohta erinevates liiklusolukordades. Aluse eelduseks, et selline lahendus võiks töötada, annavad tehisnärvivõrkude suurepärased tulemused objektituvastuses, kõnetuvastuses, masintõlkes, arvutimängude õppimises ja mujal. Täielikult närvivõrkudel põhineva lähenemise põhimõtteline skeem on toodud joonisel 37.
Joonis 37: Täielikult närvivõrkudel põhinev isejuhtimine. Kogu juhtimisfunktsiooni teostab üks suur närvivõrk, mis saab sisendiks sensorite info ja väljastab roolimise ning kiiruse muutmise käsklused.
Masinõppe mõistes on siin tegemist tavapärase juhendatud õppega (supervised learning), kus võrgu sisendiks on näiteks kaamerapilt ning võrk ennustab rooli asendit ja auto kiirust. Selliste andmete kogumine on suhteliselt lihtne, kuna neid saab koguda automaatselt - piisab lihtsalt, kui sõitmise ajal salvestada igal hetkel kaamera pilt, rooli asend ja kiirus. Järgmistes alapeatükkides käsitleme võrgu arhitektuuri, treeningmeetodeid ja võimalikke probleeme lähemalt.
Võrgu arhitektuur
Joonis 38: Närvivõrgu arhitektuur täielikult närvivõrkudel põhineva lähenemise puhul. CNN - konvolutsiooniline võrk, RNN - rekurrentne võrk, MLP - tavaline täissidus võrk, PointNet - punktipilvede peal töötav võrk. (Allikas)
Võrgu sisendina (vt joonis 38, Main inputs) kasutatakse kõige rohkem üksikut ettepoole suunatud kaamerat. Samas võimaldab see ainult lihtsat sõidurea jälgimist. Keerulisemate manöövrite jaoks, nagu näiteks reavahetus või tee andmine ristmikul, on vajalikud täiendavad kaamerad suunaga külgedele ja taha. Sisuliselt täidavad need sama rolli, mida tahavaatepeeglid inimjuhi puhul. Lidari või vektorkaardi kasutamine sisendina lihtsustab potentsiaalselt võrgu tööd, aga paneb närvivõrkudel põhineva lähenemise samasse hinnaklassi modulaarsega ning pole seetõttu väga levinud.
Lihtsamal juhul tehakse ennustus ainult ühe kaamera kaadri põhjal. Praktikas on aga kasulik võtta arvesse sisendina mitut järjestikust kaamerapilti, või kasutada nende kombineerimiseks rekurrentset närvivõrku. See võimaldab võrgul hinnata nii auto enda kui ülejäänud objektide liikumise suunda ning kiirust. Auto kiiruse võib ka võrgule ilmutatult sisse anda (vt joonis 38, Measurements)
Ilma täiendava sisendita ei tea võrk, kas ristmikul keerata vasakule või paremale. Seetõttu on vaja võrgule anda sisendiks kõrgema taseme teekonnaplaneerija käsklus, nt “200 meetri pärast keera paremale” (vt joonis 38, Conditioning). Veel paremini töötab, kui võrgule anda sisendiks navigatsioonirakenduse ekraanipilt, kuna seal on näha ka tulevane trajektoor.
Lihtsaim võrgu väljund on ennustada rooli asendit ja auto kiirust järgmisel ajahetkel (vt joonis 38, Actuation). Samas kõik praktikas kasutatavad lahendused ennustavad konkreetsete juhtimiskäskluste asemel auto trajektoori (vt joonis 38, Waypoints). Selle konverteerimine rooli keeramiseks ning pedaalide vajutusteks jääb klassikalise juhtimismooduli ülesandeks. Trajektoori ennustamine muudab võrgu käitumise paremini arusaadavaks ning sunnib seda planeerima tulevikku. Trajektoori punktide omavahelised kaugused määravad ära ka auto kiiruse.
Trajektoorist veel universaalsem on takistuskaardi ennustamine (vt joonis 38, Costmap), kuna võimaldab käsitleda ka juhtu, kus on mitu võimalikku trajektoori, näiteks takistusest saab mööda põigata nii vasakult kui paremalt. Samas, kui meil puuduvad konkreetsed märgendid takistuskaardi jaoks, siis tuleb seda treenida kaudsel viisil - nii et kõikidel inimese poolt läbitud trajektooridel on madalam hind kui juhuslikult läbitud trajektooridel. Selline treenimine on keerulisem ja vajab palju treeningandmeid.
Võrgul võib olla ka mitu juhtimiskäskluste väljundit, üks iga võimaliku manöövri jaoks: otse sõitmine, vasakule pööramine, paremale pööramine, reavahetus vasakule, reavahetus paremale jne. Navigeerimiskäsklus valib ühe nendest väljunditest (vt joonis 38, Behavior).
Treenimismeetodid
Inimjuhi imiteerimine on kõige levinum treenimismeetod. Kuid sellega kaasneb nn andmejaotuse nihke probleem (distribution shift problem) - kui inimene sõitis ainult tee keskel, siis pole võrk kunagi näinud, kuidas käituda, kui auto on kaldunud tee äärde. Kui selliselt treenitud võrku kasutada päriselt sõitmisel, siis pisivead akumuleeruvad ning paratamatult mingil hetkel auto kaldub tee äärde. Sellise olukorra kohta pole võrgul kunagi olnud treeningandmeid ning selle käitumine on ennustamatu. Üks võimalik lahendus on teha treenimist reaalajas ning kordamööda lasta võrgul teha vigu (kalduda tee äärde) ning inimesel neid korrigeerida (sõita tagasi tee keskele).
Stiimulõpe on alternatiivne treenimismeetod, kus auto saab preemiat õigel trajektooril püsimise eest ning karistada teelt kõrvalekaldumise või avariide eest. Stiimulõpet on aga tülikas kasutada päris maailmas, kuna ei saa ju lihtsalt treenimise mõttes jalakäijale otsa sõita. Seetõttu kasutatakse stiimulõpet rohkem simulatsioonis. Sellega kaasneb teistsugune andmejaotuse nihkumise probleem - simulatsioonist saadavad kaamerapildid on oluliselt väiksema varieeruvusega kui päris elus. Näiteks on simulatsioonis ainult loetud arv erinevaid automudeleid või jalakäijaid. Lahenduseks on nn valdkonna adapteerimine (domain adaptation), mis võimaldab õppida närvivõrgu, mis konverteerib simulatsiooni pildi sarnaseks pärismaailma pildiga või vastupidi (vt joonis 39).
Joonis 39: (a) simuleeritud kaamerapilt GTA5 automängust. (b) GTA5 kaamerapilt konverteeritud välja nägema nagu päris maailm. (c) kaamerapilt päris maailmast. (d) päris maailma kaamerapilt konverteeritud välja nägema nagu GTA5 mängust. (Allikas)
Tulemuste hindamine
Võrgu headuse hindamiseks võrreldakse lihtsamal juhul võrgu ennustusi inimjuhi valitud rooli asendi ja auto kiirusega. Seda kutsutakse avatud testimiseks (open-loop evaluation), sest võrk reaalselt autot ei juhi. Sellise testimise tulemused on pisut küsitava väärtusega, kuna samas olukorras võib olla mitu samaväärset juhi käitumist. Samuti ei käsitle avatud testimine pisivigade akumuleerumise probleemi.
Suletud testimise (closed-loop testing) puhul lastakse võrgul reaalselt autot juhtida ning mõõdetakse keskmist vahemaad turvajuhi sekkumiste vahel või millise protsendi teekonnast auto sõitis isejuhtivas režiimis. Selline hindamismeetod on oluliselt realistlikum, sest mõõdab auto tegelikku edukust ülesande täitmisel, mitte sarnasust inimesele. Samas on praktikas suletud testimise tulemusi ikkagi raske omavahel võrrelda, sest need on tehtud erinevates keskkondades ja liiklustingimustes.
Avatud ja suletud testimise võrdlus on toodud joonisel 40.
Joonis 40: Avatud ja suletud testimise võrdlus. Vasakul: avatud testimise puhul võrreldakse võrgu ennustust inimese käitumisega samas situatsioonis ning see võimaldab hinnata sarnasust ainult konkreetse juhiga. Paremal: suletud testimise puhul võrk juhib reaalselt autot ning see võimaldab hinnata tegelikku võimekust juhtimisülesande täitmisel. (Allikas)
Interpreteeritavus
Kui autot juhib närvivõrk, siis võib olla teinekord raske aru saada, miks võrk vale otsuse tegi ja kuidas seda parandada. Näiteks kui auto sõitis otsa jalakäijale, siis kas põhjuseks oli see, et võrk ei tundnud jalakäijat ära, või see, et planeeris trajektoori valesti? Modulaarse lähenemise puhul selliseid küsimusi ei teki, sest me saame iga mooduli väljundi korrektsust eraldiseisvana kontrollida.
Üks võimalik lahendus sellele probleemile on anda närvivõrgule lisaülesandeid: näiteks lisaks juhtimiskäsklustele peab see ennustama ka objektide asukohti kaamerapildil ja nende kaugusi (vt joonis 38, Auxiliary outputs). See on kasulik kahel põhjusel:
- Esiteks kiirendab see treenimist, kuna me anname võrgule rohkem treeningsignaali. Objektide asukohti kaamerapildil ei ole vaja käsitsi märgendada, need võib genereerida mõne teise objektituvastusele spetsialiseerunud võrgu poolt.
- Teiseks me saame neid nn teiseseid väljundeid (auxiliary outputs) kasutada sõitmise ajal võrgu vigade analüüsimiseks - kui võrk ei tundnud takistust ära, siis tõenäoliselt see oli ka valesti valitud trajektoori põhjuseks.
Näited
Tesla kasutab hübriidlahendust, mis paljuski toetub närvivõrkudele. See on ka paratamatu, kuna Tesla sensorikomplekt ei võimalda sellise täpsusega positsioneerimist, mis oleks vajalik vektorkaardi kasutamiseks. Samuti ei taha Tesla piirata oma autode isejuhtimise piirkonda vektorkaardiga määratud alaga. Seetõttu on Tesla isejuhtimise funktsionaalsus ka piiratud - see piirdub paljuski sõiduraja järgimisega maanteel. Samuti nõuab Tesla juhilt aktiivset tähelepanu liiklussituatsiooni suhtes ning valmisolekut juhtimine üle võtta.
Joonis 41: Tesla närvivõrgu poolt tehtavad ennustused. (Allikas)
Joonisel 41 on näha Tesla närvivõrgu poolt tehtavad peamised ennustused:
- püstised punased ja kollased jooned - sõiduradade eraldusjooned,
- roheline ala - sõidetav ala, kasutusel parkimisel,
- punane horisontaalne joon - stoppjoon,
- nooltega riba keskel - auto soovitav trajektoor,
- kastid - tuvastatud objektid koos nende klassi, kauguse, sõidurea ja seisundiga.
Närvivõrgu poolt ennustatud andmete põhjal juhib Tesla autot klassikaline juhtimismoodul.
Comma.ai on tuntud häkkeri George Hotzi juhitav idufirma, mis soovib muuta isejuhtivad autod kõigile kättesaadavaks. Firma toodab umbes 1000 dollarit maksvat pardakaamera suurusega seadet, mille saab kinnitada auto esiklaasi külge. See suudab maanteel edukalt hoida sõidurida ning pikivahet eessõitva autoga. Comma.ai kasutamise eelduseks on, et auto rooli ja kiirust peab olema võimalik tarkvaraliselt juhtida. Kõige paremini sobivad selleks hetkel uuemad Toyota ja Honda mudelid. Seadmes jookseb Openpilot vabavara, mida on võimalik igaühel oma äranägemise järgi muuta. Openpilot kasutab täielikult närvivõrkudel põhinevat lahendust.
Joonis 42: Openpilot närvivõrgu poolt tehtavad ennustused. (Allikas)
Joonisel 42 on näha Openpilot närvivõrgu poolt tehtavad ennustused:
- valged jooned - sõiduraja eraldusjooned,
- lai riba keskel - planeeritud trajektoor,
- kolmnurk - kaugus eessõitvast autost (võrk ennustab ka kiirust, aga seda ei näidata).
Nagu ka Tesla puhul, juhib närvivõrgu poolt ennustatud andmete põhjal autot klassikaline juhtimismoodul.
Wayve on Inglismaal Cambridge ülikoolis asutatud iduettevõte, mis soovib muuta isejuhtivate autode tarkvara täielikult masinõppe põhiseks. Nende motoks on, et kuigi nende autod pole võib-olla esimesed, mis sõidavad ühes linnas, siis nad soovivad olla esimesed, kes sõidavad sajas linnas. Seda võimaldab loobumine vektorkaartidest ning toetumine täielikult närvivõrkudel põhinevale lähenemisele. Kuigi praktilist rakendust nende tehnoloogia veel leidnud pole, on nende demod siiski muljetavaldavad.
Joonis 43: Wayve närvivõrgu arhitektuur. Sisendiks on kaamera ja navigeerimisinstruktsioon. Väljundiks on rooli ja pedaalide asendid. Täiendavalt ennustatakse võrgu poolt pildi semantilist segmentatsiooni, optilist voogu (optical flow) ja sügavuskaarti (depth). (Allikas)
Boonus materjal
- Vaata milliseid ennustusi teeb Tesla närvivõrk. (3:45 min)
- Vaata comma.ai OpenPiloti tutvustust. (1:59 min)
- Vaata kuidas Wayve saab hakkama kitsastel Cambridge tänavatel. (3:10 min)
Kokkuvõte
Nagu eelnevalt nägime, on täielikult närvivõrkudel põhinev lähenemine kontseptuaalselt lihtsam - piisab, kui salvestada hulk andmeid inimjuhtide sõitmise kohta ja treenida tehisnärvivõrk neid imiteerima. Praktikas on sellel lähenemisel aga mitmeid puudusi:
- Vaja on väga palju treeningandmeid, eriti just spetsiifilisemate liiklusolukordade kohta. Treeningprotsess on tundlik erinevate liiklusolukordade osakaalude suhtes, nt kui enamik andmestikust on maanteel otse sõitmine, siis võrk eelistabki sõita kogu aeg otse.
- Tehisnärvivõrk on nagu must kast - kui see teeb vea, siis on raske aru saada, mis oli vea põhjuseks ja kuidas seda parandada.
Eelkõige on närvivõrkudel põhinev lähenemine kasutust leidnud autotootjate 2. taseme autonoomsusega lahendustes, kus seda kasutatakse hübriidkonfiguratsioonis - närvivõrk ennustab näiteks trajektoori ning see konverteeritakse juhtimiskäsklusteks klassikalise juhtimismooduli poolt. Samas tundub täielikult närvivõrkudel põhinev lahendus olevat ainus tee 5. taseme autonoomsuse saavutamiseks.
< eelmine | 4. OSA sisukord | järgmine > |