Top 10 pytań i odpowiedzi na wywiad dotyczący głębokiego uczenia się

Opublikowany: 2019-08-29

Chociaż wciąż ewoluuje, Deep Learning wyłoniło się jako przełomowa technologia w dziedzinie Data Science. Od technologii DeepMind firmy Google po autonomiczne samochody — innowacje Deep Learning wzbudziły podziw na całym świecie. Firmy i organizacje na całym świecie stosują technologię Deep Learning, aby zwiększyć możliwości biznesowe. Rezultat – zapotrzebowanie na wykwalifikowanych specjalistów z zakresu Deep Learning i Machine Learning rośnie w niespotykanym dotąd tempie. W rzeczywistości Data Science jest teraz tak popularna na rynku, że jeśli możesz zbudować karierę w Data Science, dobrze jest iść!

Jak wiecie, aby znaleźć udaną pracę w Deep Learning, musisz najpierw przejść rozmowę kwalifikacyjną – jedno z najtrudniejszych wyzwań w procesie poszukiwania pracy.

Dlatego postanowiliśmy nieco ułatwić Ci zdobycie przewagi i przygotowaliśmy listę dziesięciu najczęściej zadawanych pytań do wywiadów dotyczących głębokiego uczenia się!

  1. Co to jest głębokie uczenie?

Głębokie uczenie to podzbiór uczenia maszynowego, który wykorzystuje sztuczne sieci neuronowe, aby umożliwić maszynom symulowanie podejmowania decyzji, tak jak ludzie. Sieci neuronowe są inspirowane strukturą neuronową ludzkiego mózgu. Głębokie uczenie znalazło wiele zastosowań w obszarach takich jak wykrywanie funkcji, widzenie komputerowe, rozpoznawanie mowy i przetwarzanie języka naturalnego.

  1. Co to jest perceptron?

Aby to zrozumieć, musisz najpierw zrozumieć, jak działa neuron biologiczny. Neuron składa się z ciała komórki, aksonu i dendrytów.

Podczas gdy dendryty odbierają sygnały od innych neuronów, ciało komórki sumuje wszystkie otrzymane sygnały wejściowe, a akson przekazuje informacje zebrane przez ciało komórki jako sygnały do ​​innych komórek.

Właśnie tak, Perceptron w sieci neuronowej otrzymuje wiele danych wejściowych, stosuje różne przekształcenia i funkcje do tych danych wejściowych, a na koniec łączy informacje, aby wytworzyć dane wyjściowe. Jest to model liniowy używany do klasyfikacji binarnej.

  1. Jaka jest funkcja wag i odchylenia?

Aby aktywować węzeł w sieci neuronowej, musimy użyć następującego wzoru:

output = aktywacja_funkcja(kropka_produkt(wagi, dane wejściowe)+ odchylenie)

W tym przypadku wagi określają nachylenie linii klasyfikatora, podczas gdy odchylenie umożliwia funkcji aktywacji przesunięcie nachylenia w lewo lub w prawo. Generalnie bias jest traktowany jako waga wejściowa o wartości x0.

  1. Jaka jest rola funkcji aktywacji?

Funkcja aktywacji służy do wtrącania nieliniowości do sieci neuronowej, aby pomóc jej w nauce złożonych zadań. Wyzwala lub aktywuje neuron, obliczając sumę wag i dodając do niego dalsze obciążenie. Bez funkcji aktywacji sieć neuronowa będzie w stanie wykonać tylko funkcję liniową, czyli liniową kombinację swoich danych wejściowych.

  1. Co to jest zejście gradientowe?

Gradient Descent to algorytm optymalizacji, który służy do minimalizacji funkcji kosztu określonego parametru poprzez ciągłe poruszanie się w kierunku najbardziej stromego spadku określonego przez ujemną wartość gradientu.

  1. Co to jest funkcja kosztów?

Funkcja kosztu (nazywana również „stratą”) jest miarą dokładności sieci neuronowej w odniesieniu do określonej próby szkoleniowej i oczekiwanego wyniku. Określa, jak dobrze sieć neuronowa działa jako całość. W przypadku sieci neuronowych cel zawsze pozostaje ten sam – zminimalizowanie funkcji kosztów lub błędów.

  1. Co to jest propagacja wsteczna?

Propagacja wsteczna to algorytm uczący używany w wielowarstwowych sieciach neuronowych w celu zwiększenia wydajności sieci. Metoda wymaga przeniesienia błędu z jednego końca sieci na wszystkie wagi zawarte w sieci, ułatwiając w ten sposób wydajne obliczenie gradientu i minimalizując błąd. Oto jak to działa:

  • Po pierwsze, dane uczące są przesuwane do przodu w celu wytworzenia danych wyjściowych.
  • Użyj wartości docelowej i wartości wyjściowej, aby obliczyć pochodną błędu w odniesieniu do aktywacji wyjścia.
  • Przeprowadź wsteczną propagację danych dla wszystkich ukrytych warstw i zaktualizuj parametry (wagi i odchylenia). Kontynuuj, aż błąd zostanie zredukowany do minimum.
  • Teraz możesz wprowadzać dane wejściowe do swojego modelu, który może dokładniej przewidywać dane wyjściowe.
  1. Co to jest normalizacja danych? Dlaczego to jest ważne?

Normalizacja danych jest etapem przetwarzania wstępnego podczas wstecznej propagacji. Ma na celu wyeliminowanie lub zminimalizowanie nadmiarowości danych. Normalizacja danych pomaga przeskalować wartości tak, aby mieściły się w określonym zakresie, aby uzyskać lepszą zbieżność propagacji wstecznej — średnia każdego punktu danych jest odejmowana i dzielona przez jego odchylenie standardowe.

  1. Jak zainicjować wagi w sieci neuronowej?

Zasadniczo istnieją dwa sposoby inicjowania wagi –

  • Zainicjuj wagi do zera (0): W ten sposób twój model stanie się podobny do modelu liniowego, co oznacza, że ​​wszystkie neurony i wszystkie warstwy będą wykonywać tę samą funkcję, utrudniając w ten sposób produktywność głębokiej sieci.
  • Zainicjuj wagi losowo: W tej metodzie przypisujesz wagi losowo, inicjując je bardzo blisko 0. Ponieważ różne neurony wykonują różne obliczenia, ta metoda zapewnia lepszą dokładność.
  1. Czym są hiperparametry?

Hiperparametry to zmienne, których wartości są ustawiane przed procesem uczenia. Określają zarówno strukturę sieci, jak i sposób jej szkolenia.

Istnieje wiele hiperparametrów używanych w sieciach neuronowych, takich jak funkcja aktywacji, szybkość uczenia się, liczba ukrytych warstw, inicjalizacja wagi sieci, rozmiar wsadu i pęd, żeby wymienić tylko kilka.

  1. Co to jest CNN? Jakie są jego różne warstwy?

CNN lub Convolutional Neural Network to rodzaj głębokich sieci neuronowych używanych głównie do analizy reprezentacji wizualnych. Sieci te używają wielu wielowarstwowych perceptronów, które wymagają minimalnego przetwarzania wstępnego. Podczas gdy sieci neuronowe wykorzystują wektor jako dane wejściowe, w CNN dane wejściowe to obrazy wielokanałowe.

Różne warstwy CNN są następujące:

  • Warstwa splotowa — ta warstwa wykonuje operację splotową w celu utworzenia wielu mniejszych okien obrazu w celu przeanalizowania danych.
  • Warstwa ReLU – Warstwa ta wprowadza nieliniowość do sieci. Zmienia wszystkie ujemne piksele na zero.
  • Warstwa puli — ta warstwa wykonuje operację próbkowania w dół, aby zmniejszyć wymiarowość każdej mapy obiektów.
  • W pełni połączona warstwa — ta warstwa rozpoznaje i klasyfikuje wszystkie obiekty obecne na przykładowym obrazie.

Oto 10 podstawowych pytań dotyczących głębokiego uczenia się, które prawdopodobnie zada ci osoba przeprowadzająca rozmowę kwalifikacyjną podczas rozmowy kwalifikacyjnej. Jednak samo czytanie pytań na rozmowie kwalifikacyjnej nie wystarczy, aby złamać rozmowę kwalifikacyjną – musisz posiadać dogłębną wiedzę w tej dziedzinie. Najlepszym sposobem działania byłoby zapisanie się do programu certyfikacji Deep Learning i Machine Learning. Te programy mają na celu nauczenie Cię az zarówno ML, jak i DL.

Jakie umiejętności są wymagane, aby dobrze radzić sobie jako inżynier głębokiego uczenia się?

Inżynier głębokiego uczenia się musi mieć doskonałe umiejętności inżynieryjne, techniczne i analityczne, jak sugeruje to określenie. Znajomość i wykorzystywanie wielu architektur sieci neuronowych, takich jak w pełni połączone sieci, CNN i RNN, a także zrozumienie i korzystanie z wielu projektów sieci neuronowych, takich jak w pełni połączone sieci, CNN i RNN, są umiejętnościami wymaganymi na stanowisku inżyniera głębokiego uczenia. Inżynier głębokiego uczenia się jest odpowiedzialny za zadania wdrożeniowe i konwersję kodu, dlatego musi mieć silne umiejętności programistyczne i dogłębne zrozumienie kodu prototypowego i produkcyjnego. Każda kariera bez wątpienia wymaga doskonałych umiejętności interpersonalnych. W rezultacie powinieneś być płynnym komunikatorem ze swoimi klientami i współpracownikami.

Jakich narzędzi potrzebuje inżynier głębokiego uczenia się?

Inżynier głębokiego uczenia się jest odpowiedzialny za wykonanie podzadań, takich jak wdrażanie, inżynieria danych i modelowanie. Wykorzystują kilka narzędzi, aby uprościć swoją pracę i zaoszczędzić czas. Python i powiązane pakiety, takie jak Numpy, Pandas, Pytorch i inne, służą do modelowania podzadań. Do konwersji kodów używane są różne języki programowania, takie jak Java, C i C++, w zależności od wymagań. Obowiązki wdrożeniowe są realizowane przy użyciu różnych technologii chmurowych, w tym AWS, GCP i Azure. Platformy takie jak Jupyter Notebook, Sublime i JIRA są wykorzystywane do utrzymania współpracy i usprawnienia przepływu pracy.

Czy matematyka musi dobrze radzić sobie w dziedzinie głębokiego uczenia się?

Dziedzina głębokiego uczenia wymaga umiejętności rozwiązywania problemów analitycznych i technicznych. Nie musisz być czarodziejem matematyki, aby dobrze radzić sobie w tej dziedzinie, ale zdecydowanie powinieneś znać podstawowe pojęcia algebry, rachunku różniczkowego, statystyki i prawdopodobieństwa. Znajomość podstawowych pojęć pomogłaby ci tylko ułatwić pracę.