andrewekhalel / MLQuestions

sbírka technické rozhovor otázky strojového učení a počítačového vidění inženýrské pozice.

1) Jaký je kompromis mezi zaujatostí a rozptylem?

pokud je náš model příliš jednoduchý a má velmi málo parametrů, může mít vysokou zkreslení a nízkou odchylku. Na druhou stranu, pokud má náš model velký počet parametrů, pak bude mít vysoký rozptyl a nízké zkreslení. Musíme tedy najít správnou / dobrou rovnováhu, aniž bychom nadměrně doplňovali a podhodnocovali data.

2) Co je gradientní sestup?

3) vysvětlete nadměrné a nedostatečné vybavení a jak s nimi bojovat?

4) jak bojujete proti prokletí dimenzionality?

  • Ruční Výběr Funkcí
  • Analýza Hlavních Komponent (PCA)
  • Multidimenzionální Škálování
  • Lokálně lineární vkládání

5) Co je regularizace, proč jsme ji používat, a dát nějaké příklady běžných metod?

technika, která odrazuje od učení, složitější nebo pružný model, tak, aby se zabránilo riziku overfitting.Příklady

  • hřeben (norma L2)
  • Lasso (norma L1)
    zjevnou nevýhodou regrese hřebene je interpretovatelnost modelu. Zmenší koeficienty pro nejméně důležité prediktory, velmi blízko nuly. Ale nikdy to nebude přesně nula. Jinými slovy, konečný model bude zahrnovat všechny prediktory. V případě laso má však trest L1 za následek vynucení některých odhadů koeficientu přesně rovných nule, pokud je ladicí parametr λ dostatečně velký. Proto metoda lasso také provádí variabilní výběr a říká se, že poskytuje řídké modely.

6) vysvětlit Principal Component Analysis (PCA)?

7) Proč je ReLU lepší a častěji používán než Sigmoid v neuronových sítích?

Představte si síť s náhodnou inicializaci vah ( nebo normalizované ) a téměř 50% sítě výnosy 0 aktivace, protože charakteristika ReLu ( výstup 0 pro záporné hodnoty z x ). To znamená, že střílí méně neuronů (řídká aktivace) a síť je lehčí.

8) Vzhledem k tomu kroku S a jádra velikosti pro každou vrstvu (1-dimenzionální) CNN, vytvořit funkci pro výpočet receptivního pole konkrétního uzlu v síti. To je jen zjištění, kolik vstupních uzlů se skutečně připojuje k neuronu v CNN.

9) implementujte připojené komponenty na obrázek / matici.

10) implementujte řídkou maticovou třídu v C++.

11) Vytvořte funkci pro výpočet integrálního obrazu a vytvořte další funkci pro získání součtů oblastí z integrálního obrazu.

12) Jak byste odstranili odlehlé hodnoty při pokusu o odhad ploché roviny z hlučných vzorků?

13) Jak CBIR působí?

14) Jak funguje registrace obrázků? Řídký vs. hustý optický tok a tak dále.

15) popište, jak konvoluce funguje. A co když vaše vstupy jsou ve stupních šedi vs RGB snímků? Co určuje tvar další vrstvy?

16) Promluvte si se mnou o tom, jak byste vytvořili 3D model objektu ze snímků a měření hloubkových senzorů provedených ve všech úhlech kolem objektu.

17) implementujte SQRT (const double & x) bez použití speciálních funkcí, pouze základní aritmetiky.

18) obrátit bitstring.

19) implementujte maximální potlačení co nejefektivněji.

20) obrátit propojený seznam na místě.

21) co je normalizace dat a proč ji potřebujeme?

normalizace Dat je velmi důležité předzpracování krok, který se používá k stupnici hodnot, aby se vešly v určitém rozsahu zajistit lepší konvergenci během backpropagation. Obecně se scvrkává na odečtení průměru každého datového bodu a vydělení jeho směrodatnou odchylkou. Pokud to neuděláme, pak některé z funkcí (vysoký rozsah), bude váha více v nákladové funkce (pokud je vyšší-velikost prvku změní o 1%, pak, že změna je docela velký, ale pro menší funkce, to je docela bezvýznamný). Díky normalizaci dat jsou všechny funkce váženy stejně.

22) proč používáme konvoluce pro obrázky spíše než jen FC vrstvy?

za prvé, konvoluce zachovávají, kódují a skutečně používají prostorové informace z obrazu. Pokud bychom použili pouze FC vrstvy, neměli bychom relativní prostorovou informaci. Za druhé, konvoluční neuronové sítě (CNN) mají částečně zabudovaný překlad v rozptylu, protože každé konvoluční jádro funguje jako vlastní filtr / detektor funkcí.

23) co dělá překlad CNNs invariantní?

jak je vysvětleno výše, každé konvoluční jádro funguje jako vlastní filtr / detektor funkcí. Řekněme, že provádíte detekci objektů, nezáleží na tom, kde na obrázku je objekt, protože stejně použijeme konvoluci posuvným oknem na celý obraz.

24) proč máme maximální sdružování v klasifikaci CNN?

pro roli v počítačovém vidění. Max-pooling v CNN umožňuje snížit výpočet, protože vaše funkce mapy jsou menší po pooling. Neztrácíte příliš mnoho sémantických informací, protože užíváte maximální aktivaci. Tam je také teorie, že max-pooling přispívá trochu dávat CNNs více překladů v-rozptylu. Podívejte se na toto skvělé video od Andrewa Ng o výhodách max-pooling.

25) proč mají segmentace CNN obvykle styl / strukturu kodéru-dekodéru?

encoder CNN může v podstatě být myšlenka jako funkce extrakce sítě, zatímco dekodér používá tyto informace, aby předvídat obraz segmenty “dekódování” funkce a zvětšení na původní velikost obrazu.

26) jaký je význam zbytkových sítí?

hlavní věc, kterou zbytková připojení udělala, bylo umožnit přímý přístup k funkcím z předchozích vrstev. Díky tomu je šíření informací v síti mnohem snazší. Jeden velmi zajímavý článek o tom ukazuje, jak pomocí místní přeskočení připojení dává síti typ souboru multi-path struktury, dává funkce Více cest k šíření v celé síti.

27) Co je normalizace dávky a proč to funguje?

trénink hlubokých neuronových sítí je komplikován skutečností, že distribuce vstupů každé vrstvy se během tréninku mění, jak se mění parametry předchozích vrstev. Myšlenka je, pak normalizovat vstupy každé vrstvy tak, že mají na mysli výstup aktivace nula a směrodatnou odchylku jedna. To se provádí pro každou jednotlivou mini-dávku v každé vrstvě, tj. vypočítat průměr a rozptyl této mini-dávky samotné, pak normalizovat. To je analogické s tím, jak jsou vstupy do sítí standardizovány. Jak to pomůže? Víme, že normalizace vstupů do sítě jí pomáhá učit se. Ale síť je jen řada vrstev, kde se výstup jedné vrstvy stává vstupem do další. To znamená, že můžeme považovat jakoukoli vrstvu v neuronové síti za první vrstvu menší následné sítě. Myšlenka jako série neuronových sítí krmení do sebe, jsme normalizovat výstup z jedné vrstvy před použitím aktivační funkce, a pak ji krmit do následující vrstvy (sub-network).

28) proč byste používali mnoho malých konvolučních jader, jako je 3×3, spíše než několik velkých?

to je velmi dobře vysvětleno v dokumentu VGGNet. Existují 2 důvodů: za Prvé, můžete použít několik menších jader, spíše než několik velkých dostat stejné receptivní pole a zachytit více prostorové souvislosti, ale s menší jádra používáte méně parametry a výpočty. Za druhé, protože s menšími jádry budete používat více filtrů, budete moci používat více aktivačních funkcí, a tak mít více diskriminační mapovací funkci, kterou se vaše CNN naučí.

29) proč potřebujeme ověřovací sadu a testovací sadu? Jaký je rozdíl mezi nimi?

při tréninku modelu rozdělíme dostupná data do tří samostatných sad:

  • tréninkový dataset se používá pro přizpůsobení parametrů modelu. Přesnost, kterou dosáhneme na tréninkové sadě, však není spolehlivá pro předvídání, zda bude model přesný na nových vzorcích.
  • dataset validace se používá k měření toho, jak dobře si model vede na příkladech, které nebyly součástí datasetu školení. Metriky vypočtené na validačních datech lze použít k vyladění hyperparametrů modelu. Pokaždé, když vyhodnocujeme validační data a rozhodujeme se na základě těchto skóre, unikáme informace z validačních dat do našeho modelu. Čím více hodnocení, tím více informací uniká. Takže můžeme nakonec překonat validační data a skóre validace opět nebude spolehlivé pro předpovídání chování modelu v reálném světě.
  • testovací dataset se používá k měření toho, jak dobře si model vede na dříve neviděných příkladech. Měl by být použit pouze poté, co jsme vyladili parametry pomocí ověřovací sady.

takže pokud vynecháme testovací sadu a použijeme pouze ověřovací sadu, validační skóre nebude dobrým odhadem zobecnění modelu.

30) Co je stratifikovaná křížová validace a kdy bychom ji měli použít?

Křížová validace je technika pro dělení dat mezi tréninkovými a validačními sadami. Při typické křížové validaci se toto rozdělení provádí náhodně. Ale ve stratifikované křížové validaci, rozdělení zachovává poměr kategorií jak na datech školení, tak na validaci.

pokud například máme datovou sadu s 10% kategorie A a 90% kategorie B a používáme stratifikovanou křížovou validaci, budeme mít stejné proporce v tréninku a validaci. Naproti tomu, pokud použijeme jednoduchou křížovou validaci, v nejhorším případě můžeme zjistit, že v sadě validací nejsou žádné vzorky kategorie a.

stratifikovaná křížová validace může být použita v následujících scénářích:

  • na datovém souboru s více kategoriemi. Čím menší je datová sada a čím nevyváženější jsou Kategorie, tím důležitější bude použít stratifikovanou křížovou validaci.
  • na datovém souboru s daty různých distribucí. Například v datovém souboru pro autonomní řízení můžeme mít snímky pořízené během dne a v noci. Pokud nezajistíme, aby oba typy byly přítomny ve školení a validaci, budeme mít problémy s zobecněním.

31) proč mají soubory obvykle vyšší skóre než jednotlivé modely?

soubor je kombinací více modelů pro vytvoření jediné predikce. Klíčovou myšlenkou pro lepší předpovědi je, že modely by měly dělat různé chyby. Tímto způsobem budou chyby jednoho modelu kompenzovány správnými odhady ostatních modelů a tím bude skóre souboru vyšší.

potřebujeme různé modely pro vytvoření souboru. Rozmanitosti lze dosáhnout:

  • použití různých ml algoritmů. Můžete například kombinovat logistickou regresi, k-nejbližší sousedy a rozhodovací stromy.
  • použití různých podmnožin dat pro trénink. Tomu se říká pytlování.
  • dává každému ze vzorků tréninkové sady jinou váhu. Pokud se to provádí iterativně, vážení vzorků podle chyb souboru, nazývá se to posílení.Mnoho vítězných řešení soutěží v oblasti vědy o datech jsou soubory. V projektech strojového učení v reálném životě však musí inženýři najít rovnováhu mezi dobou provádění a přesností.

32) co je nevyvážená datová sada? Můžete uvést některé způsoby, jak se s tím vypořádat?

nevyvážená datová sada je datová sada, která má různé proporce cílových kategorií. Například dataset s lékařských snímků, kde jsme odhalit některé nemoci obvykle mají mnoho dalších negativních vzorků než pozitivní vzorky—řekněme, 98% obrázků jsou bez nemoci, a 2% jsou obrázky s nemocí.

existují různé možnosti řešení nevyvážených datových souborů:

  • převzorkování nebo převzorkování. Místo vzorkování s rovnoměrným rozdělením z tréninkové datové sady můžeme použít jiné distribuce, takže model vidí vyváženější datovou sadu.
  • zvětšení dat. Můžeme přidat data v méně častých kategoriích úpravou existujících dat kontrolovaným způsobem. V příkladu datové sady, mohli bychom převrátit obrázky s nemocemi, nebo přidat šum ke kopiím obrázků tak, aby nemoc zůstala viditelná.
  • pomocí vhodných metrik. V příkladu datové sady, pokud bychom měli model, který vždy dělal negativní předpovědi, dosáhl by přesnosti 98%. Existují další metriky, jako je přesnost, odvolání, a F-skóre, které popisují přesnost modelu lépe při použití nevyvážené datové sady.

33) můžete vysvětlit rozdíly mezi učením pod dohledem, bez dozoru a posilováním?

v supervizovaném učení trénujeme model, který se učí vztah mezi vstupními a výstupními daty. Musíme mít označená data, abychom mohli dělat supervizorované učení.

s bez dozoru učení, máme pouze neoznačené údaje. Model se naučí reprezentaci dat. Učení bez dozoru se často používá k inicializaci parametrů modelu, když máme mnoho neoznačených dat a malý zlomek označených dat. Nejprve trénujeme model bez dozoru a poté pomocí závaží modelu trénujeme model pod dohledem.

v učení výztuže má model některá vstupní data a odměnu v závislosti na výstupu modelu. Model se učí politice, která maximalizuje odměnu. Posilování učení bylo úspěšně aplikováno na strategické hry, jako jsou Go a dokonce i klasické videohry Atari.

34) co je to zvětšení dat? Můžete uvést několik příkladů?

augmentace dat je technika pro syntézu nových dat úpravou existujících dat tak, aby se cíl nezměnil nebo se změnil známým způsobem.

počítačové vidění je jednou z oblastí, kde je augmentace dat velmi užitečná. Existuje mnoho změn, které můžeme udělat, aby obrázky:

  • Velikost
  • Horizontální nebo vertikální flip
  • Rotate
  • Přidat šum
  • Deformovat
  • Upravit colorsEach problém potřebuje vlastní data prsou potrubí. Například, na OCR, dělá převrácení změní text a nebude prospěšné; nicméně, změny velikosti a malé rotace může pomoci.

35) co je Turingův test?

Turingův test je metoda testování schopnosti stroje odpovídat inteligenci na lidské úrovni. Stroj se používá k zpochybnění lidské inteligence, že když projde testem, je považován za inteligentní. Přesto lze stroj považovat za inteligentní, aniž by dostatečně věděl o lidech, aby napodoboval člověka.

36) Co je přesnost?

Přesné (nazývané také pozitivní prediktivní hodnota) je zlomek příslušných případech mezi načtena instance
Přesnost = true pozitivní / (true pozitivní + falešně pozitivní)

37) Co je Připomenout?

Recall (také známý jako citlivost) je zlomek relevantních instancí, které byly načteny v celkovém počtu relevantních instancí.Recall = true positive / (true positive + false negative)

38) Definujte F1-skóre.

je to vážený průměr přesnosti a odvolání. Bere v úvahu jak falešně pozitivní, tak falešně negativní. Používá se k měření výkonu modelu.
F1-Score = 2 * (precision * recall) / (precision + recall)

39) co je nákladová funkce?

nákladová funkce je skalární funkce, která kvantifikuje chybový faktor neuronové sítě. Nižší funkce nákladů lepší neuronové sítě. Např: MNIST datová sada pro klasifikaci obrazu, vstupní obraz je číslice 2 a neuronová síť nesprávně předpovídá, že je 3

40) seznam různých aktivačních neuronů nebo funkcí.

  • Lineární Neuron
  • Binární Práh Neuronu
  • Stochastické Binární Neuron
  • Esovité Neuronu
  • Tanh funkce
  • Opraveny Lineární Jednotky (ReLU)

41) Definovat rychlost Učení.

rychlost učení je hyperparametr, který řídí, jak moc upravujeme váhy naší sítě s ohledem na gradient ztráty.

42) co je hybnost (optimalizace w.r.t NN)?

Momentum umožňuje optimalizačnímu algoritmu zapamatovat si jeho poslední krok a přidat jeho část k aktuálnímu kroku. Tímto způsobem, i když algoritmus uvízl v ploché oblasti, nebo malé lokální minimum, může se dostat ven a pokračujte směrem na skutečné minimum.

43) Jaký je rozdíl mezi Dávkový Gradient Sestupu a Stochastické Gradientní Sestupu?

Batch gradient descent vypočítá gradient pomocí celé datové sady. To je skvělé pro konvexní, nebo relativně hladké chybové rozdělovače. V tomto případě směřujeme poněkud přímo k optimálnímu řešení, ať už lokálnímu nebo globálnímu. Dodatečně, dávkový gradient sestup, vzhledem k žíhané rychlosti učení, nakonec najde minimum umístěné v jeho povodí přitažlivosti.

Stochastic gradient descent (SGD) vypočítá gradient pomocí jediného vzorku. SGD funguje dobře (ne dobře, předpokládám, ale lepší než batch gradient descent) pro chybové rozdělovače, které mají spoustu místních Maxim/minim. V tomto případě poněkud hlučnější gradient vypočtený pomocí sníženého počtu vzorků má tendenci trhnout model z místních minim do oblasti, která je, Doufejme, optimálnější.

44) epocha vs šarže vs iterace.

Epocha: jednu přihrávku dopředu a jeden dozadu projít všech trénovacích příkladů
Batch: příklady zpracovány společně v jednom průchodu (dopředu a dozadu)
Iterace: počet trénovacích příkladů / velikost Šarže

45) Co je vanishing gradient?

jak přidáváme více a více skrytých vrstev, šíření zpět se stává méně a méně užitečným při předávání informací do spodních vrstev. Ve skutečnosti, jak jsou informace předávány zpět, gradienty začnou mizet a stávají se malými vzhledem k hmotnosti sítí.

46) co jsou výpadky?

výpadek je jednoduchý způsob, jak zabránit nadměrnému vybavení neuronové sítě. Je to vypadnutí některých jednotek v neuronové síti. Je to podobné jako přirozený reprodukční proces, kde příroda vytváří potomky kombinací odlišných genů (vypadl další) spíše než posílení spolupráce-přizpůsobení z nich.

47) Definujte LSTM.

dlouhodobá krátkodobá paměť-jsou výslovně navrženy tak, aby řešily problém dlouhodobé závislosti tím, že udržují stav, co si pamatovat a na co zapomenout.

48) seznam klíčových komponent LSTM.

  • Gates (zapomenout, Paměť, aktualizace & Přečíst)
  • tanh(x) (hodnoty od -1 do 1)
  • Sigmoid(x) (hodnoty mezi 0 až 1)

49) Seznam variant RNN.

  • LSTM: Dlouhé krátkodobá Paměť
  • GRU: Gated Opakující se Jednotky
  • End do End Síť
  • Paměť Sítě

50) Co je Autoencoder, jméno několika aplikací.

Auto encoder se v podstatě používá k naučení komprimované formy daných dat. Několik aplikací include

  • Data šumu
  • redukci Dimenzionality
  • rekonstrukce Obrazu
  • Obrázek zbarvení

51) Jaké jsou součásti GAN?

  • Generátor
  • Diskriminátor

52) Jaký je rozdíl mezi posílení a pytlování?

Posílení a pytlování jsou podobné, v tom, že jsou oba ensembling techniky, kde se počet slabých žáků (klasifikátorů/regressors, které jsou sotva lepší než hádat) kombinovat (přes v průměru nebo max hlasování) k vytvoření silného žáka, který může dělat přesné předpovědi. Pytlování znamená, že budete mít bootstrap vzorky (s náhradou) vaší datové sady a každý vzorek trénuje (potenciálně) slabý student. Posílení, na druhé straně využívá všech dat do vlaku každého žáka, ale případy, že byly nesprávně zařazeny do předchozích studentů jsou dány větší váhu, takže následné studenty, dát větší důraz na ně během tréninku.

53) vysvětlete, jak funguje Roc křivka.

ROC křivka je grafické znázornění kontrastu mezi skutečnou pozitivní sazby a falešně pozitivní sazba na různé prahové hodnoty. Často se používá jako proxy pro kompromis mezi citlivostí modelu (true positives) vs. fall-out nebo pravděpodobností, že spustí falešný poplach (false positives).

54) jaký je rozdíl mezi chybou typu I a typu II?

chyba typu I je falešně pozitivní, zatímco chyba typu II je falešně negativní. Stručně řečeno, chyba typu I znamená tvrzení, že se něco stalo, když se tak nestalo, zatímco chyba typu II znamená, že tvrdíte, že se nic neděje, když ve skutečnosti něco je.Chytrý způsob, jak o tom přemýšlet, je myslet na chybu typu I jako na to, že muži říká, že je těhotná, zatímco chyba typu II znamená, že řeknete těhotné ženě, že nenese dítě.

55) jaký je rozdíl mezi generativním a diskriminačním modelem?

generativní model se naučí kategorie dat, zatímco diskriminační model se jednoduše naučí rozlišovat mezi různými kategoriemi dat. Diskriminační modely obecně překonají generativní modely v klasifikačních úlohách.

příspěvky

příspěvky jsou nejvíce vítány.

  1. vyklopte úložiště.
  2. odevzdejte své otázky nebo odpovědi.
  3. otevřete požadavek na zatažení.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.