Indholdsfortegnelse[Skjule][At vise]
- 1. Hvad er Deep Learning helt præcist?
- 2. Hvad adskiller Deep Learning fra Machine Learning?
- 3. Hvad er din nuværende forståelse af neurale netværk?
- 4. Hvad er en perceptron egentlig?
- 5. Hvad er et dybt neuralt netværk helt præcist?
- 6. Hvad er en flerlagsperceptron (MLP) helt præcist?
- 7. Hvilket formål spiller aktiveringsfunktioner i et neuralt netværk?
- 8. Hvad er gradientnedstigning egentlig?
- 9. Hvad er omkostningsfunktionen helt præcist?
- 10. Hvordan kan dybe netværk udkonkurrere overfladiske?
- 11. Beskriv fremadgående udbredelse.
- 12. Hvad er backpropagation?
- 13. I forbindelse med deep learning, hvordan forstår du gradient klipning?
- 14. Hvad er Softmax- og ReLU-funktionerne?
- 15. Kan en neural netværksmodel trænes med alle vægte sat til 0?
- 16. Hvad adskiller en epoke fra en batch og en iteration?
- 17. Hvad er batchnormalisering og frafald?
- 18. Hvad adskiller Stokastisk Gradient Descent fra Batch Gradient Descent?
- 19. Hvorfor er det afgørende at inkludere ikke-lineariteter i neurale netværk?
- 20. Hvad er en tensor i deep learning?
- 21. Hvordan ville du vælge aktiveringsfunktionen til en dyb læringsmodel?
- 22. Hvad mener du med CNN?
- 23. Hvad er de mange CNN-lag?
- 24. Hvad er virkningerne af over- og undertilpasning, og hvordan kan du undgå dem?
- 25. Hvad er en RNN i deep learning?
- 26. Beskriv Adam Optimizer
- 27. Dybe autoencodere: hvad er det?
- 28. Hvad betyder Tensor i Tensorflow?
- 29. En forklaring af en beregningsgraf
- 30. Generative adversarial networks (GAN'er): hvad er de?
- 31. Hvordan vil du vælge antallet af neuroner og skjulte lag, der skal inkluderes i det neurale netværk, når du designer arkitekturen?
- 32. Hvilken slags neurale netværk anvendes ved dyb forstærkningslæring?
- Konklusion
Deep learning er ikke en helt ny idé. Kunstige neurale netværk tjener som det eneste grundlag for maskinlæringsundergruppen kendt som deep learning.
Dyb læring er en menneskelig hjerneefterligning, ligesom neurale netværk er, da de blev skabt for at efterligne den menneskelige hjerne.
Det har der været i et stykke tid. I disse dage taler alle om det, da vi ikke har nær så meget processorkraft eller data, som vi har nu.
I løbet af de sidste 20 år er deep learning og maskinlæring dukket op som et resultat af den dramatiske stigning i behandlingskapacitet.
For at hjælpe dig med at forberede dig på eventuelle forespørgsler, du kan komme ud for, når du leder efter dit drømmejob, vil dette indlæg guide dig gennem en række dybtgående interviewspørgsmål, lige fra enkle til komplicerede.
1. Hvad er Deep Learning helt præcist?
Hvis du deltager i et dyb læring interview, forstår du utvivlsomt, hvad deep learning er. Intervieweren forventer dog, at du giver et detaljeret svar sammen med en illustration som svar på dette spørgsmål.
For at træne neurale netværk til deep learning skal der bruges betydelige mængder organiseret eller ustruktureret data. For at finde skjulte mønstre og karakteristika udfører den komplicerede procedurer (for eksempel ved at skelne billedet af en kat fra billedet af en hund).
2. Hvad adskiller Deep Learning fra Machine Learning?
Som en gren af kunstig intelligens kendt som machine learning træner vi computere ved hjælp af data og statistiske og algoritmiske teknikker, så de bliver bedre med tiden.
Som et aspekt af machine learning, efterligner deep learning den neurale netværksarkitektur set i den menneskelige hjerne.
3. Hvad er din nuværende forståelse af neurale netværk?
Kunstige systemer kendt som neurale netværk ligner de organiske neurale netværk, der findes i den menneskelige krop meget tæt.
Ved at bruge en teknik, der ligner, hvordan menneskelige hjerne funktioner, er et neuralt netværk en samling af algoritmer, der har til formål at identificere underliggende korrelationer i et stykke data.
Disse systemer tilegner sig opgavespecifik viden ved at udsætte sig selv for en række datasæt og eksempler, snarere end ved at følge nogen opgavespecifikke regler.
Ideen er, at i stedet for at have en forudprogrammeret forståelse af disse datasæt, lærer systemet at skelne karakteristika fra de data, det fødes.
De tre netværkslag, der oftest bruges i neurale netværk, er som følger:
- Input lag
- Skjult lag
- Outputlag
4. Hvad er en perceptron egentlig?
Den biologiske neuron, der findes i den menneskelige hjerne, kan sammenlignes med en perceptron. Flere input modtages af perceptronen, som derefter udfører adskillige transformationer og funktioner og producerer et output.
En lineær model kaldet en perceptron anvendes i binær klassifikation. Det simulerer en neuron med en række input, hver med en forskellig vægt.
Neuronet beregner en funktion ved hjælp af disse vægtede input og udsender resultaterne.
5. Hvad er et dybt neuralt netværk helt præcist?
Et dybt neuralt netværk er et kunstigt neuralt netværk (ANN) med flere lag mellem input- og outputlagene (DNN).
Dybe neurale netværk er dyb arkitektur neurale netværk. Ordet "dyb" refererer til funktioner med mange niveauer og enheder i et enkelt lag. Mere nøjagtige modeller kan skabes ved at tilføje flere og større lag for at fange større niveauer af mønstre.
6. Hvad er en flerlagsperceptron (MLP) helt præcist?
Input, skjulte og outputlag er til stede i MLP'er, ligesom i neurale netværk. Den er bygget på samme måde som en enkeltlags perceptron med et eller flere skjulte lag.
Det binære output af en enkeltlagsperceptron kan kun kategorisere lineære separerbare klasser (0,1), hvorimod MLP kan klassificere ikke-lineære klasser.
7. Hvilket formål spiller aktiveringsfunktioner i et neuralt netværk?
En aktiveringsfunktion bestemmer, om en neuron skal aktiveres på det mest fundamentale niveau. Enhver aktiveringsfunktion kan acceptere den vægtede sum af inputs plus bias som input. Aktiveringsfunktionerne omfatter step-funktionen, Sigmoid, ReLU, Tanh og Softmax.
8. Hvad er gradientnedstigning egentlig?
Den bedste tilgang til at minimere en omkostningsfunktion eller en fejl er gradientnedstigning. At finde en funktions lokalt-globale minima er målet. Dette specificerer den sti, som modellen skal følge for at minimere fejl.
9. Hvad er omkostningsfunktionen helt præcist?
Omkostningsfunktionen er en metrik til at vurdere, hvor godt din model klarer sig; det er nogle gange kendt som "tab" eller "fejl". Under backpropagation bruges den til at beregne outputlagets fejl.
Vi udnytter denne unøjagtighed til at fremme det neurale netværks træningsprocesser ved at skubbe det tilbage gennem det neurale netværk.
10. Hvordan kan dybe netværk udkonkurrere overfladiske?
Skjulte lag føjes til neurale netværk ud over input- og outputlag. Mellem input- og outputlagene anvender lavvandede neurale netværk et enkelt skjult lag, mens dybe neurale netværk bruger adskillige niveauer.
Et lavvandet netværk kræver flere parametre for at kunne passe ind i enhver funktion. Dybe netværk kan passe bedre til funktioner selv med et lille antal parametre, da de omfatter flere lag.
Dybe netværk foretrækkes nu på grund af deres alsidighed til at arbejde med enhver form for datamodellering, hvad enten det er til tale- eller billedgenkendelse.
11. Beskriv fremadgående udbredelse.
Input transmitteres sammen med vægte til det nedgravede lag i en proces kendt som fremadrettet udbredelse.
Aktiveringsfunktionens output beregnes i hvert eneste nedgravede lag, før behandlingen kan gå videre til det følgende lag.
Processen starter ved inputlaget og fortsætter til det ultimative outputlag, således navnet fremadrettet udbredelse.
12. Hvad er backpropagation?
Når vægte og skævheder justeres i det neurale netværk, bruges backpropagation til at reducere omkostningsfunktionen ved først at observere, hvordan værdien ændres.
At forstå gradienten ved hvert skjult lag gør det nemt at beregne denne ændring.
Processen, kendt som backpropagation, starter ved outputlaget og bevæger sig tilbage til inputlagene.
13. I forbindelse med deep learning, hvordan forstår du gradient klipning?
Gradient Clipping er en metode til at løse problemet med eksploderende gradienter, der opstår under backpropagation (en tilstand, hvor betydelige ukorrekte gradienter akkumuleres over tid, hvilket fører til betydelige justeringer af neurale netværks modelvægte under træning).
Eksploderende gradienter er et problem, der opstår, når gradienterne bliver for store under træning, hvilket gør modellen ustabil. Hvis gradienten har krydset det forventede interval, skubbes gradientværdierne element-for-element til en foruddefineret minimum- eller maksimumværdi.
Gradientklipning forbedrer den numeriske stabilitet af et neuralt netværk under træning, men det har minimal indvirkning på modellens ydeevne.
14. Hvad er Softmax- og ReLU-funktionerne?
En aktiveringsfunktion kaldet Softmax producerer et output i området mellem 0 og 1. Hvert output er opdelt, så summen af alle udgangene er én. Til outputlag anvendes ofte Softmax.
Rectified Linear Unit, nogle gange kendt som ReLU, er den mest anvendte aktiveringsfunktion. Hvis X er positiv, udsender den X, ellers udsender den nuller. ReLU påføres jævnligt på nedgravede lag.
15. Kan en neural netværksmodel trænes med alle vægte sat til 0?
Det neurale netværk vil aldrig lære at fuldføre et givent job, og det er derfor ikke muligt at træne en model ved at initialisere alle vægtene til 0.
Derivaterne vil forblive de samme for hver vægt i W [1], hvis alle vægte er initialiseret til nul, hvilket vil resultere i, at neuroner lærer de samme egenskaber iterativt.
Ikke blot initialisering af vægtene til 0, men til enhver form for konstant vil sandsynligvis resultere i et underparret resultat.
16. Hvad adskiller en epoke fra en batch og en iteration?
Forskellige former for behandlingsdatasæt og gradientnedstigningsteknikker inkluderer batch, iteration og epoke. Epoch involverer én gang gennem et neuralt netværk med et komplet datasæt, både fremad og bagud.
For at give pålidelige resultater videregives datasættet ofte flere gange, da det er for stort til at bestå i et enkelt forsøg.
Denne praksis med gentagne gange at køre en lille mængde data gennem et neuralt netværk kaldes iteration. For at sikre, at datasættet med succes krydser de neurale netværk, kan det opdeles i et antal batches eller undersæt, som er kendt som batching.
Afhængigt af dataindsamlingsstørrelsen er alle tre metoder – epoke, iteration og batchstørrelse – i det væsentlige måder at bruge gradient descent algoritme.
17. Hvad er batchnormalisering og frafald?
Dropout forhindrer dataovertilpasning ved tilfældigt at fjerne både synlige og skjulte netværksenheder (typisk taber 20 procent af noderne). Det fordobler antallet af iterationer, der kræves for at få netværket til at konvergere.
Ved at normalisere inputs i hvert lag til at have en gennemsnitlig outputaktivering på nul og en standardafvigelse på én, er batchnormalisering en strategi til at forbedre ydeevnen og stabiliteten af neurale netværk.
18. Hvad adskiller Stokastisk Gradient Descent fra Batch Gradient Descent?
Batch Gradient Descent:
- Det komplette datasæt bruges til at konstruere gradienten for batchgradienten.
- Den enorme mængde data og de langsomt opdaterende vægte gør konvergens vanskelig.
Stokastisk gradientnedstigning:
- Den stokastiske gradient bruger en enkelt prøve til at beregne gradienten.
- På grund af de hyppigere vægtændringer konvergerer den væsentligt hurtigere end batchgradienten.
19. Hvorfor er det afgørende at inkludere ikke-lineariteter i neurale netværk?
Uanset hvor mange lag der er, vil et neuralt netværk opføre sig som en perceptron i fravær af ikke-lineariteter, hvilket gør output lineært afhængigt af inputtet.
For at sige det på en anden måde svarer et neuralt netværk med n lag og m skjulte enheder og lineære aktiveringsfunktioner til et lineært neuralt netværk uden skjulte lag og med evnen til udelukkende at detektere lineære adskillelsesgrænser.
Uden ikke-lineariteter er et neuralt netværk ude af stand til at løse komplicerede problemer og nøjagtigt kategorisere inputtet.
20. Hvad er en tensor i deep learning?
Et multidimensionelt array kendt som en tensor tjener som en generalisering af matricer og vektorer. Det er en afgørende datastruktur for dyb læring. N-dimensionelle arrays af grundlæggende datatyper bruges til at repræsentere tensorer.
Hver komponent i tensoren har den samme datatype, og denne datatype er altid kendt. Det er muligt, at kun et stykke af formen - nemlig hvor mange dimensioner der er, og hvor stor hver enkelt er - er kendt.
I situationer, hvor inputs også er fuldstændig kendte, producerer størstedelen af operationer fuldt kendte tensorer; i andre tilfælde kan formen af en tensor kun etableres under grafeksekvering.
21. Hvordan ville du vælge aktiveringsfunktionen til en dyb læringsmodel?
- Det giver mening at anvende en lineær aktiveringsfunktion, hvis det resultat, der skal forudses, er faktisk.
- En Sigmoid-funktion skal bruges, hvis output, der skal forudses, er en binær klassesandsynlighed.
- En Tanh-funktion kan bruges, hvis det projekterede output indeholder to klassifikationer.
- På grund af dens lette beregning er ReLU-funktionen anvendelig i en lang række situationer.
22. Hvad mener du med CNN?
Dybe neurale netværk, der har specialiseret sig i at evaluere visuelle billeder, omfatter konvolutionelle neurale netværk (CNN eller ConvNet). Her, snarere end i neurale netværk, hvor en vektor repræsenterer inputtet, er inputtet et multi-kanaliseret billede.
Flerlagsperceptroner bruges på en særlig måde af CNN'er, der kræver meget lidt forbehandling.
23. Hvad er de mange CNN-lag?
Konvolutionslag: Hovedlaget er foldningslaget, som har en række indlærelige filtre og et modtageligt felt. Dette indledende lag tager inputdataene og udtrækker dets karakteristika.
ReLU Layer: Ved at gøre netværkene ikke-lineære, forvandler dette lag negative pixels til nul.
Poolinglag: Ved at minimere behandling og netværksindstillinger minimerer poolinglaget gradvist repræsentationens rumlige størrelse. Max pooling er den mest anvendte metode til pooling.
24. Hvad er virkningerne af over- og undertilpasning, og hvordan kan du undgå dem?
Dette er kendt som overfitting, når en model lærer forviklingerne og støjen i træningsdataene til det punkt, hvor det påvirker modellens brug af friske data negativt.
Det er mere sandsynligt, at det sker med ikke-lineære modeller, der er mere tilpasningsdygtige, mens man lærer en målfunktion. En model kan trænes til at opdage biler og lastbiler, men den kan muligvis kun identificere køretøjer med en bestemt kasseform.
I betragtning af at den kun blev trænet på én type lastbil, vil den muligvis ikke være i stand til at opdage en ladvogn. På træningsdata fungerer modellen godt, men ikke i den faktiske verden.
En undertilpasset model refererer til en model, der ikke er tilstrækkeligt trænet i data eller i stand til at generalisere til ny information. Dette sker ofte, når en model trænes med utilstrækkelige eller unøjagtige data.
Nøjagtighed og ydeevne kompromitteres begge af undermontering.
Gensampling af dataene for at estimere modelnøjagtighed (K-fold krydsvalidering) og brug af et valideringsdatasæt til at vurdere modellen er to måder at undgå overfitting og underfitting.
25. Hvad er en RNN i deep learning?
Gentagende neurale netværk (RNN'er), en almindelig række af kunstige neurale netværk, går under forkortelsen RNN. De er blandt andet ansat til at behandle genomer, håndskrift, tekst og datasekvenser. Til den nødvendige træning anvender RNN'er backpropagation.
26. Beskriv Adam Optimizer
Adam optimizer, også kendt som adaptivt momentum, er en optimeringsteknik udviklet til at håndtere støjende situationer med sparsomme gradienter.
Ud over at give opdateringer pr. parameter for hurtigere konvergens, forbedrer Adam optimizer konvergens gennem momentum og sikrer, at en model ikke bliver fanget i saddelpunktet.
27. Dybe autoencodere: hvad er det?
Deep autoencoder er det fælles navn for to symmetriske deep belief-netværk, der generelt omfatter fire eller fem lavvandede lag for den kodende halvdel af netværket og et andet sæt på fire eller fem lag for dekodningshalvdelen.
Disse lag danner grundlaget for dybe trosnetværk og er begrænset af Boltzmann-maskiner. Efter hver RBM anvender en dyb autoencoder binære ændringer til datasættet MNIST.
De kan også bruges i andre datasæt, hvor Gaussiske korrigerede transformationer ville være at foretrække frem for RBM.
28. Hvad betyder Tensor i Tensorflow?
Dette er endnu et deep learning-interviewspørgsmål, der regelmæssigt stilles. En tensor er et matematisk begreb, der visualiseres som højere dimensionelle arrays.
Tensorer er disse dataarrays, der leveres som input til det neurale netværk og har forskellige dimensioner og rangeringer.
29. En forklaring af en beregningsgraf
Grundlaget for en TensorFlow er konstruktionen af en beregningsgraf. Hver node fungerer i et netværk af noder, hvor noder står for matematiske operationer og kanter for tensorer.
Det omtales nogle gange som en "DataFlow Graph", da data flyder i form af en graf.
30. Generative adversarial networks (GAN'er): hvad er de?
I Deep Learning udføres generativ modellering ved hjælp af generative kontradiktoriske netværk. Det er et uovervåget job, hvor resultatet frembringes ved at identificere mønstre i inputdataene.
Diskriminatoren bruges til at kategorisere de instanser, der produceres af generatoren, hvorimod generatoren bruges til at producere nye eksempler.
31. Hvordan vil du vælge antallet af neuroner og skjulte lag, der skal inkluderes i det neurale netværk, når du designer arkitekturen?
I betragtning af en forretningsudfordring kan det præcise antal neuroner og skjulte lag, der er nødvendige for at konstruere en neural netværksarkitektur, ikke bestemmes af nogen hårde og hurtige regler.
I et neuralt netværk bør størrelsen af det skjulte lag falde et sted i midten af størrelsen på input- og outputlagene.
Et forspring med at skabe et neuralt netværksdesign kan dog opnås på nogle få enkle metoder:
At starte med nogle grundlæggende systematiske tests for at se, hvad der ville fungere bedst for et bestemt datasæt baseret på tidligere erfaringer med neurale netværk i lignende indstillinger i den virkelige verden, er den bedste måde at tackle enhver unik, forudsigelig modelleringsudfordring i den virkelige verden.
Netværkskonfigurationen kan vælges baseret på ens viden om problemdomænet og tidligere erfaring med neurale netværk. Når man vurderer et neuralt netværks opsætning, er antallet af lag og neuroner, der bruges på relaterede problemer, et godt sted at starte.
Det neurale netværks kompleksitet bør gradvist øges baseret på forventet output og nøjagtighed, begyndende med et simpelt neuralt netværksdesign.
32. Hvilken slags neurale netværk anvendes ved dyb forstærkningslæring?
- I et maskinlæringsparadigme kaldet reinforcement learning, virker modellen for at maksimere ideen om kumulativ belønning, ligesom levende ting gør.
- Spil og selvkørende køretøjer beskrives begge som problemer, der involverer forstærkning læring.
- Skærmen bruges som input, hvis problemet, der skal repræsenteres, er et spil. For at producere et output til de næste faser, tager algoritmen pixels som input og behandler dem via mange lag af foldende neurale netværk.
- Modellens handlingers resultater, enten gunstige eller dårlige, virker som forstærkning.
Konklusion
Deep Learning er steget i popularitet gennem årene med applikationer i stort set alle brancheområder.
Virksomheder leder i stigende grad efter kompetente eksperter, der kan designe modeller, der replikerer menneskelig adfærd ved hjælp af deep learning og maskinlæringstilgange.
Kandidater, der øger deres kompetencer og bevarer deres viden om disse avancerede teknologier, kan finde en bred vifte af arbejdsmuligheder med attraktiv aflønning.
Du kan begynde med interviewene nu, hvor du har et godt greb om, hvordan du reagerer på nogle af de oftest efterspurgte spørgsmål til deep learning interviews. Tag det næste skridt baseret på dine mål.
Besøg Hashdork's Interviewserie at forberede sig til samtaler.
Giv en kommentar