Samouczek głębokiego uczenia się dla początkujących: podstawy sieci neuronowych

⚡ Inteligentne podsumowanie

Głębokie uczenie to dziedzina uczenia maszynowego oparta na sztucznych sieciach neuronowych, które składają się z wielu ukrytych warstw, dzięki czemu każda warstwa uczy się bogatszej cechy danych niż warstwa poprzednia.

  • 🔘 Architektura warstwowa: Sieć jest głęboka, składa się z warstwy wejściowej, dwóch lub więcej warstw ukrytych oraz warstwy wyjściowej.
  • Signal siła: Waga, odchylenie i funkcja aktywacji decydują o tym, co każdy neuron przekazuje do następnej warstwy.
  • Pętla dwufazowa: Nieliniowa transformacja tworzy model, który następnie jest udoskonalany za pomocą metody opartej na pochodnych. Proces ten jest powtarzany aż do osiągnięcia akceptowalnej dokładności.
  • 🧪 Cztery architektury: Sieci sprzężenia zwrotnego, sieci rekurencyjne, sieci splotowe i agenci uczenia się przez wzmacnianie.
  • 🛠️. Gdzie się to opłaca: Ocena zdolności kredytowej w finansach, selekcja kandydatów w dziale HR, analiza nastrojów w call center w marketingu.
  • ⚙️ Prawdziwe ograniczenia: Koszt etykietowania, zapotrzebowanie na ogromne zbiory danych i modele, których nie da się wyjaśnić prostym językiem.

Samouczek głębokiego uczenia się dla początkujących: podstawy sieci neuronowych

Co to jest uczenie głębokie?

Uczenie głębokie to oprogramowanie komputerowe, które naśladuje sieć neuronów w mózgu. Jest to podzbiór uczenie maszynowe Oparte na sztucznych sieciach neuronowych z uczeniem reprezentacji. Nazywa się je głębokim uczeniem, ponieważ wykorzystuje głębokie sieci neuronowe. To uczenie może być nadzorowany, półnadzorowane lub bez nadzoru.

Algorytmy głębokiego uczenia się są konstruowane z połączonych warstw, jak pokazano na poniższym schemacie.

  • Pierwsza warstwa nazywana jest warstwą wejściową
  • Ostatnia warstwa nazywana jest warstwą wyjściową
  • Wszystkie warstwy pośrednie nazywane są warstwami ukrytymi. Słowo „głęboka” oznacza, że ​​sieć łączy neurony na przestrzeni więcej niż dwóch warstw.
Diagram głębokiej sieci neuronowej przedstawiający warstwę wejściową, dwie ukryte warstwy neuronów i warstwę wyjściową
Warstwa wejściowa, warstwy ukryte i warstwa wyjściowa, z połączeniami biegnącymi między poszczególnymi neuronami

Każda ukryta warstwa składa się z neuronów. Neurony są ze sobą połączone. Neuron przetwarza otrzymany sygnał wejściowy, a następnie przekazuje wynik do warstwy nad nim. Siła sygnału przekazywanego do neuronu w kolejnej warstwie zależy od wagi, odchylenia i funkcji aktywacji.

Sieć przetwarza duże ilości danych wejściowych i wykonuje na nich operacje za pośrednictwem wielu warstw, dzięki czemu może uczyć się coraz bardziej złożonych cech danych na każdej warstwie.

Proces głębokiego uczenia się

Głęboka sieć neuronowa zapewnia najwyższą dokładność w wielu zadaniach, od wykrywania obiektów po rozpoznawanie mowy. Takie sieci mogą uczyć się automatycznie, bez predefiniowanej wiedzy, jawnie zakodowanej przez programistów. W praktyce projekt głębokiego uczenia przechodzi przez pięć etapów:

  • Zrozum problem
  • Zidentyfikuj dane
  • Wybierz algorytm głębokiego uczenia
  • Trenuj model
  • Przetestuj model
Pięcioetapowy proces głębokiego uczenia się od zrozumienia problemu do przetestowania modelu

Pięć etapów projektu głębokiego uczenia się, od definicji problemu do testowania

Aby zrozumieć ideę głębokiego uczenia się, wyobraź sobie rodzinę z niemowlęciem i rodzicami. Maluch wskazuje na przedmioty małym palcem i zawsze mówi „kot”. Ponieważ rodzice troszczą się o jego edukację, powtarzają mu „Tak, to jest kot” lub „Nie, to nie jest kot”. Niemowlę uparcie wskazuje na przedmioty, ale coraz precyzyjniej mówi „koty”. W głębi duszy nie wie, dlaczego potrafi powiedzieć, że to kot, a nie nie. Po prostu nauczył się hierarchicznie porządkować cechy kota, patrząc na zwierzaka jako całość, a następnie skupiając się na szczegółach, takich jak ogon czy nos, zanim podejmie decyzję.

Sieć neuronowa działa w podobny sposób. Każda warstwa reprezentuje głębszy poziom wiedzy, czyli hierarchię wiedzy. Sieć neuronowa z czterema warstwami będzie uczyć się bardziej złożonych cech niż sieć z dwiema warstwami.

Nauka przebiega w dwóch fazach:

  • Pierwsza faza: stosując nieliniową transformację danych wejściowych i tworząc model statystyczny jako dane wyjściowe.
  • Druga faza: ulepszanie modelu za pomocą metody matematycznej opartej na pochodnych, czyli jak propagacja wsteczna dostosowuje ciężary.

Sieć neuronowa powtarza te dwie fazy setki, a nawet tysiące razy, aż osiągnie akceptowalny poziom dokładności. Każde powtórzenie tych dwóch faz nazywa się iteracją.

Aby podać przykład głębokiego uczenia, spójrz na poniższą animację, w której model próbuje nauczyć się tańczyć. Po 10 minutach treningu model nie potrafi tańczyć, a jego wynik wygląda jak bazgroły.

Animowana postać poruszająca się chaotycznie po dziesięciu minutach głębokiego treningu uczenia się

Po 48 godzinach nauki komputer opanował sztukę tańca, co pokazuje druga animacja.

Animowana postać płynnie tańczy po czterdziestu ośmiu godzinach głębokiego treningu uczenia się

Klasyfikacja sieci neuronowych

Sieci są najpierw grupowane według liczby warstw ukrytych.

Płytka sieć neuronowa: Płytka sieć neuronowa ma tylko jedną ukrytą warstwę między wejściem i wyjściem.

Głęboka sieć neuronowa: Głębokie sieci neuronowe mają więcej niż jedną warstwę ukrytą. Na przykład model GoogLeNet do rozpoznawania obrazu liczy 22 warstwy.

Obecnie głębokie uczenie się pojawia się w samochodach autonomicznych, telefonach komórkowych, Google wyszukiwarka, wykrywanie oszustw i telewizja.

Rodzaje sieci głębokiego uczenia się

Kilka architektur stało się standardem, każda ukształtowana przez rodzaj przetwarzanych danych. Poniższy wykres, opublikowany przez Asimov Institute, przedstawia szerszą rodzinę architektur.

Wykres architektur sieci neuronowych obejmujących perceptron, sieć z wyprzedzeniem, RBF, RNN, LSTM, GRU i autoenkodery

Tabela architektur sieci neuronowych, od pojedynczego perceptronu do wariantów LSTM, GRU i autoenkoderów

Sieci neuronowe ze sprzężeniem zwrotnym

To najprostszy typ sztucznej sieci neuronowej. W tym typie architektury informacje płyną tylko w jednym kierunku – do przodu. Oznacza to, że przepływ informacji rozpoczyna się w warstwie wejściowej, przechodzi do warstw „ukrytych” i kończy się na warstwie wyjściowej. Sieć nie posiada pętli, a informacje zatrzymują się na warstwie wyjściowej.

Rekurencyjne sieci neuronowe (RNN)

An RNN to wielowarstwowa sieć neuronowa, która może przechowywać informacje w węzłach kontekstowych, umożliwiając jej uczenie się sekwencji danych i generowanie liczb lub innych sekwencji. Mówiąc prościej, jest to sztuczna sieć neuronowa, której połączenia między neuronami obejmują pętle. Sieci neuronowe (RNN) doskonale nadają się do przetwarzania sekwencji danych wejściowych, ponieważ dane wyjściowe są przekazywane z powrotem do sieci w postaci pamięci.

Schemat blokowy rekurencyjnej sieci neuronowej z wyjściem zapętlonym z powrotem do sieci jako pamięć

Sieć RNN wysyła swoje dane wyjściowe z powrotem do siebie, co zapewnia sieci pamięć

Na przykład, jeśli zadaniem jest przewidzenie następnego słowa w zdaniu „Czy chcesz …?”, sieć postępuje w następujący sposób:

  • Neurony RNN odbierają sygnał wskazujący na początek zdania.
  • Sieć otrzymuje słowo „Do” jako sygnał wejściowy i generuje wektor liczb. Wektor ten jest przekazywany z powrotem do neuronu, aby zapewnić sieci pamięć. Ten etap pomaga sieci zapamiętać, że otrzymała słowo „Do” i że otrzymała je jako pierwsze.
  • Sieć postępuje podobnie w przypadku kolejnych słów. Bierze słowo „ty”, a następnie „chcesz”. Stan neuronów jest aktualizowany po odebraniu każdego słowa.
  • Ostatni etap następuje po otrzymaniu słowa „a”. Sieć neuronowa oblicza prawdopodobieństwo dla każdego angielskiego słowa, które mogłoby uzupełnić zdanie. Dobrze wyszkolona sieć neuronowa prawdopodobnie przypisuje wysokie prawdopodobieństwo słowom „kawiarnia”, „napój”, „burger” i podobnym.

Typowe zastosowania RNN

  • Pomóż inwestorom zajmującym się obrotem papierami wartościowymi w generowaniu raportów analitycznych
  • Wykrywanie nieprawidłowości w sprawozdaniach finansowych
  • Wykrywaj oszukańcze transakcje kartą kredytową
  • Podaj podpisy do obrazów
  • Zasilanie nasze chatboty
  • Typowe zastosowanie RNN ma miejsce, gdy praktycy pracują z szeregami czasowymi lub sekwencjami, na przykład nagraniami audio lub tekstem.

Konwolucyjne sieci neuronowe (CNN)

A CNN jest wielowarstwową siecią neuronową o unikalnej architekturze, zaprojektowaną dotracCoraz bardziej złożone cechy danych na każdej warstwie służą do określania wyników. Sieci neuronowe (CNN) doskonale nadają się do zadań percepcyjnych.

Architektura CNN z etapami uczenia się funkcji splotu, ReLU i łączenia, po których następuje spłaszczenie, pełne połączenie i klasyfikacja softmax

Uczenie się cech za pomocą splotu, ReLU i grupowania; klasyfikacja za pomocą spłaszczania, w pełni połączonego i softmax

CNN jest najczęściej używany w przypadku niestrukturalnego zestawu danych, takiego jak obrazy, a praktycy muszą np.tracinformacji z niego.

Na przykład, jeśli zadaniem jest przewidzenie podpisu obrazu:

  • Sieć CNN odbiera obraz, powiedzmy, kota. W terminologii informatycznej obraz ten to zbiór pikseli, zazwyczaj składający się z jednej warstwy w przypadku obrazu w skali szarości i trzech warstw w przypadku obrazu kolorowego.
  • Na etapie uczenia się cech, czyli w warstwach ukrytych, sieć identyfikuje unikalne cechy, na przykład ogon kota lub ucho.
  • Gdy sieć nauczy się rozpoznawać obraz, może podać prawdopodobieństwo dla każdej znanej jej klasy obrazów. Etykieta o najwyższym prawdopodobieństwie staje się predykcją sieci.

Uczenie się ze wzmocnieniem

Uczenie się przez wzmocnienie to dziedzina uczenia maszynowego, w której systemy są trenowane poprzez otrzymywanie wirtualnych „nagród” lub „kar”, co w istocie oznacza uczenie się metodą prób i błędów. Jest to paradygmat uczenia się, a nie struktura sieciowa, ale jej współczesne algorytmy oparte są na głębokich sieciach. GoogleFirma DeepMind wykorzystała uczenie maszynowe, aby pokonać mistrza w grze Go. Uczenie maszynowe jest również wykorzystywane w grach wideo do poprawy wrażeń z rozgrywki poprzez dostarczanie inteligentniejszych botów.

Do najsłynniejszych algorytmów należą:

  • Q-uczenie się
  • Głęboka sieć Q
  • Stan-Działanie-Nagroda-Stan-Działanie (SARSA)
  • Głęboko deterministyczny gradient polityki (DDPG)

Poniższa tabela podsumowuje, kiedy pasuje każda architektura.

Architektura Dane, które pasują Cecha wyróżniająca Typowe zadanie
Przekazywanie do przodu Dane wejściowe w postaci tabeli o stałej długości Brak pętli; informacja przemieszcza się tylko do przodu Punktacja i prosta klasyfikacja
Nawracający (RNN) Sekwencje i szeregi czasowe Węzły kontekstowe zapewniają mu pamięć Przewidywanie tekstu, dźwięku, prognozowanie
Splotowy (CNN) Niestrukturyzowane dane w formie siatki Splot i łączenie extracfunkcje t Klasyfikacja i podpisy obrazów
Uczenie się przez wzmocnienie Środowisko, a nie zbiór danych Uczy się z nagród i kar Agenci gier, robotyka, sterowanie

Przykłady zastosowań głębokiego uczenia się

Tego typu architektury są już stosowane w produkcji w bardzo różnych branżach:

SI w finansach

Sektor technologii finansowych już zaczął wykorzystywać sztuczną inteligencję (AI), aby oszczędzać czas, redukować koszty i zwiększać wartość. Głębokie uczenie zmienia branżę pożyczkową dzięki solidniejszej ocenie zdolności kredytowej. Decydenci kredytowi mogą wykorzystywać sztuczną inteligencję do rozpatrywania wniosków kredytowych, aby szybciej i dokładniej oceniać ryzyko, wykorzystując sztuczną inteligencję do uwzględniania charakteru i zdolności wnioskodawców.

Underwrite to firma technologiczna z branży finansowej, która dostarcza rozwiązania oparte na sztucznej inteligencji dla decydentów kredytowych. Underwrite.ai wykorzystuje sztuczną inteligencję do wykrywania, który wnioskodawca ma większe szanse na spłatę pożyczki. Firma twierdzi, że podejście to jest skuteczniejsze niż tradycyjne karty punktowe.

AI w HR

Under Armour, firma produkująca odzież sportową, revolutZjonizował proces rekrutacji i zmodernizował doświadczenie kandydatów dzięki sztucznej inteligencji. Under Armour odnotował gwałtowny wzrost zainteresowania w 2012 roku i otrzymywał średnio ponad 30 000 aplikacji miesięcznie. Przeczytanie wszystkich tych aplikacji, a następnie rozpoczęcie procesu selekcji i rozmów kwalifikacyjnych zajmowało zbyt dużo czasu. Długi proces rekrutacji i wdrażania pracowników wpłynął na zdolność Under Armour do zapewnienia pełnej obsady, gotowości i gotowości do pracy w sklepach detalicznych.

W tamtym czasie firma Under Armour dysponowała całą niezbędną technologią HR, taką jak rozwiązania transakcyjne do pozyskiwania, aplikowania, tracKing i onboarding, ale same te narzędzia nie wystarczyły. Under Armour wybrał HireVue, dostawcę rozwiązań HR opartych na sztucznej inteligencji, zarówno do przeprowadzania rozmów kwalifikacyjnych na żądanie, jak i na żywo. Rezultaty były imponujące: firma odnotowała skrócenie czasu rekrutacji o 35% przy jednoczesnym podniesieniu jakości zatrudnianego personelu.

AI w marketingu

Sztuczna inteligencja to cenne narzędzie w zarządzaniu obsługą klienta i wyzwaniach personalizacji. Lepsze rozpoznawanie mowy w zarządzaniu call center i kierowaniu połączeń, dzięki zastosowaniu technik sztucznej inteligencji, zapewnia klientom bardziej płynne doświadczenia.

Na przykład, głęboka analiza audio z wykorzystaniem uczenia maszynowego pozwala systemom ocenić ton emocjonalny klienta. Jeśli klient źle reaguje na bot AI, system może przekierować rozmowę do prawdziwego, ludzkiego operatora, który przejmuje kontrolę nad problemem.

Oprócz trzech powyższych przykładów głębokiego uczenia, AI jest szeroko stosowana w innych sektorach i gałęziach przemysłu.

Dlaczego głębokie uczenie się jest ważne?

Głębokie uczenie to potężne narzędzie do przekształcania prognoz w praktyczne rezultaty. Głębokie uczenie doskonale sprawdza się w odkrywaniu wzorców i predykcji opartej na wiedzy. Big Data To paliwo dla głębokiego uczenia się. Połączenie obu tych aspektów pozwala organizacji osiągać rezultaty w zakresie produktywności, sprzedaży, zarządzania i innowacyjności, które wcześniej były poza jej zasięgiem.

Głębokie uczenie może również przewyższać tradycyjne metody. W szczególności w przypadku problemów z percepcją, sieci głębokie od lat przodują: klasyfikacja obrazów, rozpoznawanie mowy i rozpoznawanie twarzy są zdominowane przez architektury głębokie, a modele rozpoznawania twarzy osiągają dokładność bliską 99% w standardowych, publicznych testach porównawczych. Korzyści wynikają z faktu, że sieć uczy się własnych funkcji, zamiast polegać na tych stworzonych ręcznie.

Ograniczenia głębokiego uczenia się

Za te wyniki trzeba słono zapłacić.

Etykietowanie danych

Większość obecnych modeli sztucznej inteligencji jest trenowana metodą uczenia nadzorowanego. Oznacza to, że ludzie muszą etykietować i kategoryzować dane bazowe, co może być sporym i podatnym na błędy zadaniem. Na przykład firmy opracowująping Technologie samochodów autonomicznych wymagają zatrudnienia setek osób, które ręcznie wprowadzają adnotacje do godzin nagrań wideo z prototypowych pojazdów, aby szkolić te systemy.

Zdobądź ogromne zbiory danych szkoleniowych

Wykazano, że techniki głębokiego uczenia, takie jak CNN, mogą w niektórych przypadkach imitować wiedzę ekspertów z medycyny i innych dziedzin. Ta fala uczenia maszynowego wymaga jednak zestawów danych treningowych, które są nie tylko oznakowane, ale także wystarczająco szerokie i uniwersalne.

Metody głębokiego uczenia wymagają tysięcy obserwacji, aby modele mogły osiągnąć względną skuteczność w zadaniach klasyfikacyjnych, a w niektórych przypadkach milionów, aby mogły działać na poziomie człowieka. Nic dziwnego, że głębokie uczenie jest najczęściej stosowane w gigantycznych firmach technologicznych, które wykorzystują duże zbiory danych do gromadzenia petabajtów przykładów. Ta skala pozwala im tworzyć imponujące i niezwykle dokładne modele głębokiego uczenia.

Wyjaśnij problem

Duże i złożone modele mogą być trudne do wyjaśnienia w kategoriach ludzkich, na przykład dlaczego podjęto daną decyzję. To jeden z powodów, dla których akceptacja niektórych AI narzędzia są powolne w obszarach zastosowań, w których możliwość interpretacji jest przydatna lub wręcz wymagana.

Ponadto w miarę rozszerzania się zastosowania sztucznej inteligencji wymogi regulacyjne mogą również powodować potrzebę opracowania bardziej wyjaśnialnych modeli sztucznej inteligencji.

FAQ

Klasyczny uczenie maszynowe Wymaga funkcji projektowanych ręcznie i dobrze działa na małych danych tabelarycznych. Głębokie uczenie uczy się funkcji samodzielnie z surowych, nieustrukturyzowanych danych, ale wymaga znacznie większej liczby przykładów i obliczeń.

Wprowadza nieliniowość, dzięki czemu warstwy ułożone w stos mogą modelować zakrzywione granice decyzyjne zamiast zapadać się w jeden liniowy krok. ReLU jest standardowym ustawieniem domyślnym w warstwach ukrytych; sigmoid i softmax kształtują wyjście.

Propagacja wsteczna mierzy, jak bardzo każda waga przyczyniła się do błędu, a następnie przesuwa ten gradient wstecz przez warstwy, tak aby każda waga była przesuwana w kierunku, który zmniejsza stratę. To druga faza w działaniu.

Epoka to jeden pełny przebieg danych treningowych. Rozmiar partii to liczba próbek, jaką sieć widzi przed aktualizacją wag. Szybkość uczenia się kontroluje, jak duża jest każda z tych aktualizacji wag.

Transformatory, wprowadzone w 2017 roku, zastępują rekurencję uwagą, pozwalając każdemu tokenowi sprawdzać wszystkie inne tokeny jednocześnie. Dzięki temu, że działa to równolegle, skalują się znacznie lepiej niż sieci neuronowe (RNN) i obecnie dominują w pracach nad językiem i wizją.

Trening polega głównie na mnożeniu dużych macierzy, które GPU wykonują równolegle, z bardzo dużą przepustowością pamięci. Przeniesienie sieci neuronowej (CNN) lub transformatora z procesora CPU do pojedynczego trenującego GPU zazwyczaj daje kilkukrotny wzrost przyspieszenia.

Wyszukiwanie architektury neuronowej i narzędzia AutoML testują liczbę warstw, szerokości i hiperparametry, a następnie zachowują kandydata, który najlepiej się sprawdza. Znacznie ograniczają ręczne sprawdzanie, choć cel i budżet obliczeniowy nadal ustala osoba.

Drugi pilot GitHub warcaby TensorFlow i PyTorPętle treningowe ch z krótkiego polecenia. Sprawdź samodzielnie kształty wejściowe, funkcję straty i ziarno, ponieważ wygenerowany szablon często zawiera błędy.

Podsumuj ten post następująco: