En ærlig gennemgang af Udacity's Self-Driving Car Nanodegree - tredje valgperiode og videre!

TLDR: Det er ok. Jeg anbefaler ikke rigtig det. Jeg synes, der skal være dobbelt så meget indhold og meget bedre præsentation til halve prisen. Der er meget gratis indhold derude, der giver en meget bedre præsentation af emnet. Her er en samlet liste over kuraterede ressourcer.

Hvis denne artikel hjalp dig på en eller anden måde, kan du overveje at købe en kaffe til mig :)Bitcoin-adresse, hvis du vil donere :)

Nu for mig er det forbi! Jeg synes, det er ok, men temperer dine forventninger.

Først vil jeg tale om de tre projekter. Derefter vil jeg tale om job.

Sti-planlægning

Det første projekt har som mål at skabe en rute til planlægning af stier, der smart, sikkert og komfortabelt navigerer over en virtuel bil omkring en virtuel motorvej med anden trafik.

Vejeplanlægningen er ikke lige lige fremad som de andre projekter. Vi blev præsenteret mange ideer om forudsigelser, bane-generation og adfærdsplanlægning, men blev efterladt i mørket om, hvordan vi rent faktisk kan bruge dem til dette specifikke projekt.

DEPP BLÅBRYBOG: Hvis du altid har ønsket at begynde at lære om dyb læring gratis, var du måske snuble over det rigtige sted! (klik på dette link)

Heldigvis var SDCND Slack-teamet så levende og livligt med mange mennesker, der delte deres ideer, tilgange og fund. Som et resultat kom forskellige studerende på forskellige måder at løse problemet på, mens de nåede det samme mål og ikke nødvendigvis bruge ideerne fra lektionerne. Jeg synes, dette er fantastisk, og det minder om den søde barometerhistorie.

Jeg var dog skuffet over, hvad der skete i Bosch Challenge. Ud af 66 indsendelser var kun seks færdige, og af en eller anden grund kom visse indlæg ikke korrekt sammen. Nogle modtog feedback om, at deres kode ikke kompilerede eller ikke afsluttede sporet, og nogle (inklusive mig selv) modtog slet ingen feedback.

Det var okay for mig, da jeg ikke lagde så stor indsats i det. Der var kun en væsentlig forskel mellem mit indsendte projekt og de andre: i stedet for at bruge det øjeblikkelige målte spalte på mit køretøj med de nærmeste køretøjer i hver bane brugte jeg for en ekstra sikkerhed et beregnet "effektivt mellemrum", der tilføjer yderligere afstand baseret på køretøjets nuværende hastighed og antagede latenstid. Jeg lavede også nogle parametertilpasninger og ændringer i beregning af omkostninger. Jeg har det dog dårligt for de andre studerende.

Valgfag

Der var to valgfag: semantisk segmentering og funktionel sikkerhed. Funktionel sikkerhed er interessant, men jeg valgte semantisk segmentering, fordi det er et kodningsprojekt. Det funktionelle sikkerhedsprojekt bestod af at skrive et dokument.

Under alle omstændigheder lærte jeg om begrebet funktionel sikkerhed såvel som funktionelle sikkerhedsrammer for at sikre, at køretøjet ville være sikkert, både på system- og komponentniveauer. Til semantisk segmentering skulle vi bruge et Fully-Convolutional Network (FCN) script til at markere pixel af veje i billeder.

For at afslutte dette projekt læste jeg nogle yderligere materialer online. For at være ærlig, selv efter at have læst så meget, forstår jeg stadig kun FCN'er på et overfladisk niveau. Hvis du er tilbøjelig, er her de ressourcer, som jeg fandt mest nyttige:

Refreshers of TensorFlow: TensorFlow Tutorial, CNN of Image Classification, TensorFlow Tip

Semantisk segmenteringskoncepter: Semantisk segmentering i 2017, Transponere konvolution i TensorFlow, Video fra en Stanford-klasse om semantisk segmentering, en faktisk artikel om semantisk segmentering

Transpose Convolution: En guide til konvolution aritmetik, Theano: Transpose Convolution, Transpose Convolution Animations

Til dette projekt fik vi skabelonkode, og vi skulle bare udfylde de nødvendige dele. Jeg føler, at jeg ikke er i god position til at kommentere kodestrukturen, da jeg ikke har gjort så meget med TensorFlow. Men nogle mennesker, der har kodet i rigtig lang tid, nævnte, at skabelonen til dette specifikke projekt kunne have været skrevet på en bedre måde.

Systemintegrationsprojekt

Det, jeg elskede mest ved dette projekt, var, at det var et team-projekt. Først var jeg lidt betænkelig over det og tænkte, at ingen ville være min holdkammerat.

Jeg var begejstret, da Lukasz inviterede mig til at komme med i sit team, Kung-Fu-Panda Automotive. Jeg var begejstret over at arbejde med mennesker fra forskellige lande og forskellige samfundslag. Mig fra Filippinerne, Lukasz fra Schweiz, Kostas fra Grækenland, Maurice fra Tyskland og Alexey fra London (Alexey forlod, da han havde personlige ting at tage sig af på det tidspunkt og til sidst ledte sit eget hold.)

Jeg var heldig, at jeg endte i en lidenskabelig gruppe fuld af medlemmer, jeg havde stor tid på at arbejde sammen med. Vi havde ikke problemer, som andre grupper havde, som medlemmer, der ikke svarede, argumenter og konflikt.

Jeg vil citere min holdkammerat Kostas, da vi har en lignende stemning med hensyn til dette endelige projekt (han skrev denne artikel), og jeg tror, ​​han ikke kunne have formuleret det bedre:

”Desværre er dette projekt som en del af den første kohort ikke så interessant, som det kunne være. Hvert hold på fem (5) personer skal tackle to grundlæggende problemer (a) programmere en controller til bilen (b) identificere trafiklys og få bilen til at stoppe ved foruddefinerede positioner. Bare det. Ingen sensorfusion, ingen andre biler, ingen sti-planlægning. Det føles begrænset for et hold på fem. Forhåbentlig kan det ændre sig i fremtidige iterationer af nanodegree.
Den sværeste del i dette projekt var faktisk manglen på specifikationer og den kontinuerlige gætte, fordi vi kunne teste vores kode i simulatoren, men bilens specifikationer er ikke bestemt fuldt ud. For eksempel bliver vi bedt om at give gas i procent, men vi ved ikke, hvad gas 1.0 (100%) svarer. Normalt når du trykker på gashåndtaget helt ned i en bil, pålægger du motoren at give alt tilgængeligt drejningsmoment til drivhjulene, men denne værdi afhænger af den aktuelle hastighed, skift, omdrejningstider og måske flere værdier. Vi har ingen ledetråde til, hvordan bilen opfører sig, og hvert hold forsøger at tackle det problem i stedet for at have klare specifikationer. ”- Kostas Oreopolous

Så har du et SDC-job nu?

Okay, først skal jeg stoppe - jeg får panikanfald!

At få et job på dette felt er ikke så let, især fra Filippinerne. Men det er selvfølgelig muligt, som denne kvinde fra Indien lige gjorde. Vær dog på vagt over for overlevelsesfordele.

Mens jeg fik nogle invitationer til job, var ingen af ​​dem villige til at sponsorere mit visum. Jeg har heller ikke brugt (og planlægger heller ikke at bruge) energi på at lede efter et SDC-job snart. Jeg forklarer hvorfor senere.

Hvis du tilmelder dig SDCND i håb om at lande denne løn på 100 USD (især hvis du ikke er fra USA eller Europa), skal du forberede dig på at blive alvorligt skuffet. Hvis du tilmelder dig, fordi du har en ægte interesse i dette felt, er du imidlertid en god chance for, at du kan lide det.

Så hvordan får du et job i SDC alligevel? Efter min mening klassificerer jeg SDC-job generelt til tre hovedtyper:

  • Opfattelse og maskinlærings ting
  • Hardcore Software Engineering Stuff
  • Forsknings- og udviklingsmateriale

Dette er naturligvis for ikke at sige, at der ikke er andre typer SDC-job, såsom maskiningeniør eller elektronikingeniørjob. Det er bare det, at de typer job, jeg nævnte tidligere, er det, jeg ofte ser i SDC-jobbeskrivelser. Jeg tror ikke, at at få et job inden for et af disse tre hovedområder kræver, at du tilmelder dig Udacity;).

Lad os tale om disse områder lidt mere.

Opfattelse og maskinlæring Stuff

En selvkørende bil kræver, at bilen forstår dens omgivelser for at træffe beslutninger. Dette er noget, som menneskelige chauffører tager for givet, men selvkørende virksomheder er stadig i perfektion for at sikre passagerers sikkerhed.

I mit sind kalder jeg dette “George Sung Path.” Han tog også SDCND og blev til sidst en selvkørende bilmaskinelæringsingeniør hos BMW.

Hvis du vil gå ned ad denne vej, skal du lære TensorFlow. Og derefter til sidst anvende det, du har lært på dit eget open source-projekt, og / eller deltag i Kaggle-konkurrencer.

”Meget af interviewet blev også brugt på at diskutere mine tidligere projekter i dyb læring og computervision - mine motiver, den proces, jeg gik igennem, hvordan jeg kunne forbedre projekterne. Et særligt spørgsmål, der gentagne gange kom op, var "hvordan gik du ud over kursuskravene?", Eller lignende "hvilke af dine projekter var ikke en del af dit kursusarbejde?". En vigtig egenskab er at være ægte nysgerrig om emnet, sådan at du går over og ud over projektkravene og / eller opretter dit eget interessante projekt (er) ”- George Sung

Hardcore Software Engineering Stuff

Ifølge Paysa skal over 90% af de ansøgere, der kører selvbilkørsel, kende C ++. C ++ er også et samlet sprog med høj ydeevne, så de fleste koder, der faktisk kører på køretøjet, har en tendens til at være C ++. Tjek dette arkiv for nogle C ++ ressourcer.

Vær virkelig, virkelig god, og lær nuancerne i C ++, og vær forberedt på kodningssamtalen. Efter min mening er dette “Googley as Heck Path”. Du skal have et rigtig solidt fundament i datastrukturer og algoritmer.

Fra Paysa

Forsknings- og udviklingsmateriale

Dette er den mere traditionelle sti, der kræver en kandidatgrad, fortrinsvis inden for robotik og ikke omhandles fra et velrenommeret universitet. Hvis du vil være i stand til at få et solidt greb om forskellige ideer fra meget strålende mennesker om, hvordan man løser tekniske problemer, er dette vejen for dig. Og hvis du vil være i stand til at tilføje det nyeste og konstant udviklende viden, vil dette være den bedste vej at gå. Det er også en fantastisk måde at være i stand til at arbejde med ligesindede mennesker i et stort laboratorie inden for robotteknologi i den nærmeste fremtid.

Tjek mit arkivopbevaringssted for robotik her.

Resumé

Denne artikel er måske lidt af en hodgepodge, men jeg ville bare dele mine tanker om SDCND og SDC Jobs. Kurset var en ok oplevelse. Men hvis du bare tænker på at bruge $ 2.400 USD i håb om at få den løn på 100.000 USD, skal du sandsynligvis bruge dine penge på noget andet (se mine anbefalinger ovenfor).

Sammenfattende anbefaler jeg det ikke rigtig. Jeg synes, det skal være dobbelt så meget indhold og meget bedre præsentation til halve prisen. Der er meget gratis indhold derude, der giver meget bedre præsentation af emnet.

Fra Paysa

Jeg vil afslutte denne artikel med et citat fra min holdkammerat Kostas igen:

"Jeg glemte næsten. Den bedste del af programmet er medstuderende. De deler alle den samme lidenskab til læring, uanset alder eller læringsbaggrund. Slack-kanalen er den bedste del af kurset. Du udveksler ideer med andre mennesker, du hjælper, og du får hjælp. Det er det, der gør oplevelsen 100 gange mere interessant fra at blive gjort isoleret. ”
Hvis denne artikel hjalp dig på en eller anden måde, kan du overveje at købe en kaffe til mig :)