Dlaczego społeczności NLP i Machine Learning są zainteresowane głębokim uczeniem się?

24

Mam nadzieję, że możesz mi pomóc, ponieważ mam kilka pytań na ten temat. Jestem nowy w dziedzinie głębokiego uczenia się i chociaż przeprowadziłem kilka samouczków, nie mogę nawiązywać ani rozróżniać pojęć.

użytkownik3352632
źródło
8
Zasadniczo dlatego, że zapewniają najnowocześniejsze wyniki i eliminują potrzebę inżynierii funkcji.
Emre,
2
Sugerowałbym, aby nie używać NLP i ML razem w takim kontekście, jak gdyby były to porównywalne podmioty. Są to IMHO dwa wyraźnie odrębne pola. Pomimo faktu, że NLP wykorzystuje wiele podejść, metod, algorytmów i narzędzi ML, NLP jest polem stosowanym, podczas gdy ML jest (bardziej) ogólna.
Aleksandr Blekh

Odpowiedzi:

27

Dlaczego warto korzystać z głębokich sieci?

Spróbujmy najpierw rozwiązać bardzo proste zadanie klasyfikacyjne. Załóżmy, że moderujesz forum internetowe, które czasami jest zalewane wiadomościami spamowymi. Wiadomości te są łatwe do zidentyfikowania - najczęściej zawierają określone słowa, takie jak „kup”, „pornografia” itp. Oraz adres URL zewnętrznych zasobów. Chcesz utworzyć filtr, który będzie ostrzegał o takich podejrzanych wiadomościach. Okazuje się to dość łatwe - dostajesz listę funkcji (np. Listę podejrzanych słów i obecność adresu URL) i trenujesz prostą regresję logistyczną (aka perceptron), tj. Model taki jak:

g(w0 + w1*x1 + w2*x2 + ... + wnxn)

gdzie x1..xnsą twoje cechy (albo obecność określonego słowa lub URL), w0..wn- współczynniki nauczyć i g()to logistyczna funkcja , aby rezultat być pomiędzy 0 a 1. Jest bardzo prosty klasyfikator, ale dla tego prostego zadania może dać bardzo dobre rezultaty, tworząc liniowa granica decyzji. Zakładając, że użyłeś tylko 2 funkcji, granica ta może wyglądać mniej więcej tak:

granica liniowa

Tutaj 2 osie reprezentują cechy (np. Liczbę wystąpień określonego słowa w wiadomości, znormalizowaną wokół zera), czerwone punkty pozostają dla spamu, a niebieskie punkty - dla normalnych wiadomości, podczas gdy czarna linia pokazuje linię podziału.

Wkrótce jednak zauważysz, że niektóre dobre wiadomości zawierają wiele słów „kup”, ale nie zawierają adresów URL ani rozszerzonej dyskusji na temat wykrywania pornografii , która w rzeczywistości nie dotyczy filmów porno. Liniowa granica decyzji po prostu nie radzi sobie z takimi sytuacjami. Zamiast tego potrzebujesz czegoś takiego:

granica nieliniowa

Ta nowa nieliniowa granica decyzyjna jest znacznie bardziej elastyczna , tzn. Może znacznie lepiej dopasować dane. Istnieje wiele sposobów na osiągnięcie tej nieliniowości - możesz użyć funkcji wielomianowych (np. x1^2) Lub ich kombinacji (np. x1*x2) Lub rzutować je na wyższy wymiar, jak w metodach jądra . Ale w sieciach neuronowych często rozwiązuje się to, łącząc perceptrony lub innymi słowy, budując perceptron wielowarstwowy. Nieliniowość wynika tutaj z funkcji logistycznej między warstwami. Im więcej warstw, tym bardziej wyrafinowane wzory mogą być pokrywane przez MLP. Pojedyncza warstwa (perceptron) może obsługiwać proste wykrywanie spamu, sieć z 2-3 warstwami może przechwytywać trudne kombinacje funkcji, a sieci 5-9 warstw, używane przez duże laboratoria badawcze i firmy takie jak Google, mogą modelować cały język lub wykrywać koty na zdjęciach.

Jest to niezbędny powód do posiadania głębokiej architektury - mogą modelować bardziej wyrafinowane wzory .

Dlaczego sieci głębokie są trudne do wyszkolenia?

Mając tylko jedną cechę i liniową granicę decyzji, w rzeczywistości wystarczy mieć tylko 2 przykłady treningu - jeden pozytywny i jeden negatywny. Z kilku funkcji i / lub nieliniowej granicy decyzji trzeba kilka rzędów więcej przykładów na pokrycie wszystkich możliwych przypadków (np nie musisz tylko znaleźć przykłady z word1, word2a word3, ale również ze wszystkich możliwych ich kombinacji). A w prawdziwym życiu musisz poradzić sobie z setkami i tysiącami funkcji (np. Słowami w języku lub pikselami na obrazie) i co najmniej kilkoma warstwami, aby mieć wystarczającą nieliniowość. Rozmiar zestawu danych, potrzebny do pełnego szkolenia takich sieci, łatwo przekracza 10 ^ 30 przykładów, co całkowicie uniemożliwia uzyskanie wystarczającej ilości danych. Innymi słowy, przy wielu cechach i wielu warstwach nasza funkcja decyzyjna staje się zbyt elastycznaaby móc się tego dokładnie nauczyć .

Istnieją jednak sposoby na przybliżenie tego . Na przykład, jeśli pracowaliśmy w ustawieniach probabilistycznych, zamiast uczenia się częstotliwości wszystkich kombinacji wszystkich funkcji moglibyśmy założyć, że są one niezależne i uczą się tylko pojedynczych częstotliwości, redukując pełny i nieograniczony klasyfikator Bayesa do Naiwnego Bayesa, a zatem wymagając wiele, znacznie mniej danych do nauki.

W sieciach neuronowych podjęto kilka prób (znaczącego) zmniejszenia złożoności (elastyczności) funkcji decyzyjnych. Na przykład sieci splotowe, szeroko stosowane w klasyfikacji obrazów, zakładają tylko lokalne połączenia między pobliskimi pikselami, a zatem próbują nauczyć się tylko kombinacji pikseli w małych „oknach” (powiedzmy 16x16 pikseli = 256 neuronów wejściowych) w przeciwieństwie do pełnych obrazów (powiedzmy 100 x 100 pikseli = 10000 neuronów wejściowych). Inne podejścia obejmują inżynierię cech, tj. Wyszukiwanie określonych odkrytych przez ludzi deskryptorów danych wejściowych.

Ręcznie odkryte funkcje są bardzo obiecujące. W przetwarzaniu języka naturalnego, na przykład, to czasami pomocne stosować specjalne słowniki (jak te zawierające określone słowa spamu) lub negację catch (na przykład „ nie dobre”). A w wizji komputerowej rzeczy takie jak deskryptory SURF lub funkcje podobne do Haara są prawie niezastąpione.

Problem z ręczną inżynierią cech polega na tym, że stworzenie dobrych deskryptorów zajmuje dosłownie lata. Ponadto funkcje te są często specyficzne

Bezobsługowe szkolenie wstępne

Okazuje się jednak, że dobre dane możemy automatycznie uzyskać bezpośrednio z danych przy użyciu takich algorytmów, jak autoencodery i ograniczone maszyny Boltzmanna . Opisałem je szczegółowo w mojej innej odpowiedzi , ale w skrócie pozwalają one znaleźć powtarzające się wzorce w danych wejściowych i przekształcić je w funkcje wyższego poziomu. Na przykład, biorąc pod uwagę tylko wartości pikseli w wierszach jako dane wejściowe, algorytmy te mogą identyfikować i przekazywać wyższe całe krawędzie, a następnie na podstawie tych krawędzi konstruować figury i tak dalej, aż do uzyskania naprawdę wysokiego poziomu deskryptorów, takich jak odmiany twarzy.

głęboka nauka

Po takiej (bez nadzoru) sieć szkolenia wstępnego jest zwykle przekształcana w MLP i wykorzystywana do normalnego nadzorowanego szkolenia. Pamiętaj, że wstępne szkolenie odbywa się warstwowo. To znacznie zmniejsza przestrzeń rozwiązania dla algorytmu uczenia się (a tym samym liczby potrzebnych przykładów szkolenia), ponieważ musi on tylko uczyć się parametrów wewnątrz każdej warstwy, nie biorąc pod uwagę innych warstw.

I poza ...

Już od jakiegoś czasu istniało nienadzorowane szkolenie wstępne, ale ostatnio odkryto, że inne algorytmy usprawniają uczenie się zarówno - wraz z treningiem wstępnym, jak i bez niego. Jednym z godnych uwagi przykładów takich algorytmów jest porzucenie - prosta technika, która losowo „upuszcza” niektóre neurony podczas treningu, powoduje pewne zniekształcenia i zapobiega zbyt ścisłemu śledzeniu sieci. To wciąż gorący temat badawczy, więc pozostawiam to czytelnikowi.

przyjaciel
źródło
3
To piękne wyjaśnienie!
Dawny33
6

Najpierw musimy zrozumieć, dlaczego potrzebujemy głębokiego uczenia się. Aby zbudować modele, ML potrzebuje danych testowych z etykietami (nadzorowanych lub nienadzorowanych). W wielu domenach wraz ze wzrostem ilości danych utrzymanie danych z etykietami jest trudne. Sieci do głębokiego uczenia się nie potrzebują oznakowanych danych. Algorytmy głębokiego uczenia mogą rozpoznać etykiety. Dzięki temu eksperci w dziedzinie nie muszą wydawać etykiet na dane, co jest bardzo ważne w obszarach rozpoznawania mowy, widzenia komputerowego i rozumienia języka. Rozpoznawanie obrazów Google Cat to bardzo interesujący eksperyment. Interesujące jest także poznanie „Geoffrey hinton” profesora zatrudnionego przez Google.

http://www.wired.com/2014/01/geoffrey-hinton-deep-learning/

Możesz uzyskać więcej wglądu podczas eksploracji w tych ramach.

i5Vemula
źródło
1
Dogłębne uczenie się nie może zrozumieć etykiet (jak to może być?), Ale jedynie poznać funkcje. Nadal potrzebujesz pewnej ilości oznakowanych danych i nadzorowanego uczenia się, aby rozwiązać zadania takie jak klasyfikacja lub regresja.
zaprzyjaźnij się
0

Deep Learning istnieje już od dłuższego czasu. Maszyny CNN, RNN, Boltzmann z pewnością wyglądają jak nowe techniki, ale zostały opracowane dawno temu. Sprawdź historię głębokiego uczenia się

https://en.wikipedia.org/wiki/Deep_learning#History

Odrodzenie głębokiego uczenia się wynika z faktu, że moc obliczeniowa rosła wykładniczo od tego czasu. Dzięki laptopowi wyposażonemu w układy GPU możesz trenować złożony model głębokiego uczenia, co jest bardzo krótkim czasem w porównaniu do poprzednich dni. Modele głębokiego uczenia są również bardzo wydajne empirycznie. Obecny stan wiedzy w dziedzinie obrazów, mowy i wielu dziedzin to modele głębokiego uczenia się.

Wierzę, że z powodu tych czynników widzimy, że wiele społeczności NLP / ML przesunęło swoją uwagę na głębokie uczenie się.

SHASHANK GUPTA
źródło