Uczenie maszynowe a uczenie głębokie


11

Jestem trochę zdezorientowany różnicą między terminami „Machine Learning” i „Deep Learning”. Przejrzałem go i przeczytałem wiele artykułów, ale wciąż nie jest to dla mnie jasne.

Znana definicja uczenia maszynowego przez Toma Mitchella to:

Program komputerowy mówi się nauczyć z doświadczeń E w odniesieniu do pewnej klasy zadań T i zmierzyć wydajność P , jeżeli jego wydajność w zadaniach w T , mierzone przez P , poprawia z doświadczeniem E .

Jeśli wezmę problem z klasyfikacją obrazów klasyfikujący psy i koty jako moją taks T , z tej definicji rozumiem, że gdybym podał algorytmowi ML kilka zdjęć psów i kotów (doświadczenie E ), algorytm ML mógłby nauczyć się, jak rozróżnić nowy wizerunek jako psa lub kota (pod warunkiem, że miara wydajności P jest dobrze zdefiniowana).

Potem pojawia się Deep Learning. Rozumiem, że głębokie uczenie się jest częścią uczenia maszynowego i że powyższa definicja obowiązuje. Występ na zadania T poprawia z doświadczeniem E . Wszystko w porządku do tej pory.

Ten blog stwierdza, że ​​istnieje różnica między uczeniem maszynowym a uczeniem głębokim. Różnica według Adila polega na tym, że w (tradycyjnym) uczeniu maszynowym funkcje muszą być wytwarzane ręcznie, podczas gdy w uczeniu głębokim funkcje są uczone. Poniższe liczby wyjaśniają jego oświadczenie.

wprowadź opis zdjęcia tutaj

Jestem zdezorientowany faktem, że w (tradycyjnym) uczeniu maszynowym funkcje muszą być wykonane ręcznie. Z powyższej definicji Tom Mitchell, to myślę, że te funkcje zostaną wyciągnięte z doświadczeń E i wydajności P . Czego inaczej można się nauczyć w uczeniu maszynowym?

W głębokim uczeniu rozumiem, że z doświadczenia uczysz się funkcji i ich wzajemnych relacji w celu poprawy wydajności. Czy mogę dojść do wniosku, że w uczeniu maszynowym funkcje muszą być wytwarzane ręcznie, a czego się nauczyłem to połączenie funkcji? A może brakuje mi czegoś innego?


2
Jest to bardzo dobrze omówione w książce Deep Learning autorstwa Goodfellow i in. w pierwszym rozdziale (Wprowadzenie).
hbaderts

Odpowiedzi:


4

Oprócz tego, co powiedział Himanshu Rai, Głębokie uczenie się jest podpola, która wymaga użycia sieci neuronowych. Te sieci neuronowe próbują nauczyć się rozkładu leżącego u podstaw, modyfikując wagi między warstwami. Rozważmy teraz przypadek rozpoznawania obrazu za pomocą głębokiego uczenia: model sieci neuronowej jest podzielony między warstwy, warstwy te są połączone linkami zwanymi wagami, gdy rozpoczyna się proces szkolenia, warstwy te dostosowują wagi tak, aby każda warstwa próbowała wykryć jakąś cechę i pomagamy w przetwarzaniu następnej warstwy. Kluczowym punktem, na który należy zwrócić uwagę, jest to, że nie mówimy wyraźnie, aby warstwa nauczyła się rozpoznawać krawędzie, oczy, nos lub twarze. Model uczy się tego sam. W przeciwieństwie do klasycznych modeli uczenia maszynowego.


8

Jako obszar badań, głębokie uczenie się jest tak naprawdę tylko sub-dziedziną uczenia maszynowego, ponieważ uczenie maszynowe jest podobszarą sztucznej inteligencji.

1) Uczenie się funkcji bez nadzoru

Pod względem koncepcyjnym pierwszą główną różnicą między „ tradycyjnym ” (lub „ płytkim ”) uczeniem maszynowym a uczeniem głębokim jest uczenie się funkcji bez nadzoru.

Jak już wiesz, skuteczne szkolenie „ tradycyjnego ” modelu uczenia maszynowego (np. SVM, XGBoost ...) jest możliwe tylko po odpowiednim wstępnym przetwarzaniu i rozsądnym wyodrębnieniu funkcji w celu wybrania znaczących informacji z danych. Oznacza to, że dobre wektory cech zawierają cechy charakterystyczne między punktami danych o różnych etykietach i spójne między punktami danych o tej samej etykiecie. Inżynieria cech jest zatem procesem ręcznego wybierania funkcji przez ekspertów. To bardzo ważna, ale żmudna taksówka do wykonania!

Uczenie się funkcji bez nadzoru jest procesem, w którym sam model wybiera funkcje automatycznie poprzez szkolenie. Topologia sieci neuronowej zorganizowanej w połączone ze sobą warstwy ma przyjemną właściwość odwzorowania reprezentacji danych na niskim poziomie na reprezentację wyższego poziomu. Dzięki szkoleniom sieć może zatem „ zdecydować ”, która część danych ma znaczenie, a która nie. Jest to szczególnie interesujące w Computer Vision lub Natural Language Processing, gdzie trudno jest ręcznie wybrać lub zaprojektować solidne funkcje.

Uczenie się funkcji bez nadzoru, napisy: Tony Beltramelli (zdjęcia: Tony Beltramelli)

Jako przykład załóżmy, że chcemy sklasyfikować zdjęcia kotów. Za pomocą Deep Neural Net możemy wprowadzić surowe wartości pikseli, które zostaną odwzorowane na zestaw wag przez pierwszą warstwę, a następnie te wagi zostaną odwzorowane na inne wagi przez drugą warstwę, aż ostatnia warstwa pozwoli niektórym wagom być zmapowanym na liczby reprezentujące twój problem. (np. w tym przypadku prawdopodobieństwo zdjęcia zawierającego kota)

Chociaż głębokie sieci neuronowe mogą wykonywać uczenie funkcji bez nadzoru, nie przeszkadza to w samodzielnym wykonaniu inżynierii funkcji w celu lepszego przedstawienia problemu. Uczenie się funkcji bez nadzoru, ekstrakcja funkcji i inżynieria funkcji nie wykluczają się wzajemnie!

Źródła:

2) Rozdzielalność liniowa

Głębokie sieci neuronowe mogą rozwiązać niektóre nieliniowo rozdzielalne problemy poprzez wygięcie przestrzeni cech w taki sposób, że cechy stają się liniowo rozdzielalne. Po raz kolejny jest to możliwe dzięki topologii sieci zorganizowanej w warstwach odwzorowujących dane wejściowe na nowe reprezentacje danych.

Ukryta warstwa uczy się reprezentacji, dzięki czemu dane można rozdzielić liniowo, napisał: Christopher Olah (zdjęcia: Christopher Olah)

Źródła: http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/

3) Niezmienność statystyczna

Wreszcie, głębokie sieci neuronowe przewyższają tradycyjne algorytmy uczenia maszynowego w niektórych domenach, ponieważ niektóre architektury prezentują niezmienność statystyczną (np. Niezmienność statystyczną przestrzenną z konwolucyjnymi sieciami neuronowymi i niezmienność statystyczną czasową z nawracającymi sieciami neuronowymi)

Sprawdź ten film Udacity, aby uzyskać więcej informacji: https://www.youtube.com/watch?v=5PH2Vot-tD4


4

Zainspirowany przez Einsteina: „Jeśli nie potrafisz wyjaśnić tego sześciolatkowi, sam tego nie rozumiesz”.

Wszystkie powyższe odpowiedzi są bardzo dobrze wyjaśnione, ale jeśli ktoś szuka łatwej do zapamiętania, abstrakcyjnej różnicy, oto najlepsza, jaką znam:

Kluczową różnicą jest to, że uczenie maszynowe przetwarza tylko dane, podczas gdy głębokie uczenie się może generować i ulepszać dane. Jest nie tylko predykcyjny, ale także generatywny.

Źródło. Oczywiście jest o wiele więcej, ale dla początkujących może być zbyt mylące.


-3

Dobra, pomyśl o tym w ten sposób. W algorytmach uczenia maszynowego, takich jak regresja liniowa lub losowy las, dajesz algorytmom zestaw funkcji i cel, a następnie próbuje zminimalizować funkcję kosztu, więc nie, nie uczy się żadnych nowych funkcji, po prostu uczy się wag. Teraz, gdy dochodzisz do głębokiego uczenia się, masz co najmniej jedną (prawie zawsze więcej) ukrytą warstwę z ustaloną liczbą jednostek, o tych cechach się mówi. Algorytm głębokiego uczenia się nie tylko uczy się zestawów wag, w tym procesie uczy się również wartości ukrytych jednostek, które są złożonymi cechami wysokiego poziomu trywialnych danych, które podałeś. Dlatego podczas uczenia się waniliowego uczenia maszynowego wiele wiedzy leży w umiejętności inżynierii funkcji, ponieważ algorytm sam się nie uczy. Mam nadzieję, że odpowiedziałem na twoje pytanie.


Jeszcze jedno pytanie: na przykład w przypadku CNN, czy funkcje (lub filtry) nie są tym samym co wagi?
user2835098,

Nie, są to wagi dla warstwy splotu, ale iloczyn uzyskany z splotu, tj. Mapy cech, są cechami.
Himanshu Rai,

Nie zgadzam się. Ukryte zmienne są również obecne w losowych algorytmach leśnych i wzmacniających. Nadal opracowujesz funkcje głębokiego uczenia się. Jak obszar kadrowania w jednym z najlepszych algorytmów rozpoznawania obrazów w 2017 roku
keiv.fly
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.