andrewekhalel / MLQuestions

en samling av tekniske intervjuspørsmål for maskinlæring og computer vision engineering stillinger.

1) Hva er forskjellen mellom bias og varians?

hvis vår modell er for enkel og har svært få parametere, kan den ha høy bias og lav varians. På den annen side hvis vår modell har stort antall parametere, vil den ha høy varians og lav bias. Så vi må finne riktig / god balanse uten overfitting og underfitting av dataene.

2) hva er gradient nedstigning?

3) Forklar over-og under-montering og hvordan å bekjempe dem?

4) Hvordan bekjemper du forbannelsen av dimensjonalitet?

  • Manuell Funksjonsvalg
  • Hovedkomponentanalyse (PCA)
  • Flerdimensjonal Skalering
  • lokalt lineær innebygging

5) hva er regularisering, hvorfor bruker vi det, og gir noen eksempler på vanlige metoder?

en teknikk som fraråder å lære en mer kompleks eller fleksibel modell, for å unngå risiko for overfitting.Eksempler

  • Ridge (L2 norm)
  • Lasso (L1 norm)
    den åpenbare ulempen med ridge regresjon, er modell tolkbarhet. Det vil krympe koeffisientene for minst viktige prediktorer, svært nær null. Men det vil aldri gjøre dem nøyaktig null. Med andre ord vil den endelige modellen inkludere alle prediktorer. I tilfelle av lasso har l1-straffen imidlertid effekten av å tvinge noen av koeffisientestimatene til å være nøyaktig lik null når tuningsparameteren λ er tilstrekkelig stor. Derfor utfører lasso-metoden også variabelt utvalg og sies å gi sparsomme modeller.

6) Forklar Hovedkomponentanalyse (PCA)?

7) Hvorfor Brukes ReLU bedre og oftere Enn Sigmoid i Nevrale Nettverk?

Tenk deg et nettverk med tilfeldige initialiserte vekter ( eller normalisert ) og nesten 50% av nettverket gir 0 aktivering på Grunn Av egenskapen Til ReLu (utgang 0 for negative verdier av x ). Dette betyr at færre nevroner skyter ( sparsom aktivering) og nettverket er lettere.

8) Gitt skritt s og kjernestørrelser for hvert lag av en (1-dimensjonal) CNN, opprett en funksjon for å beregne mottakelig felt av en bestemt node i nettverket. Dette er bare å finne hvor mange inngangsnoder som faktisk kobler seg til en neuron i EN CNN.

9) Implementer tilkoblede komponenter på et bilde / matrise.

10) Implementer en sparsom matriseklasse I C++.

11) Opprett en funksjon for å beregne et integrert bilde, og opprett en annen funksjon for å få områdesummer fra det integrerte bildet.

12) Hvordan vil du fjerne uteliggere når du prøver å estimere et flatt plan fra støyende prøver?

13) HVORDAN FUNGERER CBIR?

14) hvordan fungerer bilderegistrering? Sparsom vs tett optisk strømning og så videre.

15) Beskriv hvordan konvolusjon fungerer. Hva om inngangene dine er gråtoner vs RGB-bilder? Hva bestemmer formen på neste lag?

16) Snakk meg gjennom hvordan du vil lage EN 3d-modell av et objekt fra bilder og dybdesensormålinger tatt i alle vinkler rundt objektet.

17) Implementer SQRT (const double & x) uten å bruke noen spesielle funksjoner, bare grunnleggende aritmetikk.

18) Reverser en bitstring.

19) Implementer ikke maksimal undertrykkelse så effektivt som mulig.

20) Reverser en koblet liste på plass.

21) hva er data normalisering og hvorfor trenger vi det?

data normalisering er svært viktig forbehandling trinn, brukes til å skalere verdier for å passe inn i et bestemt område for å sikre bedre konvergens under backpropagation. Generelt koker det ned for å trekke gjennomsnittet av hvert datapunkt og dividere med standardavviket. Hvis vi ikke gjør dette, vil noen av funksjonene (de med høy størrelse) bli vektet mer i kostnadsfunksjonen (hvis en høyere størrelsesfunksjon endres med 1%, så er endringen ganske stor, men for mindre funksjoner er det ganske ubetydelig). Data normalisering gjør alle funksjoner vektet likt.

22) hvorfor bruker vi konvolutter for bilder i stedet for BARE FC-lag?

for Det Første beholder konvolutter, koder og bruker faktisk romlig informasjon fra bildet. Hvis VI bare brukte FC-lag, ville vi ikke ha noen relativ romlig informasjon. For det andre Har Convolutional Neural Networks (CNNs) en delvis innebygd oversettelse i varians, siden hver convolution kernel fungerer som sin egen filter/funksjonsdetektor.

23) Hva gjør cnns oversettelse invariant?

som forklart ovenfor, fungerer hver convolution kernel som sin egen filter / funksjonsdetektor. Så la oss si at du gjør objektdeteksjon, det spiller ingen rolle hvor i bildet objektet er siden vi skal bruke konvolusjonen i en glidende vindusmote over hele bildet uansett.

24) Hvorfor har vi max-pooling i klassifisering CNNs?

for en rolle I Datasyn. Max-pooling i EN CNN kan du redusere beregning siden funksjonen kartene er mindre etter pooling. Du mister ikke for mye semantisk informasjon siden du tar maksimal aktivering. Det er også en teori om at max-pooling bidrar litt til å gi CNNs mer oversettelse i-varians. Sjekk ut denne flotte videoen Fra Andrew Ng om fordelene med max-pooling.

25) Hvorfor har segmentering CNNs vanligvis en encoder-dekoder stil / struktur?

koderen CNN kan i utgangspunktet betraktes som et funksjonsutvinningsnettverk, mens dekoderen bruker denne informasjonen til å forutsi bildesegmentene ved å “dekode” funksjonene og oppskalere til den opprinnelige bildestørrelsen.

26) hva er Betydningen Av Gjenværende Nettverk?

det viktigste som gjenværende tilkoblinger gjorde var å tillate direkte funksjonstilgang fra tidligere lag. Dette gjør informasjonsutbredelse gjennom hele nettverket mye enklere. Et veldig interessant papir om dette viser hvordan bruk av lokale skip-tilkoblinger gir nettverket en type ensemble multi-path-struktur, noe som gir flere baner for å forplante seg i hele nettverket.

27) Hva er batch normalisering og hvorfor fungerer det?

Trening Av Dype Nevrale Nettverk er komplisert av det faktum at fordelingen av hvert lags innganger endres under trening, ettersom parametrene i de forrige lagene endres. Tanken er da å normalisere inngangene til hvert lag på en slik måte at de har en gjennomsnittlig utgangsaktivering av null og standardavvik for en. Dette gjøres for hver enkelt mini-batch på hvert lag, dvs.beregne gjennomsnittet og variansen av den mini-batchen alene, og normaliser deretter. Dette er analogt med hvordan inngangene til nettverk er standardisert. Hvordan hjelper dette? Vi vet at normalisering av inngangene til et nettverk hjelper det å lære. Men et nettverk er bare en serie lag, hvor utgangen av ett lag blir inngangen til det neste. Det betyr at vi kan tenke på et hvilket som helst lag i et nevralt nettverk som det første laget av et mindre etterfølgende nettverk. Tenkt på som en serie nevrale nettverk som mates inn i hverandre, normaliserer vi utgangen av ett lag før du bruker aktiveringsfunksjonen, og deretter mate den inn i følgende lag (undernettverk).

28) hvorfor vil du bruke mange små innviklede kjerner som 3×3 i stedet for noen få store?

dette er veldig godt forklart I VGGNet-papiret. Det er 2 grunner: For Det Første kan du bruke flere mindre kjerner i stedet for få store for å få det samme mottakelige feltet og fange mer romlig kontekst, men med de mindre kjernene bruker du mindre parametere og beregninger. For det andre, fordi med mindre kjerner vil du bruke flere filtre, vil du kunne bruke flere aktiveringsfunksjoner og dermed ha en mer diskriminerende kartleggingsfunksjon som læres av CNN.

29) Hvorfor trenger vi et valideringssett og testsett? Hva er forskjellen mellom dem?

når du trener en modell, deler vi de tilgjengelige dataene i tre separate sett:

  • treningsdatasettet brukes til å tilpasse modellens parametere. Nøyaktigheten vi oppnår på treningssettet er imidlertid ikke pålitelig for å forutsi om modellen vil være nøyaktig på nye prøver.
  • valideringsdatasettet brukes til å måle hvor godt modellen gjør det på eksempler som ikke var en del av treningsdatasettet. Beregningene beregnet på valideringsdataene kan brukes til å justere hyperparametrene til modellen. Men hver gang vi evaluerer valideringsdataene og tar beslutninger basert på disse resultatene, lekker vi informasjon fra valideringsdataene inn i modellen vår. Jo flere evalueringer, jo mer informasjon er lekket. Så vi kan ende opp med å overfitte til valideringsdataene, og igjen vil valideringspoengene ikke være pålitelige for å forutsi modellens oppførsel i den virkelige verden.
  • testdatasettet brukes til å måle hvor godt modellen gjør på tidligere usette eksempler. Den skal bare brukes når vi har innstilt parametrene ved hjelp av valideringssettet.

så hvis vi utelater testsettet og bare bruker et valideringssett, vil valideringsscore ikke være et godt estimat av generaliseringen av modellen.

30) Hva er stratifisert kryssvalidering og når skal vi bruke den?

Kryssvalidering Er en teknikk for å dele data mellom opplærings-og valideringssett. Ved typisk kryssvalidering gjøres denne delingen tilfeldig. Men i stratifisert kryssvalidering bevarer splittelsen forholdet mellom kategoriene på både trenings-og valideringsdatasettene.

for eksempel, hvis vi har et datasett med 10% av kategori a og 90% av kategori B, og vi bruker stratifisert kryssvalidering, vil vi ha samme proporsjoner i trening og validering. Derimot, hvis vi bruker enkel kryssvalidering, kan vi i verste fall oppleve at det ikke er noen prøver av kategori A i valideringssettet.

Stratifisert kryssvalidering kan brukes i følgende scenarier:

  • på et datasett med flere kategorier. Jo mindre datasettet og jo mer ubalanserte kategoriene, desto viktigere blir det å bruke stratifisert kryssvalidering.
  • På et datasett med data av forskjellige distribusjoner. For eksempel, i et datasett for autonom kjøring, kan vi ha bilder tatt om dagen og om natten. Hvis vi ikke sikrer at begge typer er til stede i opplæring og validering, vil vi ha generaliseringsproblemer.

31) Hvorfor har ensembler vanligvis høyere score enn individuelle modeller?

et ensemble er kombinasjonen av flere modeller for å lage en enkelt prediksjon. Nøkkelideen for å gjøre bedre spådommer er at modellene skal gjøre forskjellige feil. På den måten vil feilene i en modell bli kompensert av de riktige gjetningene til de andre modellene, og dermed blir ensemblets poengsum høyere.

vi trenger ulike modeller for å skape et ensemble. Mangfold kan oppnås ved:

  • Bruke FORSKJELLIGE ML algoritmer. Du kan for eksempel kombinere logistisk regresjon, k-nærmeste naboer og beslutningstrær.
  • Bruk av ulike delsett av dataene for opplæring. Dette kalles bagging.
  • Gir en annen vekt til hver av prøvene i treningssettet. Hvis dette gjøres iterativt, vekting prøvene i henhold til feilene i ensemblet, kalles det å øke.Mange vinnende løsninger på datavitenskapskonkurranser er ensembler. Men i virkelige maskinlæringsprosjekter må ingeniører finne en balanse mellom utførelsestid og nøyaktighet.

32) Hva er en ubalansert datasett? Kan du liste noen måter å håndtere det?

et ubalansert datasett er et som har forskjellige proporsjoner av målkategorier. For eksempel vil et datasett med medisinske bilder der vi må oppdage noen sykdom typisk ha mange flere negative prøver enn positive prøver-si 98% av bildene er uten sykdommen og 2% av bildene er med sykdommen.

det finnes ulike alternativer for å håndtere ubalanserte datasett:

  • Oversampling eller undersampling. I stedet for sampling med en jevn fordeling fra treningsdatasettet, kan vi bruke andre distribusjoner slik at modellen ser et mer balansert datasett.
  • dataforstørrelse. Vi kan legge til data i de mindre hyppige kategoriene ved å endre eksisterende data på en kontrollert måte. I eksempeldatasettet kan vi vende bildene med sykdommer, eller legge til støy på kopier av bildene på en slik måte at sykdommen forblir synlig.
  • Ved hjelp av passende beregninger. I eksempeldatasettet, hvis vi hadde en modell som alltid gjorde negative spådommer, ville det oppnå en presisjon på 98%. Det er andre beregninger som presisjon, tilbakekalling og F-score som beskriver nøyaktigheten av modellen bedre når du bruker et ubalansert datasett.

33) Kan du forklare forskjellene mellom overvåket, uovervåket og forsterkende læring?

i veiledet læring trener vi en modell for å lære forholdet mellom inngangsdata og utgangsdata. Vi må ha merket data for å kunne gjøre veiledet læring.

med uovervåket læring har vi bare umerkede data. Modellen lærer en representasjon av dataene. Unsupervised learning brukes ofte til å initialisere parametrene til modellen når vi har mange umerkede data og en liten brøkdel av merkede data. Vi trener først en uovervåket modell, og etter det bruker vi modellens vekter til å trene en overvåket modell.

i forsterkningslæring har modellen noen inngangsdata og en belønning avhengig av modellens utgang. Modellen lærer en politikk som maksimerer belønningen. Forsterkning læring har blitt brukt med hell til strategiske spill Som Go og selv klassiske atari videospill.

34) hva er dataforstørrelse? Kan du gi noen eksempler?

dataforstørrelse er en teknikk for å syntetisere nye data ved å modifisere eksisterende data på en slik måte at målet ikke endres, eller det endres på en kjent måte.

datasyn er et av feltene der dataforstørrelse er svært nyttig. Det er mange modifikasjoner som vi kan gjøre med bilder:

  • Endre Størrelse
  • Horisontal eller vertikal vend
  • Roter
  • Legg til støy
  • Deformere
  • Endre fargerhvert problem trenger en tilpasset dataforstørrelsesrørledning. FOR EKSEMPEL, PÅ OCR, gjør flips vil endre teksten og vil ikke være gunstig; men resizes og små rotasjoner kan hjelpe.

35) Hva Er Turing test?

Turing-testen er en metode for å teste maskinens evne til å matche menneskets intelligens. En maskin brukes til å utfordre den menneskelige intelligensen at når den passerer testen, anses den som intelligent. Likevel kan en maskin bli sett på som intelligent uten tilstrekkelig å vite om folk til å etterligne et menneske.

36) Hva Er Presisjon?

Presisjon (også kalt positiv prediktiv verdi) er brøkdelen av relevante forekomster blant de hentede forekomstene
Presisjon = sann positiv / (sann positiv + falsk positiv)

37) Hva Er Tilbakekalling?

Tilbakekalling (også kjent som sensitivitet) er andelen av relevante forekomster som er hentet over den totale mengden av relevante forekomster.Recall = sann positiv / (sann positiv + falsk negativ)

38) Definer F1-poengsum.

det er det vektede gjennomsnittet av presisjon og tilbakekalling. Den vurderer både falsk positiv og falsk negativ i betraktning. Det brukes til å måle modellens ytelse.
F1-Score = 2 * (presisjon * tilbakekalling) / (presisjon + tilbakekalling)

39) hva er kostnadsfunksjon?

Kostnadsfunksjon Er en skalarfunksjon som Kvantifiserer feilfaktoren til Det Nevrale Nettverket. Senk kostnadene fungere bedre Nevrale nettverk. FOR EKSEMPEL: MNIST datasett for å klassifisere bildet, inngangsbildet er siffer 2 og Det Nevrale nettverket forutser feilaktig at det skal være 3

40) Liste forskjellige aktiveringsneuroner eller funksjoner.

  • Lineær Neuron
  • Binær Terskel Neuron
  • Stokastisk Binær Neuron
  • Sigmoid Neuron
  • Tanh-funksjon
  • Utbedret Lineær Enhet (ReLU)

41) Definer Læringsrate.

Læringsrate er en hyper-parameter som styrer hvor mye vi justerer vektene i nettverket vårt med hensyn til tapsgradienten.

42) Hva Er Momentum (vrt nn optimalisering)?

Momentum lar optimaliseringsalgoritmen huske sitt siste trinn, og legger til en del av det til det nåværende trinnet. På denne måten, selv om algoritmen sitter fast i et flatt område, eller et lite lokalt minimum, kan det komme seg ut og fortsette mot det sanne minimumet.

43) hva er forskjellen mellom Batch Gradient Nedstigning og Stokastisk Gradient Nedstigning?

Batch gradient descent beregner graderingen ved hjelp av hele datasettet. Dette er flott for konvekse, eller relativt glatte feilmanifolder. I dette tilfellet beveger vi oss noe direkte mot en optimal løsning, enten lokal eller global. I tillegg vil batch gradient descent, gitt en annealed learning rate, til slutt finne minimumet som ligger i det attraksjonsbassenget.

Stokastisk gradient descent (SGD) beregner gradienten ved hjelp av en enkelt prøve. SGD fungerer bra (Ikke bra, antar jeg, men bedre enn batch gradient descent) for feilmanifolder som har mange lokale maksima / minima. I dette tilfellet har den noe støyende gradienten beregnet ved hjelp av det reduserte antall prøver en tendens til å rykke modellen ut av lokale minima til en region som forhåpentligvis er mer optimal.

44) Epoke vs Batch vs Iterasjon.

Epoke: ett foroverpass og ett bakoverpass av alle treningseksemplene
Batch: eksempler behandlet sammen i ett pass(fremover og bakover)
Iterasjon: antall treningseksempler / Batchstørrelse

45) hva er forsvinnende gradient?

når vi legger til flere og flere skjulte lag, blir bakutbredelsen mindre og mindre nyttig når vi overfører informasjon til de nedre lagene. I virkeligheten, når informasjonen sendes tilbake, begynner gradientene å forsvinne og bli små i forhold til nettets vekter.

46) Hva er frafall?

Dropout er en enkel måte å forhindre et nevralt nettverk fra overfitting. Det er å slippe ut av noen av enhetene i et nevralt nettverk. Det ligner på den naturlige reproduksjonsprosessen, hvor naturen produserer avkom ved å kombinere forskjellige gener (slippe ut andre) i stedet for å styrke samtilpasningen av dem.

47) Definer LSTM.

Lang Korttidshukommelse – er eksplisitt utformet for å løse det langsiktige avhengighetsproblemet, ved å opprettholde en tilstand hva du skal huske og hva du skal glemme.

48) Oppgi de viktigste komponentene I LSTM.

  • Porter (glem, Minne, oppdatering& Les)
  • tanh(x) (verdier mellom -1 til 1)
  • Sigmoid (x) (verdier mellom 0 til 1)

49) Oppgi varianter AV RNN.

  • Lstm: Lang Korttidshukommelse
  • GRU: Gated Tilbakevendende Enhet
  • Ende Til Ende Nettverk
  • Minne Nettverk

50) Hva Er Autoencoder, nevne noen programmer.

Auto encoder brukes i utgangspunktet til å lære en komprimert form for gitt data. Få applikasjoner inkluderer

  • data denoising
  • Dimensjonsreduksjon
  • bilderekonstruksjon
  • bildefarging

51) Hva er komponentene I GAN?

  • Generator
  • Diskriminator

52) hva er forskjellen mellom boosting og bagging?

Boosting og bagging er like, ved at de begge er ensembleteknikker, hvor en rekke svake elever (klassifiserere/regressorer som knapt er bedre enn å gjette) kombinerer (gjennom gjennomsnitt eller maks stemme) for å skape en sterk elev som kan gjøre nøyaktige spådommer. Bagging betyr at du tar bootstrap-prøver (med erstatning) av datasettet ditt, og hver prøve trener en (potensielt) svak lærer. Boosting, derimot, bruker alle data til å trene hver elev, men tilfeller som ble feilklassifisert av de tidligere elevene, blir gitt mer vekt, slik at etterfølgende elever gir mer fokus til dem under trening.

53) Forklar hvordan EN ROC-kurve fungerer.

ROC-kurven er en grafisk fremstilling av kontrasten mellom sanne positive rater og den falske positive raten ved ulike terskler. Det brukes ofte som en proxy for avveiningen mellom følsomheten til modellen (sanne positiver) vs fall-out eller sannsynligheten for at det vil utløse en falsk alarm (falske positiver).

54) hva er forskjellen Mellom type I-og TYPE II-feil?

Type i-feil er en falsk positiv, Mens TYPE II-feil er en falsk negativ. Kort sagt, Type i-feil betyr å hevde at noe har skjedd når Det ikke har det, Mens TYPE II-feil betyr at Du hevder at ingenting skjer når det faktisk er noe.En smart måte å tenke på Dette er Å tenke På Type i-feil som å fortelle en mann at han er gravid, Mens TYPE II-feil betyr at Du forteller en gravid kvinne at hun ikke bærer en baby.

55) Hva er forskjellen mellom en generativ og diskriminerende modell?

en generativ modell vil lære kategorier av data mens en diskriminerende modell vil bare lære skillet mellom ulike kategorier av data. Diskriminerende modeller vil generelt overgå generative modeller på klassifiseringsoppgaver.

Bidrag

Bidrag er hjertelig velkommen.

  1. Gaffel depotet.
  2. Forplikte dine spørsmål eller svar.
  3. Åpne trekkforespørsel.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.