Dezvoltarea unui creier pentru mașină autonomă

Toți cei care doresc să obțină permisul de conducere în Qatar trebuie să meargă la un control oftalmologic ca prim pas. De ce? Simplu. Pentru că dacă nu ai ochi buni, atunci nu ai putea vedea corect, iar dacă nu ai putea vedea corect, atunci ai avea dificultăți în a conduce mașina.

Viziunea este prima cerință obligatorie pentru conducerea unei mașini, de aceea prima „carne” a programului de nanograde de conducere autonomă de la Udacity este despre viziunea computerizată. Am „spuns povestea” despre lucrul la primul proiect care a fost legat de viziunea computerizată oferit de Udacity. Viziunea a fost folosită pentru a găsi liniile benzii de pe drum.

Computerul vede lumea printr-o cameră care produce imagini. Secvența de imagini produce videoclipuri. Și primul proiect demonstrează că este posibil ca computerul să înțeleagă liniile benzii. Liniile benzii vor fi folosite ulterior pentru a menține mașinile autonome pe pistă.

Revenind la obținerea permisului de conducere în Qatar, următorul pas este să faceți formarea. Dar înainte de a merge la antrenamentul rutier, trebuie să înțelegeți semnele de circulație. Semne de circulație care arată regulile de urmat pentru șofer pe drum. Poate fi folosit și ca sursă de informații pentru șofer. Un șofer trebuie să înțeleagă semnele de circulație. Mi-am amintit că a trebuit să-mi amintesc toate semnele de circulație folosite în Qatar, deoarece acestea vor fi testate ulterior de poliție ca premise pentru a obține permisul de conducere.

Conceptul foarte similar aplicat pentru mașina cu conducere autonomă / autonomă. Mașina trebuie să înțeleagă semnele de circulație de pe drum. Mașina trebuie să învețe că atunci când vede un semn de circulație care spune „20 km/h” înseamnă că nu trebuie să depășească viteza de 20 km/h. Când mașina vede trafic despre „copii care traversează”, atunci trebuie să ia măsuri de precauție pentru a nu lovi copiii. Deci întrebarea este cum să înveți o mașină să învețe despre semnele de circulație?

Învățare automată

Aceasta este a doua „carne” de material furnizat de Udacity. Cu scopul descris mai sus, elevii trebuie să finalizeze un proiect pentru a crea un model de identificare a semnelor de circulație. Pentru a face acest lucru, conceptul de deep learning a fost introdus împreună cu „tensorflow”.

Dar de ce să folosim învățarea automată? Nu am putea defini în mod specific fiecare imagine de semn de circulație și să o dăm mașinii? Imaginea de mai jos va răspunde la această întrebare.

După cum puteți vedea, există 3 imagini diferite ale „semnului de oprire” cu 3 stiluri diferite. Să presupunem că adăugăm o „codificare” pentru a defini o imagine a semnului de oprire și a-l da computerului din interiorul mașinii, acesta va înțelege o singură imagine. Camera din mașină captează „semnul de oprire” de pe drum, care poate fi luat din diferite unghiuri diferite, cu mii de posibilități. În acest caz, computerul va clasifica în mod fals imaginea predefinită, deoarece imaginea predefinită a fost luată doar dintr-un unghi specific.

De aceea, învățarea automată a fost necesară pentru a crea un „model” pentru ca mașina să fie folosită ca „creier”. Modelul/creierul în sine a fost formulat printr-un proces de antrenament care extrage caracteristici dintr-o mulțime de imagini eșantion de „semn de oprire”, adică 1000 de imagini diferite. Odată ce modelul/creierul dezvoltat pentru a înțelege imaginea „semnal de oprire”, mașina va putea să clasifice diferite tipuri de „semn de oprire” și apoi să decidă ce să facă când vede acel semn pe șosea mai târziu.

Invatare profunda

Putem spune că învățarea profundă este o cunoaștere care se află în domeniul inteligenței artificiale.

Învățarea profundă nu este singura metodologie de rezolvare a problemelor legate de inteligența artificială, cu toate acestea, pentru acest caz particular (recunoașterea imaginii), învățarea profundă ar putea fi considerată o metodologie „asigură”. Există o mulțime de resurse legate de învățarea profundă acolo, mulți oameni discută problema de la început într-o problemă tehnică profundă. Le puteți găsi pe google.

Modul în care Udacity livrează materialul este împărțirea în mai multe părți:

  • Introducere în rețelele neuronale
  • Dezvoltarea MiniFlow: o bibliotecă mică pentru a înțelege mai bine cum funcționează tensorflow
  • Introducere în Tensorflow
  • Rețele neuronale profunde
  • Rețele neuronale convoluționale

Sincer, am avut dificultăți în a învăța conceptul la început. Mi-a luat aproximativ o lună (ei bine, mi-am folosit doar timpul liber, mai ales în weekend) pentru a obține o înțelegere aprofundată a conceptelor pentru a ajunge la rețelele neuronale de convoluție. Nu mi-a fost ușor la început să înțeleg imediat materialul oferit de Udacity, așa că m-am chinuit să caut o altă referință. În cele din urmă, odată ce înțeleg, fiecare material oferit de Udacity devine mai logic. Iată un eșantion de material listat legat de rețelele neuronale profunde.

Am încercat să citesc codul de proiect dezvoltat de alți studenți și am început să mă întreb cum pot face acest lucru atât de bine, majoritatea lucrurilor pe care nu le înțeleg, cum ar fi de ce este necesar să existe o creștere a datelor pe imagine, cum se face o scalare de gri corectă. , etc. Dar mai târziu îmi dau seama că conceptul a fost foarte comun, în special pentru studenții care au învățat învățarea profundă la o anumită facultate, sau pentru persoanele care deja se ocupă de învățarea profundă sau AI în general.

Dacă cineva m-ar întreba în aceste zile, aș sugera să urmăresc aceste ghiduri pentru a înțelege mai întâi conceptul: prelecție cs231n iarna 2016 susținută de standford, curs practic de învățare profundă de Jeremmy și începerea cu tensorflow.

CS231n conține o serie de prelegeri academice pentru a înțelege despre învățarea automată, învățarea profundă, precum și rețeaua de conversie. Materialul descris este foarte detaliat și clar. Odată terminat, cursul practic de deep learning susținut de Jeremmy va arăta cum să utilizați conceptul teoretic într-o experiență reală de codificare pentru a rezolva problema. Și, în sfârșit, cred că important este să înțelegem cum funcționează tensorflow mai detaliat. Pe baza experienței mele, după ce am învățat din aceste 3 surse, când mă întorc la Udacity, lucrurile nu sunt doar mai ușor de înțeles, ci și materialul furnizat adăugând o înțelegere mai puternică a modului de a crea un model bun pentru problema semnelor de circulație.

Revizuirea proiectului

Nu, nu aș spune că prezentarea mea a fost foarte satisfăcătoare. De fapt, din cauza constrângerii de timp (proiectul2 a trecut din cauza unei luni deja), a trebuit să depun cât mai curând posibil. Există și alte materiale care așteaptă să fie învățate, împreună cu o altă depunere de proiect restante. Depunerea mea pentru proiectul-2 a îndeplinit doar cerințele standard date pe rubrică, cu o precizie de validare de 93%. Din mostrele de semne de circulație, modelul poate clasifica corect imaginea 4 din 5, deci este ca 80%.

Prezentarea proiectului și revizuirea acestuia reprezintă, de asemenea, o bază excelentă pentru a lua un program de nanograde în Udacity. Ei au revizuit proiectul nostru în detaliu. De asemenea, trebuie să furnizăm o redacție care explică ce face proiectul ca parte a depunerii. Citirea recenziei în sine, de asemenea, o altă sursă de cunoștințe, deoarece recenzentul continuă să ofere multe sugestii despre cum să îmbunătățiți proiectul. Iată eșantionul de recenzie dat pentru proiectul-2 la care lucram.

Proiectul la care am lucrat era disponibil pe github, iar redacția poate fi accesată de aici.

Învățarea automată este un lucru distractiv. Înțeleg acum de ce unii oameni sunt foarte entuziasmați de asta. Cunoștințele în sine sunt unul dintre subiectele fierbinți în zilele noastre și pot fi utilizate în diferite domenii, cum ar fi în domeniul sănătății sau chiar pentru securitatea cibernetică.

Cu siguranță aș săpa mai mult în chestia asta. Dar deocamdată, permiteți-mi să trec la sfârșitul restului acestui program de mașini cu conducere autonomă termenul-1. Mai multă poveste așteaptă mai târziu ;).