andrewekhalel / MLQuestions

a collection of technical interview questions for machine learning and computer vision engineering positions.

1) Mikä on vinouman ja varianssin välinen vaihtokauppa?

jos mallimme on liian yksinkertainen ja siinä on hyvin vähän parametreja, siinä voi olla suuri vinouma ja pieni varianssi. Toisaalta jos meidän malli on suuri määrä parametreja sitten se tulee olemaan suuri varianssi ja alhainen bias. Meidän on siis löydettävä oikea/hyvä tasapaino ilman, että tietoja on liikaa ja liian vähän.

2) Mikä on gradient descent?

3) selitä yli – ja aliasennus ja miten niitä vastaan taistellaan?

4) Miten mitoituksen kirousta vastaan taistellaan?

  • manuaalinen Ominaisuusvalinta
  • pääkomponenttianalyysi (PCA)
  • moniulotteinen skaalaus
  • Paikallisesti lineaarinen Upotus

5) Mitä on laillistaminen, miksi käytämme sitä ja annamme joitakin esimerkkejä yhteisistä menetelmistä?

tekniikka, joka estää opettelemasta monimutkaisempaa tai joustavampaa mallia, jotta vältettäisiin liikapinnan vaara.Esimerkkejä

  • Ridge (L2-normi)
  • Lasso (L1-normi)
    ridge-regression ilmeinen haitta on mallin tulkittavuus. Se kutistaa vähiten tärkeiden ennustajien kertoimet hyvin lähelle nollaa. Mutta se ei koskaan tee niistä täysin nollia. Toisin sanoen lopullisessa mallissa ovat mukana kaikki ennustajat. Lasson tapauksessa L1-rangaistus kuitenkin pakottaa osan kertoimen estimaateista täsmälleen nollaan, kun viritysparametri λ on riittävän suuri. Siksi lasso-menetelmä suorittaa myös vaihtelevan valinnan ja sen sanotaan tuottavan harvakseltaan malleja.

6) selitä pääkomponenttianalyysi (PCA)?

7) Miksi ReLU on Neuroverkoissa sigmoidia parempi ja useammin käytetty?

Kuvittele verkko, jossa satunnaiset alustavat painot (tai normalisoidut) ja lähes 50% verkosta tuottaa 0 aktivaatiota Relun ominaisuuden vuoksi (lähtö 0 X: n negatiivisille arvoille ). Tämä tarkoittaa sitä, että vähemmän neuronit ampuvat (harva aktivaatio) ja verkko on kevyempi.

8) Kun otetaan huomioon stride S – ja kernel-koot jokaiselle (1-ulotteisen) CNN-kerroksen kerrokselle, luodaan funktio tietyn verkon solmun vastaanottavan kentän laskemiseksi. Tämä on vain selvittää, kuinka monta syöttösolmua todella yhdistää neuroniin CNN: ssä.

9)toteuttavat liitetyt komponentit kuva / matriisi.

10) toteuttavat C++: ssa harvan matriisiluokan.

11) luo funktio, jolla lasketaan integraalikuva, ja luo toinen funktio, jolla saadaan integraalikuvasta aluesummia.

12) Miten poistaisit poikkeamat, kun yrität arvioida tasaista tasoa meluisista näytteistä?

13) Miten CBIR vaikuttaa?

14) miten kuvan rekisteröinti toimii? Harva vs. tiheä optinen virtaus ja niin edelleen.

15) kuvaile, miten konvoluutio toimii. Entä jos tulot ovat harmaasävy vs RGB-kuvia? Mikä määrittää seuraavan kerroksen muodon?

16) Talk me through how you would create a 3D model of an object from imagery and depth sensor measures taken at all angles around the object.

17) toteuttaa sqrt(konst double & x) käyttämättä mitään erityisiä funktioita, vain perusaritmetiikkaa.

18) Käännä bittinauha.

19) toteuta ei-maksimaalinen tukahduttaminen niin tehokkaasti kuin voit.

20) kääntää linkkilistan paikalleen.

21) mikä on tiedon normalisointi ja miksi sitä tarvitaan?

tietojen normalisointi on erittäin tärkeä esikäsittelyvaihe, jota käytetään arvojen uudelleenalentamiseen sopimaan tietylle alueelle paremman lähentymisen varmistamiseksi backropagationin aikana. Yleensä se tarkoittaa sitä, että vähennetään kunkin datapisteen keskiarvo ja jaetaan sen keskihajonnalla. Jos emme tee tätä sitten joitakin ominaisuuksia (ne, joilla on suuri suuruus) painotetaan enemmän kustannusfunktio (jos suuremman suuruusluokan ominaisuus muuttuu 1%, niin että muutos on melko suuri, mutta pienempiä ominaisuuksia se on melko merkityksetön). Tietojen normalisointi tekee kaikki ominaisuudet painotetaan tasapuolisesti.

22) miksi kuviin käytetään kuperuutta pelkän FC-kerroksen sijaan?

ensin convolutions säilyttää, koodaa ja todella käyttää kuvan paikkatietoa. Jos käyttäisimme vain FC-kerroksia, meillä ei olisi suhteellista paikkatietoa. Toiseksi, Convolutional Neural Networks (CNNs) on osittain sisäänrakennettu translation in-varianssi, koska jokainen konvoluution ydin toimii omana suodatin/ominaisuus ilmaisin.

23) mikä tekee CNNs: n käännöksestä invariantin?

kuten edellä on selitetty, jokainen konvoluution ydin toimii omana suodatin – / ominaisuusilmaisimenaan. Joten oletetaan, että teet objektin tunnistus, sillä ei ole väliä missä kuvassa objekti on, koska aiomme soveltaa konvoluutio liukuva ikkuna tavalla koko kuvan anyways.

24) miksi meillä on cnns-luokituksessa max-pooling?

rooliin Tietokonenäössä. Max-pooling CNN avulla voit vähentää laskenta, koska ominaisuuskartat ovat pienempiä, kun pooling. Et menetä liikaa semanttista tietoa, koska otat maksimaalisen aktivoinnin. On myös teoria, että max-pooling edistää hieman antaa CNNs enemmän käännös-varianssi. Katso tämä suuri video Andrew Ng eduista max-pooling.

25) miksi segmentointisignaaleilla on tyypillisesti enkooderi-dekooderi-tyyli / rakenne?

kooderi CNN voidaan periaatteessa ajatella ominaisuus louhinta verkko, kun taas dekooderi käyttää tätä tietoa ennustaa kuvan segmenttien “dekoodaus” ominaisuuksia ja skaalaus alkuperäiseen kuvan kokoon.

26) mikä on Jäännösverkkojen merkitys?

tärkeintä, että jäännösliitännät mahdollistivat suoran ominaisuuksien käytön aiemmista kerroksista. Tämä tekee tiedon levittämisestä verkossa paljon helpompaa. Yksi erittäin mielenkiintoinen paperi tästä osoittaa, miten käyttämällä paikallisia skip yhteydet antaa Verkon tyyppi ensemble multi-path rakenne, antaa ominaisuuksia useita polkuja levittää koko verkkoon.

27) mikä on erän normalisointi ja miksi se toimii?

syvien neuroverkkojen harjoittelua hankaloittaa se, että jokaisen kerroksen tulojakauma muuttuu harjoittelun aikana edellisten kerrosten parametrien muuttuessa. Ideana on sitten normalisoida kunkin kerroksen tulot siten, että niillä on keskimääräinen lähtöaktivaatio nolla ja keskihajonta yksi. Tämä tehdään kunkin yksittäisen mini-erän kunkin kerroksen eli laskea keskiarvo ja varianssi, että mini-erän yksin, sitten normalisoida. Tämä on analogista siihen, miten syötteet verkkoihin standardoidaan. Miten tämä auttaa? Tiedämme, että verkon syötteiden normalisointi auttaa sitä oppimaan. Verkko on kuitenkin vain kerroksien sarja, jossa yhden kerroksen ulostulo muuttuu seuraavan syötöksi. Se tarkoittaa, että voimme ajatella minkä tahansa kerroksen neuroverkossa pienemmän seuraavan verkon ensimmäisenä kerroksena. Ajatellaan sarjana neuroverkkoja, jotka syöttävät toisiinsa, normalisoimme yhden kerroksen tuotoksen ennen aktivointifunktion soveltamista ja syöttävät sen sitten seuraavaan kerrokseen (aliverkko).

28) miksi käyttäisit monia pieniä convolutionaalisia ytimiä, kuten 3×3, muutaman suuren sijasta?

tämä on hyvin selitetty Vggnetin paperissa. On 2 syytä: ensinnäkin, voit käyttää useita pienempiä ytimiä muutaman suuren sijasta saada saman vastaanottavaisen kentän ja kaapata enemmän tilaa yhteydessä, mutta pienempiä ytimiä käytät vähemmän parametreja ja laskelmia. Toiseksi, koska pienemmät ytimet käytät enemmän suodattimia, voit käyttää enemmän aktivointitoimintoja ja siten on enemmän syrjivä kartoitus toiminto on oppinut oman CNN.

29) miksi tarvitsemme validointijoukon ja testijoukon? Mitä eroa niillä on?

kun koulutamme mallia, jaamme käytettävissä olevat tiedot kolmeen erilliseen sarjaan:

  • harjoitusaineistoa käytetään mallin parametrien sovittamiseen. Harjoittelusetillä saavutettava tarkkuus ei kuitenkaan ole luotettava ennustamaan, onko malli tarkka uusissa otoksissa.
  • validointitietokantaa käytetään mittaamaan, kuinka hyvin malli pärjää esimerkeissä, jotka eivät kuuluneet koulutustietokantaan. Validointitietojen perusteella laskettuja mittareita voidaan käyttää mallin hyperparametrien virittämiseen. Joka kerta, kun arvioimme validointitietoja ja teemme niiden perusteella päätöksiä, vuotamme validointitietoja malliimme. Mitä enemmän arvioita, sitä enemmän tietoa vuotaa. Joten voimme päätyä ylisuuriin validointitietoihin, ja jälleen kerran validointipisteet eivät ole luotettavia ennustamaan mallin käyttäytymistä reaalimaailmassa.
  • testiaineistoa käytetään mittaamaan, kuinka hyvin malli pärjää aiemmin näkemättömillä esimerkeillä. Sitä tulee käyttää vasta, kun olemme virittäneet parametrit validointijoukon avulla.

joten jos jätämme testijoukon pois ja käytämme vain validointijoukkoa, validointipisteet eivät ole hyvä arvio mallin yleistymisestä.

30) mikä on ositettu ristivalvonta ja milloin sitä pitäisi käyttää?

Ristivalidointi on tekniikka, jolla tiedot jaetaan koulutus-ja validointiryhmien kesken. Tyypillisessä ristiintarkistuksessa tämä jako tehdään satunnaisesti. Ositetussa ristivalidoinnissa jako kuitenkin säilyttää luokkien suhdeluvut sekä koulutus-että validointitietosarjoissa.

esimerkiksi, jos meillä on aineisto, jossa on 10% luokkaa A ja 90% luokkaa B, ja käytämme ositettua ristiintarkistusta, meillä on samat osuudet koulutuksessa ja validoinnissa. Jos taas käytämme yksinkertaista ristiintarkistusta, pahimmassa tapauksessa saatamme huomata, että validointijoukossa ei ole A-luokan näytteitä.

ositettua ristivalidointia voidaan soveltaa seuraavissa skenaarioissa:

  • datajoukossa, jossa on useita luokkia. Mitä pienempi aineisto ja epätasapainoisemmat luokat ovat, sitä tärkeämpää on käyttää ositettua ristiintarkistusta.
  • aineistossa, jossa on tietoja eri jakaumista. Esimerkiksi autonomiseen ajamiseen tarkoitetussa aineistossa meillä voi olla päivällä ja yöllä otettuja kuvia. Jos emme varmista, että molemmat tyypit ovat läsnä koulutuksessa ja validoinnissa, meillä on yleistymisongelmia.

31) miksi yhtyeillä on tyypillisesti korkeammat pisteet kuin yksittäisillä malleilla?

kokonaisuus on useiden mallien yhdistelmä yhden ennusteen luomiseksi. Avainajatuksena parempien ennusteiden tekemiseen on, että malleissa pitäisi tehdä erilaisia virheitä. Näin yhden mallin virheet kompensoidaan muiden mallien oikeilla arvauksilla ja näin kokonaisuuden pisteet ovat korkeampia.

kokonaisuuden luomiseen tarvitaan monipuolisia malleja. Monimuotoisuus voidaan saavuttaa:

  • käyttämällä erilaisia ML-algoritmeja. Voit esimerkiksi yhdistää logistisen regression, k-lähimmät naapurit ja päätöspuut.
  • tietojen eri osajoukkojen käyttäminen koulutukseen. Tätä kutsutaan pussittamiseksi.
  • antaa jokaiselle treenisarjan näytteelle eri painon. Jos tämä tehdään iteratiivisesti, painotetaan näytteet kokonaisuuden virheiden mukaan, sitä kutsutaan tehostamiseksi.Monet data science-kilpailujen voittajaratkaisut ovat kokonaisuuksia. Tosielämän koneoppimisprojekteissa insinöörien on kuitenkin löydettävä tasapaino suoritusajan ja tarkkuuden välillä.

32) mikä on epätasapainoinen aineisto? Voitko luetella joitakin tapoja käsitellä sitä?

epätasapainoinen tietojoukko on sellainen, jolla on eri osuudet kohdeluokista. Esimerkiksi aineisto, jossa on lääketieteellisiä kuvia, joissa meidän on havaittava jokin sairaus, sisältää tyypillisesti paljon enemmän negatiivisia näytteitä kuin positiivisia näytteitä—esimerkiksi 98% kuvista on ilman sairautta ja 2% kuvista on sairauden kanssa.

on olemassa erilaisia vaihtoehtoja epätasapainoisten tietojoukkojen käsittelemiseksi:

  • Ylinäytteenotto tai alinäyte. Sen sijaan, että otettaisiin tasajakauma koulutusaineistosta, Voimme käyttää muita jakaumia, jotta malli näkee tasapainoisemman aineiston.
  • tietojen lisäys. Voimme lisätä dataa harvinaisempiin kategorioihin muokkaamalla olemassa olevaa dataa hallitusti. Esimerkkiaineistossa kuvia voisi kääntää sairastavilla tai lisätä kohinaa kuvien kopioihin siten, että sairaus jää näkyviin.
  • käyttäen asianmukaisia mittareita. Esimerkkiaineistossa, jos meillä olisi malli, joka teki aina negatiivisia ennusteita, se saavuttaisi 98 prosentin tarkkuuden. On muitakin mittareita, kuten tarkkuus, takaisinkutsu ja F-pisteet, jotka kuvaavat mallin tarkkuutta paremmin käytettäessä epätasapainoista tietojoukkoa.

33) Osaatko selittää erot valvotun, valvomattoman ja vahvistavan oppimisen välillä?

ohjatussa oppimisessa koulutamme mallin, jolla opimme syöttötiedon ja lähtötiedon välisen suhteen. Meidän täytyy olla merkitty data, jotta voimme tehdä ohjattua oppimista.

valvomattoman oppimisen yhteydessä meillä on vain merkitsemätöntä tietoa. Malli oppii datan esittämisen. Valvomatonta oppimista käytetään usein mallin parametrien alustamiseen, kun meillä on paljon merkitsemätöntä tietoa ja pieni murto-osa merkittyä dataa. Ensin koulutamme valvomattoman mallin ja sen jälkeen käytämme mallin painoja valvotun mallin kouluttamiseen.

vahvistusoppimisessa mallilla on jonkin verran syöttötietoja ja palkkio riippuen mallin tuotoksesta. Malli oppii politiikkaa, joka maksimoi palkkion. Tehosteoppimista on sovellettu onnistuneesti strategisiin peleihin, kuten Go: hon ja jopa klassisiin Atari-videopeleihin.

34) mikä on tietojen lisäys? Voitko antaa joitakin esimerkkejä?

tiedon lisäys on tekniikka, jossa uutta dataa syntetisoidaan muokkaamalla olemassa olevaa dataa siten, että kohdetta ei muuteta tai sitä muutetaan tunnetulla tavalla.

Tietokonenäkö on yksi niistä aloista, joilla tiedon lisääminen on erittäin hyödyllistä. On monia muutoksia, joita voimme tehdä kuvia:

  • kokoa
  • vaaka-tai pystysuuntainen flip
  • Kierrä
  • lisää kohina
  • Deform
  • muokkaa colorsEach-ongelma tarvitsee räätälöidyn tiedonsuurennusputken. Esimerkiksi OCR: ssä volttien tekeminen muuttaa tekstiä eikä siitä ole hyötyä; kuitenkin muutokset ja pienet kierrokset voivat auttaa.

35) mikä on Turingin testi?

Turingin testi on menetelmä, jolla testataan koneen kykyä vastata ihmisen tason älykkyyttä. Kone haastaa ihmisen älykkyyden, että kun se läpäisee testin, sitä pidetään älykkäänä. Konetta voitaisiin kuitenkin pitää älykkäänä, jos se ei tuntisi ihmisiä riittävästi matkiakseen ihmistä.

36) mitä on tarkkuus?

tarkkuus (kutsutaan myös positiiviseksi ennustearvoksi) on relevanttien instanssien murto-osa haettujen instanssien joukossa
Precision = true positive / (true positive + false positive)

37) mikä on Recall?

takaisinkutsu (tunnetaan myös nimellä herkkyys) on se murto-osa relevanteista tapauksista, jotka on haettu relevanttien tapausten kokonaismäärästä.Recall = true positive / (true positive + false negative)

38) Määrittele F1-pisteet.

se on tarkkuuden ja takaisinkutsun painotettu keskiarvo. Siinä otetaan huomioon sekä väärä positiivinen että väärä negatiivinen. Sitä käytetään mittaamaan mallin suorituskykyä.
F1-Score = 2 * (precision * recall) / (precision + recall)

39) mikä on kustannusfunktio?

Kustannusfunktio on Skalaarifunktio, joka määrittää neuroverkon virhekertoimen. Alentaa kustannuksia toiminto paremmin neuroverkko. Esim: mnist – tietojoukko kuvan luokittelemiseksi, syötekuva on numero 2 ja neuroverkko ennustaa virheellisesti sen olevan 3

40) listaa erilaisia aktivaatiosoluja tai funktioita.

  • Lineaarineuroni
  • Binäärikynnysneuroni
  • Stokastinen Binäärineuroni
  • sigmoidin neuroni
  • Tanhin funktio
  • korjattu Lineaarinen yksikkö (ReLU)

41) Määrittele Oppimisnopeus.

Oppimistahti on hyper-parametri, joka määrää, kuinka paljon säädämme verkostomme painoja menetysgradientin mukaisesti.

42) mikä on Momentum (w.r.t nn optimointi)?

Momentum antaa optimointialgoritmin muistaa viimeisen vaiheensa ja lisää siitä jonkin osan nykyiseen vaiheeseen. Näin, vaikka algoritmi on jumissa tasainen alue, tai Pieni Paikallinen minimi, se voi päästä ulos ja jatkaa kohti todellista minimi.

43) mikä on Erägradientin laskeutumisen ja stokastisen gradientin laskeutumisen ero?

Erägradientti descent laskee gradientin käyttäen koko aineistoa. Tämä on suuri kupera, tai suhteellisen sileä virhe manifolds. Tässä tapauksessa siirrymme jokseenkin suoraan kohti optimaalista ratkaisua, joko paikallista tai maailmanlaajuista. Lisäksi erän kaltevuus laskeutuminen, koska hehkutettu Oppimisnopeus, lopulta löytää minimi sijaitsee sen altaan vetovoima.

Stokastinen gradientti descent (SGD) laskee gradientin käyttämällä yhtä näytettä. SGD toimii hyvin (ei hyvin, oletan, mutta parempi kuin erän kaltevuus laskeutuminen) virhe manifolds että on paljon paikallisia maxima/minimit. Tässä tapauksessa jonkin verran äänekkäämpi gradientti, joka lasketaan vähentämällä näytteiden määrää, pyrkii nykimään mallin paikallisista minimeistä alueelle, joka on toivottavasti optimaalisempi.

44) Epokki vs erä vs iteraatio.

Epoch: yksi eteen-ja yksi taaksepäin-syöttö kaikista harjoitusesimerkeistä
erä: esimerkkejä käsitellään yhdessä yhdellä syötöllä (eteen-ja taaksepäin)
iteraatio: harjoitusesimerkkien lukumäärä / erän koko

45) mikä on katoava gradientti?

kun lisäämme yhä enemmän piilokerroksia, selän etenemisestä on yhä vähemmän hyötyä tiedon välittämisessä alempiin kerroksiin. Kun tieto siirtyy takaisin, kaltevuudet alkavat kadota ja muuttua pieniksi suhteessa verkkojen painoihin.

46) Mitä ovat keskeyttäjät?

Dropout on yksinkertainen tapa estää hermoverkon ylilatautuminen. Se on joidenkin neuroverkon yksiköiden pudottamista. Se muistuttaa luonnollista lisääntymisprosessia, jossa luonto tuottaa jälkeläisiä yhdistelemällä erillisiä geenejä (pudottamalla pois muita) sen sijaan, että vahvistaisi niiden yhteissovittelua.

47) määritellään LSTM.

lyhytkestoinen muisti-on nimenomaisesti suunniteltu käsittelemään pitkäaikaisriippuvuusongelmaa pitämällä yllä tilaa, mitä pitää muistaa ja mitä unohtaa.

48) luetellaan LSTM: n keskeiset osat.

  • Portit (unohtaa, muisti, päivitys & Lue)
  • tanh (x) (arvot välillä -1-1)
  • Sigmoid (x) (arvot välillä 0 – 1)

49) Luettele RNN: n muunnokset.

  • LSTM: pitkä lyhytkestoinen muisti
  • GRU: aidattu toistuva yksikkö
  • päästä päähän Verkko
  • Muistiverkko

50) mikä on Autoencoder, nimeä muutamia sovelluksia.

automaattista kooderia käytetään periaatteessa tietyn datan pakatun muodon oppimiseen. Harvoja käyttökohteita ovat

  • tiedon denointi
  • Dimensionalismin vähentäminen
  • Kuvan rekonstruktio
  • kuvan väritys

51) mitkä ovat osat GAN?

  • Generator
  • Discriminator

52) Mitä eroa on syöttämisellä ja pussittamisella?

Boosting ja bagging ovat samankaltaisia, koska ne ovat molemmat ryhmittelytekniikoita, joissa joukko heikkoja oppijoita (luokittajia/regressoreita, jotka ovat hädin tuskin parempia kuin arvailut) yhdistää (keskiarvon tai maksimiäänimäärän avulla) luodakseen vahvan oppijan, joka pystyy tekemään tarkkoja ennusteita. Pussitus tarkoittaa, että otat bootstrap näytteitä (korvaamalla) tietosi ja jokainen näyte kouluttaa (mahdollisesti) heikko oppija. Boosting, toisaalta, käyttää kaikkia tietoja kouluttaa jokaisen oppijan, mutta tapaukset, jotka olivat väärin luokitellut edellisen oppijat annetaan enemmän painoa, jotta myöhemmät oppijat antaa enemmän keskittyä niitä koulutuksen aikana.

53) selitä, miten ROC-käyrä toimii.

ROC-käyrä on graafinen esitys todellisten positiivisten korkojen ja väärien positiivisten korkojen välisestä kontrastista eri raja-arvoilla. Sitä käytetään usein välityspalvelimena mallin herkkyyden (true positives) vs putoamisen tai todennäköisyyden välillä, joka laukaisee väärän hälytyksen (false positives).

54) Mitä eroa on tyypin I ja tyypin II virheellä?

tyypin I virhe on väärä positiivinen, kun taas tyypin II virhe on väärä negatiivinen. Lyhyesti sanottuna, tyyppi I virhe tarkoittaa väittämällä jotain on tapahtunut, kun se ei ole, kun taas tyypin II virhe tarkoittaa, että väität mitään tapahtuu, kun itse asiassa jotain on.Fiksu tapa ajatella tätä on ajatella tyypin I virhe kertoa miehelle hän on raskaana, kun taas tyypin II virhe tarkoittaa kerrot raskaana olevalle naiselle hän ei kanna vauvaa.

55) Mitä eroa on generatiivisella ja syrjivällä mallilla?

generatiivinen malli oppii tietoluokat, kun taas erotteleva malli oppii yksinkertaisesti erottamaan eri tietoryhmät toisistaan. Syrjivät mallit päihittävät yleensä yleistävät mallit luokittelutehtävissä.

kannanotot

kannanotot saavat eniten kannatusta.

  1. haarukkaa arkistoon.
  2. toimita kysymyksesi tai vastauksesi.
  3. Avovetopyyntö.

Vastaa

Sähköpostiosoitettasi ei julkaista.