andrewekhalel / MLQuestions

zbiór pytań technicznych na stanowiska machine learning and computer vision engineering.

1) Jaki jest kompromis między stronniczością a wariancją?

jeśli nasz model jest zbyt prosty i ma bardzo mało parametrów, może mieć wysokie odchylenie i niską wariancję. Z drugiej strony, jeśli nasz model ma dużą liczbę parametrów, to będzie miał wysoką wariancję i niskie odchylenie. Musimy więc znaleźć właściwą / dobrą równowagę bez przepełniania i niedostatecznego dopasowania danych.

2) Co to jest opadanie gradientu?

3) wyjaśnij nad-i pod-dopasowanie i jak z nimi walczyć?

4) jak zwalczyć przekleństwo wymiarowości?

  • Ręczny wybór funkcji
  • analiza głównych komponentów (PCA)
  • skalowanie wielowymiarowe
  • osadzanie lokalnie liniowe

5) czym jest regularyzacja, dlaczego z niej korzystamy i podajemy przykłady typowych metod?

technika, która zniechęca do nauki bardziej złożonego lub elastycznego modelu, aby uniknąć ryzyka przepełnienia.Przykłady

  • grzbiet (norma L2)
  • Lasso (norma L1)
    oczywistą wadą regresji grzbietowej jest interpretowalność modelu. Zmniejszy współczynniki dla najmniej ważnych predyktorów, bardzo bliskie zeru. Ale to nigdy nie uczyni ich dokładnie zerowymi. Innymi słowy, ostateczny model będzie zawierał wszystkie predyktory. Jednak w przypadku lasso, kara L1 powoduje wymuszenie, aby część oszacowań współczynnika była dokładnie równa zeru, gdy parametr strojenia λ jest wystarczająco duży. Dlatego metoda lasso wykonuje również wybór zmiennych i mówi się, że daje rzadkie modele.

6) wyjaśnić analizę głównych składników (PCA)?

7) Dlaczego ReLU jest lepszy i częściej stosowany niż Esica w sieciach neuronowych?

wyobraź sobie sieć z losowymi inicjalizowanymi wagami (lub znormalizowanymi) i prawie 50% sieci daje 0 aktywacji ze względu na charakterystykę ReLu ( wyjście 0 dla ujemnych wartości x). Oznacza to, że mniej neuronów odpala (rzadka aktywacja), a sieć jest lżejsza.

8) biorąc pod uwagę krok s i rozmiary jądra dla każdej warstwy (1-wymiarowego) CNN, Utwórz funkcję do obliczania pola odbiorczego określonego węzła w sieci. To jest po prostu ustalenie, ile węzłów wejściowych faktycznie łączy się z neuronem w CNN.

9) zaimplementuj połączone komponenty na obrazie / matrycy.

10) zaimplementuj rzadką klasę macierzy w C++.

11) Utwórz funkcję do obliczania obrazu całkowego i utwórz inną funkcję do pobierania Sum obszaru z obrazu całkowego.

12) Jak usunąć wartości odstające, próbując oszacować płaską płaszczyznę z hałaśliwych próbek?

13) Jak działa CBIR?

14) Jak działa rejestracja obrazu? Rzadki vs. gęsty przepływ optyczny i tak dalej.

15) opisz jak działa splot. Co jeśli Twoje dane wejściowe są w skali szarości lub RGB? Co decyduje o kształcie kolejnej warstwy?

16) Opowiedz mi, jak stworzyć model 3D obiektu na podstawie zdjęć i pomiarów czujnika głębokości wykonanych pod wszystkimi kątami wokół obiektu.

17) zaimplementuj SQRT (const double & x) bez użycia żadnych specjalnych funkcji, tylko podstawowej arytmetyki.

18) Odwróć bitstring.

19) zaimplementuj nieaksymalne tłumienie tak efektywnie, jak to tylko możliwe.

20) Odwróć połączoną listę na miejscu.

21) czym jest normalizacja danych i dlaczego jej potrzebujemy?

normalizacja danych jest bardzo ważnym etapem wstępnego przetwarzania, używanym do przeskalowania wartości, aby zmieścić się w określonym zakresie, aby zapewnić lepszą konwergencję podczas backpropagacji. Ogólnie rzecz biorąc, sprowadza się do odejmowania średniej każdego punktu danych i dzielenia przez jego odchylenie standardowe. Jeśli tego nie zrobimy, niektóre funkcje (te o dużej wielkości) będą ważone bardziej w funkcji kosztowej (jeśli funkcja o większej wielkości zmieni się o 1%, zmiana ta jest dość duża, ale dla mniejszych funkcji jest dość nieistotna). Normalizacja danych sprawia, że wszystkie funkcje są jednakowo ważone.

22) dlaczego używamy splotów dla obrazów, a nie tylko warstw FC?

po pierwsze, sploty zachowują, kodują i faktycznie wykorzystują informacje przestrzenne z obrazu. Gdybyśmy używali tylko warstw FC, nie mielibyśmy względnej informacji przestrzennej. Po drugie, Konwolucyjne Sieci neuronowe (CNN) mają częściowo wbudowaną wariancję translacji, ponieważ każde jądro konwolucyjne działa jak własny filtr / detektor funkcji.

23) co sprawia, że tłumaczenie CNNs jest niezmienne?

jak wyjaśniono powyżej, każde jądro splotu działa jak własny filtr / detektor funkcji. Powiedzmy, że wykrywasz obiekty, nie ma znaczenia, gdzie na obrazie znajduje się obiekt, ponieważ i tak zastosujemy splot w przesuwanym oknie na całym obrazie.

24) dlaczego mamy max-pooling w klasyfikacji CNNs?

za rolę w wizji komputerowej. Max-pooling w CNN pozwala zmniejszyć obliczenia, ponieważ mapy funkcji są mniejsze po poolingu. Nie tracisz zbyt wiele informacji semantycznych, ponieważ bierzesz maksymalną aktywację. Istnieje również teoria, że max-pooling przyczynia się nieco do nadania CNNs większej wariancji tłumaczenia. Sprawdź ten świetny film od Andrew Ng o korzyściach płynących z max-poolingu.

25) dlaczego segmentacja CNN zazwyczaj ma styl / strukturę kodera-dekodera?

koder CNN można zasadniczo traktować jako sieć ekstrakcji funkcji, podczas gdy dekoder wykorzystuje te informacje do przewidywania segmentów obrazu poprzez “dekodowanie” funkcji i skalowanie do oryginalnego rozmiaru obrazu.

26) jakie jest znaczenie sieci rezydualnych?

najważniejsze, że pozostałe połączenia pozwoliły na bezpośredni dostęp do funkcji z poprzednich warstw. To znacznie ułatwia rozpowszechnianie informacji w całej sieci. Jeden bardzo interesujący artykuł na ten temat pokazuje, jak użycie lokalnych połączeń skip nadaje sieci rodzaj złożonej struktury wielościeżkowej, dając funkcje wielu ścieżek do propagowania w całej sieci.

27) co to jest normalizacja partii i dlaczego to działa?

Trening głębokich sieci neuronowych komplikuje fakt, że rozkład wejść każdej warstwy zmienia się podczas treningu, wraz ze zmianą parametrów poprzednich warstw. Chodzi o to, aby znormalizować wejścia każdej warstwy w taki sposób, aby miały średnią aktywację wyjściową zera i odchylenie standardowe jedynki. Odbywa się to dla każdej pojedynczej mini-partii na każdej warstwie, tj. Oblicz średnią i wariancję tej samej mini-partii, a następnie normalizuj. Jest to analogiczne do standaryzacji wejść do sieci. Jak to ma pomóc? Wiemy, że normalizacja danych wejściowych do sieci pomaga jej się uczyć. Ale sieć to tylko seria warstw, gdzie wyjście jednej warstwy staje się wejściem do następnej. Oznacza to, że możemy myśleć o każdej warstwie sieci neuronowej jako o pierwszej warstwie mniejszej kolejnej sieci. Traktowani jako seria sieci neuronowych zasilających się wzajemnie, normalizujemy wyjście jednej warstwy przed zastosowaniem funkcji aktywacji, a następnie wprowadzamy ją do następnej warstwy (podsieci).

28) dlaczego używasz wielu małych jąder typu convolutional, takich jak 3×3, a nie kilku dużych?

jest to bardzo dobrze wyjaśnione w dokumencie VGGNet. Istnieją 2 powody: Po pierwsze, możesz użyć kilku mniejszych jąder zamiast kilku dużych, aby uzyskać to samo pole i uchwycić więcej kontekstu przestrzennego, ale z mniejszymi jądrami używasz mniej parametrów i obliczeń. Po drugie, ponieważ przy mniejszych jądrach będziesz używał więcej filtrów, będziesz mógł używać więcej funkcji aktywacyjnych, a tym samym mieć bardziej rozróżniającą funkcję mapowania, której nauczy się twój CNN.

29) Dlaczego potrzebujemy zestawu walidacji i zestawu testowego? Jaka jest między nimi różnica?

podczas szkolenia modelu dzielimy dostępne dane na trzy oddzielne zestawy:

  • zestaw danych treningowych służy do dopasowania parametrów modelu. Jednak dokładność, którą osiągamy na zestawie treningowym, nie jest wiarygodna do przewidywania, czy model będzie dokładny na nowych próbkach.
  • zestaw danych walidacyjnych służy do pomiaru skuteczności modelu na przykładach, które nie były częścią zestawu danych szkoleniowych. Metryki obliczone na podstawie danych walidacyjnych można wykorzystać do dostrojenia hiperparametrów modelu. Jednak za każdym razem, gdy oceniamy dane walidacyjne i podejmujemy decyzje na podstawie tych wyników, wyciekają informacje z danych walidacyjnych do naszego modelu. Im więcej ocen, tym więcej informacji wycieka. Możemy więc przecenić dane walidacyjne i po raz kolejny wynik walidacji nie będzie wiarygodny do przewidywania zachowania modelu w rzeczywistym świecie.
  • zestaw danych testowych służy do pomiaru, jak dobrze model działa na wcześniej nieznanych przykładach. Powinno być używane tylko po dostrojeniu parametrów za pomocą zestawu walidacji.

więc jeśli pominiemy zestaw testów i użyjemy tylko zestawu walidacji, wynik walidacji nie będzie dobrym oszacowaniem uogólnienia modelu.

30) co to jest stratyfikacja krzyżowa i kiedy powinniśmy z niej korzystać?

Cross-validation jest techniką dzielenia danych między zestawami treningowymi i walidacyjnymi. Przy typowej weryfikacji krzyżowej podział ten odbywa się losowo. Ale w stratyfikowanej walidacji krzyżowej podział zachowuje stosunek kategorii zarówno w zestawach danych dotyczących szkolenia, jak i walidacji.

na przykład, jeśli mamy zbiór danych z 10% kategorii A i 90% kategorii B i używamy stratyfikowanej weryfikacji krzyżowej, będziemy mieli takie same proporcje w szkoleniu i walidacji. W przeciwieństwie do tego, jeśli używamy prostej weryfikacji krzyżowej, w najgorszym przypadku możemy stwierdzić, że w zestawie walidacji nie ma próbek kategorii A.

warstwowa Walidacja krzyżowa może być stosowana w następujących scenariuszach:

  • na zbiorze danych z wieloma kategoriami. Im mniejszy zbiór danych i im bardziej niezrównoważone kategorie, tym ważniejsze będzie zastosowanie stratyfikacji krzyżowej.
  • na zbiorze danych z danymi o różnych dystrybucjach. Na przykład w zestawie danych do autonomicznej jazdy możemy mieć zdjęcia zrobione w ciągu dnia i w nocy. Jeśli nie zapewnimy, że oba typy są obecne w szkoleniu i walidacji, będziemy mieli problemy uogólniające.

31) dlaczego zespoły zazwyczaj mają wyższe wyniki niż poszczególne modele?

zespół jest połączeniem wielu modeli w celu stworzenia jednej prognozy. Kluczową ideą tworzenia lepszych prognoz jest to, że modele powinny popełniać różne błędy. W ten sposób błędy jednego modelu zostaną zrekompensowane przez właściwe odgadnięcia innych modeli, a tym samym wynik zespołu będzie wyższy.

potrzebujemy różnych modeli do stworzenia zespołu. Różnorodność można osiągnąć poprzez:

  • Korzystanie z różnych algorytmów ML. Można na przykład połączyć regresję logistyczną, K-najbliżsi sąsiedzi i drzewa decyzyjne.
  • wykorzystanie różnych podzbiorów danych do szkolenia. To się nazywa pakowanie.
  • Jeśli odbywa się to iteracyjnie, ważąc próbki zgodnie z błędami zespołu, nazywa się to zwiększaniem.Wiele zwycięskich rozwiązań w konkursach z zakresu nauk o danych to zespoły. Jednak w rzeczywistych projektach uczenia maszynowego inżynierowie muszą znaleźć równowagę między czasem wykonania a dokładnością.

32) co to jest niezrównoważony zbiór danych? Czy możesz wymienić kilka sposobów radzenia sobie z tym?

niezrównoważony zbiór danych to taki, który ma różne proporcje kategorii docelowych. Na przykład zbiór danych z obrazami medycznymi, w których musimy wykryć jakąś chorobę, zazwyczaj zawiera dużo więcej próbek negatywnych niż pozytywnych—powiedzmy, że 98% obrazów jest bez choroby, a 2% obrazów jest z chorobą.

istnieją różne opcje radzenia sobie z niezrównoważonymi zbiorami danych:

  • Oversampling lub undersampling. Zamiast próbkowania z jednolitym rozkładem z zestawu danych treningowych, możemy użyć innych rozkładów, aby model widział bardziej zrównoważony zestaw danych.
  • powiększanie danych. Możemy dodawać dane do rzadziej występujących kategorii, modyfikując istniejące dane w kontrolowany sposób. W przykładowym zestawie danych możemy odwrócić obrazy za pomocą chorób lub dodać hałas do kopii obrazów w taki sposób, że choroba pozostaje widoczna.
  • używając odpowiednich metryk. W przykładowym zbiorze danych, gdybyśmy mieli model, który zawsze przewidywał negatywne prognozy, osiągnęlibyśmy precyzję na poziomie 98%. Istnieją inne wskaźniki, takie jak precyzja, przypomnienie i F-score, które opisują dokładność modelu lepiej przy użyciu niezrównoważonego zbioru danych.

33) czy możesz wyjaśnić różnice między nauczaniem nadzorowanym, nienadzorowanym i wzmacniającym?

w uczeniu nadzorowanym trenujemy model poznawania zależności między danymi wejściowymi a danymi wyjściowymi. Musimy mieć oznakowane dane, aby móc uczyć się pod nadzorem.

przy uczeniu bez nadzoru mamy tylko nieopisane dane. Model uczy się reprezentacji danych. Uczenie nienadzorowane jest często używane do inicjalizacji parametrów modelu, gdy mamy dużo nieoznakowanych danych i niewielką część oznakowanych danych. Najpierw trenujemy model bez nadzoru, a następnie używamy ciężarów modelu do szkolenia nadzorowanego modelu.

w uczeniu wzmacniającym model ma pewne dane wejściowe i nagrodę w zależności od wyników modelu. Model uczy się polityki, która maksymalizuje nagrodę. Uczenie się wzmacniające zostało z powodzeniem zastosowane w grach strategicznych, takich jak Go, a nawet klasycznych grach wideo Atari.

34) co to jest powiększanie danych? Czy możesz podać kilka przykładów?

augmentacja danych to technika syntezy nowych danych poprzez modyfikację istniejących danych w taki sposób, aby cel nie został zmieniony lub został zmieniony w znany sposób.

widzenie komputerowe jest jednym z pól, w których augmentacja danych jest bardzo przydatna. Istnieje wiele modyfikacji, które możemy zrobić z obrazami:

  • Zmień rozmiar
  • Odwróć poziomo lub pionowo
  • Obróć
  • Dodaj szum
  • Odkształć
  • zmodyfikuj kolorwykażdy problem wymaga dostosowanego potoku powiększania danych. Na przykład w OCR wykonywanie rzutów zmieni tekst i nie będzie korzystne; jednak zmiany rozmiaru i małe obroty mogą pomóc.

35) co to jest test Turinga?

test Turinga jest metodą testowania zdolności Maszyny do dopasowania poziomu inteligencji człowieka. Maszyna jest używana do kwestionowania ludzkiej inteligencji, która po przejściu testu jest uważana za inteligentną. Jednak maszyna może być postrzegana jako inteligentna bez dostatecznej wiedzy o ludziach, aby naśladować człowieka.

36) czym jest precyzja?

Precision (zwana także dodatnią wartością predykcyjną) jest ułamkiem odpowiednich instancji wśród pobranych instancji
Precision = true positive / (true positive + false positive)

37) Co To jest przypomnienie?

Przywołanie (znane również jako czułość) to ułamek odpowiednich instancji, które zostały pobrane w stosunku do całkowitej liczby odpowiednich instancji.Recall = true positive / (true positive + false negative)

38) Zdefiniuj wynik F1.

jest to średnia ważona precyzji i przypomnienia. Uwzględnia zarówno fałszywie dodatnie, jak i fałszywie ujemne. Służy do pomiaru wydajności modelu.
F1-Score = 2 * (precision * recall) / (precision + recall)

39) co to jest funkcja kosztowa?

funkcja kosztowa jest funkcją skalarną, która określa współczynnik błędu sieci neuronowej. Niższa funkcja kosztów lepsza sieć neuronowa. Np: zestaw danych MNIST do klasyfikacji obrazu, obraz wejściowy to cyfra 2, a sieć neuronowa błędnie przewiduje, że będzie to 3

40) wymienia różne neurony aktywacyjne lub funkcje.

  • Neuron liniowy
  • binarny Neuron progowy
  • stochastyczny Neuron binarny
  • Neuron esicy
  • funkcja Tanh
  • rektyfikowana jednostka liniowa (ReLU)

41) Zdefiniuj szybkość uczenia się.

szybkość uczenia się jest hiper-parametrem, który kontroluje, jak bardzo dostosowujemy wagi naszej sieci w odniesieniu do gradientu strat.

42) co to jest Momentum (w.r.T NN)?

Momentum pozwala algorytmowi optymalizacji zapamiętać jego ostatni krok i dodać jego część do bieżącego kroku. W ten sposób, nawet jeśli algorytm utknie w płaskim obszarze lub małym lokalnym minimum, może wyjść i kontynuować w kierunku prawdziwego minimum.

43) Jaka jest różnica między wsadowym spadaniem gradientu a spadaniem gradientu stochastycznego?

wsadowe opadanie gradientu oblicza gradient na podstawie całego zestawu danych. Jest to świetne dla wypukłych lub stosunkowo gładkich kolektorów błędów. W tym przypadku zmierzamy nieco bezpośrednio w kierunku optymalnego rozwiązania, zarówno lokalnego, jak i globalnego. Dodatkowo, spadek gradientu wsadowego, biorąc pod uwagę wyżarzoną szybkość uczenia się, ostatecznie znajdzie minimum znajdujące się w jego basenie przyciągania.

Stochastic gradient descent (SGD) oblicza gradient przy użyciu jednej próbki. SGD działa dobrze (przypuszczam, że nie dobrze, ale lepiej niż wsadowe Spadanie gradientu) dla kolektorów błędów, które mają wiele lokalnych maksimów/minimów. W tym przypadku nieco głośniejszy gradient obliczony przy użyciu zmniejszonej liczby próbek ma tendencję do szarpnięcia modelu z lokalnych minimów w region, który, miejmy nadzieję, jest bardziej optymalny.

44) Epoka vs partia vs iteracja.

Epoka: jedno przejście do przodu i jedno przejście do tyłu wszystkich przykładów treningu
partia: przykłady przetworzone razem w jednym przejściu (do przodu i do tyłu)
iteracja: liczba przykładów treningu / wielkość partii

45) co to jest znikający gradient?

gdy dodajemy coraz więcej ukrytych warstw, propagacja wsteczna staje się coraz mniej użyteczna w przekazywaniu informacji do niższych warstw. W rezultacie, gdy informacje są przekazywane z powrotem, gradienty zaczynają znikać i stają się małe w stosunku do wagi sieci.

46) co to są wypadki?

Dropout to prosty sposób na zapobieganie przepełnieniu sieci neuronowej. Jest to opuszczenie niektórych jednostek w sieci neuronowej. Jest on podobny do naturalnego procesu reprodukcji, w którym natura produkuje potomstwo poprzez łączenie różnych genów (wyrzucanie innych), a nie wzmacnianie ich współadaptacji.

47) Zdefiniuj LSTM.

Long Short Term Memory – są wyraźnie zaprojektowane, aby rozwiązać problem długotrwałej zależności, utrzymując stan, o czym pamiętać, a o czym zapomnieć.

48) Wymień kluczowe elementy LSTM.

  • Gates (forget, Memory, update & Read)
  • tanh(X) (wartości od -1 do 1)
  • Sigmoid (x) (wartości od 0 do 1)

49) lista wariantów RNN.

  • LSTM: długa pamięć krótkotrwała
  • GRU: Gated Recurrent Unit
  • sieć od końca do końca
  • sieć pamięci

50) Co To jest Autoencoder, wymień kilka aplikacji.

Auto encoder jest zasadniczo używany do nauki skompresowanej formy danych. Nieliczne zastosowania obejmują

  • odszumianie danych
  • redukcja wymiarowości
  • rekonstrukcja obrazu
  • koloryzacja obrazu

51) jakie są składniki GAN?

  • Generator

52) Jaka jest różnica między boostingiem a pakowaniem?

Boosting i bagging są podobne, ponieważ są to techniki zbiorcze, w których liczba słabych uczniów (klasyfikatorów/regresorów, które są ledwo lepsze niż zgadywanie) łączy się (poprzez uśrednianie lub maksymalny głos), aby stworzyć silnego ucznia, który może precyzyjnie przewidywać. Pakowanie oznacza, że pobierasz próbki bootstrap (z zastąpieniem) zestawu danych, a każda próbka szkoli (potencjalnie) słabego ucznia. Z drugiej strony Boosting wykorzystuje wszystkie dane do szkolenia każdego ucznia, ale przypadki, które zostały błędnie sklasyfikowane przez poprzednich uczniów, mają większą wagę, dzięki czemu kolejni uczniowie poświęcają im więcej uwagi podczas treningu.

53) wyjaśnij, jak działa krzywa ROC.

krzywa ROC jest graficzną reprezentacją kontrastu między rzeczywistymi wskaźnikami dodatnimi a wskaźnikami fałszywie dodatnimi w różnych progach. Jest często używany jako pośrednik dla kompromisu między czułością modelu (true positives) a wypadnięciem lub prawdopodobieństwem, że wywoła fałszywy alarm (false positives).

54) Jaka jest różnica między błędem typu I A błędem typu II?

błąd typu i jest fałszywie dodatni, podczas gdy błąd typu II jest fałszywie ujemny. Krótko mówiąc, błąd typu I oznacza twierdzenie, że coś się stało, gdy nie, podczas gdy błąd typu II oznacza, że twierdzisz, że nic się nie dzieje, gdy w rzeczywistości coś jest.Sprytnym sposobem myślenia o tym jest myślenie o błędzie typu I jako o informowaniu mężczyzny, że jest w ciąży, podczas gdy błąd typu II oznacza, że mówisz kobiecie w ciąży, że nie nosi dziecka.

55) Jaka jest różnica między modelem generatywnym a dyskryminacyjnym?

model generatywny nauczy się kategorii danych, podczas gdy model dyskryminacyjny po prostu nauczy się rozróżniania między różnymi kategoriami danych. Modele dyskryminacyjne na ogół przewyższają modele generatywne w zadaniach klasyfikacyjnych.

Wkłady

wkłady są najbardziej mile widziane.

  1. Zgłoś swoje pytania lub odpowiedzi.
  2. Otwórz żądanie pull.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.