AI 101

Co to jest głębokie uczenie?

mm

Głębokie uczenie to jeden z najbardziej wpływowych i najszybciej rozwijających się obszarów w sztucznej inteligencji. Jednak uzyskanie intuicyjnego zrozumienia głębokiego uczenia może być trudne, ponieważ termin głębokie uczenie obejmuje wiele różnych algorytmów i technik. Głębokie uczenie to także poddziedzina ogólnego uczenia maszynowego, więc ważne jest zrozumienie, co to jest uczenie maszynowe, aby zrozumieć głębokie uczenie.

Co to jest uczenie maszynowe?

Głębokie uczenie to rozszerzenie niektórych pojęć pochodzących z uczenia maszynowego, więc z tego powodu, wyjaśnimy, co to jest uczenie maszynowe.

Prosto mówiąc, uczenie maszynowe to metoda umożliwiająca komputerom wykonywanie określonych zadań bez jawnej implementacji każdej linii algorytmu użytego do wykonania tych zadań. Istnieje wiele różnych algorytmów uczenia maszynowego, ale jednym z najczęściej używanych algorytmów jest wielowarstwowy perceptron. Wielowarstwowy perceptron nazywany jest również siecią neuronową i składa się z serii połączonych ze sobą węzłów/neuronów. Istnieją trzy różne warstwy w wielowarstwowym perceptronie: warstwa wejściowa, warstwa ukryta i warstwa wyjściowa.

Warstwa wejściowa pobiera dane do sieci, gdzie są one modyfikowane przez węzły w warstwie środkowej/ukrytej. Węzły w warstwie ukrytej są funkcjami matematycznymi, które mogą modyfikować dane pochodzące z warstwy wejściowej, wyodrębniając istotne wzorce z danych wejściowych. To jest sposób, w jaki sieć neuronowa “uczy się”. Sieci neuronowe otrzymały swoją nazwę od faktu, że są inspirowane strukturą i funkcją ludzkiego mózgu.

Połączenia między węzłami w sieci mają wartości zwane wagami. Te wartości są podstawowo założeniami dotyczącymi tego, jak dane w jednej warstwie są powiązane z danymi w następnej warstwie. Podczas szkolenia sieci, wagi są dostosowywane, a celem jest to, aby wagi/założenia dotyczące danych ostatecznie konwergowały do wartości, które dokładnie reprezentują istotne wzorce w danych.

Funkcje aktywacyjne są obecne w węzłach sieci i te funkcje aktywacyjne transformują dane w sposób nieliniowy, umożliwiając sieci nauczenie się złożonych reprezentacji danych. Funkcje aktywacyjne mnożą wartości wejściowe przez wartości wag i dodają termin biasu.

Co to jest głębokie uczenie?

Głębokie uczenie to termin nadawany architekturom uczenia maszynowego, które łączą wiele wielowarstwowych perceptronów, tak aby nie było tylko jednej warstwy ukrytej, ale wiele warstw ukrytych. Im “głębsza” sieć neuronowa, tym bardziej złożone wzorce może nauczyć się sieć.

Głębokie sieci neuronowe składające się z neuronów są czasami nazywane sieciami w pełni połączonymi lub warstwami w pełni połączonymi, odnosząc się do faktu, że dany neuron utrzymuje połączenie z wszystkimi neuronami wokół niego. Sieci w pełni połączone mogą być łączone z innymi funkcjami uczenia maszynowego, aby tworzyć różne architektury głębokiego uczenia.

Różne typy głębokiego uczenia

Istnieje wiele architektur głębokiego uczenia używanych przez badaczy i inżynierów, a każda z tych architektur ma swój własny specjalny przypadek użycia.

Sieci neuronowe konwolucyjne

Sieci neuronowe konwolucyjne, lub CNN, to architektura sieci neuronowej najczęściej używana w tworzeniu systemów widzenia komputerowego. Struktura sieci neuronowych konwolucyjnych umożliwia im interpretację danych obrazowych, konwertując je w liczby, które sieć w pełni połączona może zinterpretować. Sieć neuronowa konwolucyjna składa się z czterech głównych składników:

  • Warstwy konwolucyjne
  • Warstwy subsampling/pooling
  • Funkcje aktywacyjne
  • Warstwy w pełni połączone

Warstwy konwolucyjne są tym, co pobiera obrazy jako dane wejściowe do sieci, analizując obrazy i pobierając wartości pikseli. Subsampling lub pooling to miejsce, w którym wartości obrazu są konwertowane/zmniejszane, aby uproszczyć reprezentację obrazu i zmniejszyć wrażliwość filtrów obrazu na szum. Funkcje aktywacyjne kontrolują, jak dane przepływają z jednej warstwy do następnej warstwy, a warstwy w pełni połączone to te, które analizują wartości reprezentujące obraz i uczą się wzorców zawartych w tych wartościach.

RNN/LSTM

Sieci neuronowe rekurencyjne, lub RNN, są popularne w zadaniach, w których kolejność danych ma znaczenie, w których sieć musi nauczyć się sekwencji danych. RNN są powszechnie stosowane w problemach takich jak przetwarzanie języka naturalnego, ponieważ kolejność słów ma znaczenie przy dekodowaniu znaczenia zdania. “Rekurencyjny” człon terminu Sieć Neuronowa Rekurencyjna pochodzi z faktu, że wyjście dla danego elementu w sekwencji zależy od poprzednich obliczeń, a także od bieżącego obliczenia. W przeciwieństwie do innych form głębokich sieci neuronowych, RNN mają “pamięć”, a informacje obliczane w różnych krokach czasowych w sekwencji są używane do obliczania wartości końcowych.

Istnieje wiele typów RNN, w tym RNN dwukierunkowe, które biorą pod uwagę przyszłe elementy w sekwencji, oprócz poprzednich elementów, przy obliczaniu wartości elementu. Innym typem RNN jest Sieć Neuronowa o krótkiej pamięci długotrwałej, lub LSTM. Sieci LSTM są typem RNN, który może radzić sobie z długimi łańcuchami danych. Zwykłe RNN mogą paść ofiarą czegoś, co nazywa się “problemem wybuchającego gradientu”. Ten problem występuje, gdy łańcuch danych wejściowych staje się niezwykle długi, ale sieci LSTM mają techniki, aby przeciwdziałać temu problemowi.

Autoenkodery

Większość architektur głębokiego uczenia wymienionych do tej pory jest stosowana w zadaniach uczenia nadzorowanego, a nie w zadaniach uczenia nienadzorowanego. Autoenkodery mogą przekształcić dane nienadzorowane w format nadzorowany, umożliwiając sieciom neuronowym używanie ich w tym problemie.

Autoenkodery są często używane do wykrywania anomalii w zbiorach danych, co jest przykładem uczenia nienadzorowanego, ponieważ natura anomalii nie jest znana. Takie przykłady wykrywania anomalii obejmują wykrywanie oszustw dla instytucji finansowych. W tym kontekście, celem autoenkodera jest określenie podstawy regularnych wzorców w danych i identyfikacja anomalii lub odchyleń.

Struktura autoenkodera jest często symetryczna, z warstwami ukrytymi ułożonymi w taki sposób, że wyjście sieci przypomina dane wejściowe. Cztery typy autoenkoderów, które są często używane, to:

  • Autoenkodery regularne/plaine
  • Autoenkodery wielowarstwowe
  • Autoenkodery konwolucyjne
  • Autoenkodery zregularizowane

Autoenkodery regularne/plaine to po prostu sieci neuronowe z jedną warstwą ukrytą, podczas gdy autoenkodery wielowarstwowe to głębokie sieci z więcej niż jedną warstwą ukrytą. Autoenkodery konwolucyjne używają warstw konwolucyjnych zamiast, lub dodatkowo do, warstw w pełni połączonych. Autoenkodery zregularizowane używają specjalnego rodzaju funkcji straty, który pozwala sieci neuronowej wykonywać bardziej złożone funkcje, funkcje inne niż tylko kopiowanie danych wejściowych do danych wyjściowych.

Sieci neuronowe przeciwstawne

Sieci neuronowe przeciwstawne (GAN) to tak naprawdę wiele głębokich sieci neuronowych zamiast jednej sieci. Dwie głębokie sieci neuronowe są szkolone jednocześnie, a ich wyjścia są podawane do drugiej sieci. Sieci są w konkurencji ze sobą, a ponieważ mają dostęp do danych wyjściowych sieci, obie sieci uczą się z tych danych i poprawiają się. Sieci są podstawowo grą fałszerstwa i wykrywania, gdzie model generatywny próbuje stworzyć nowe instancje, które oszukają model wykrywający/model dyskryminujący. GAN-y stały się popularne w dziedzinie widzenia komputerowego.

Podsumowanie głębokiego uczenia

Głębokie uczenie rozszerza zasady sieci neuronowych, aby stworzyć złożone modele, które mogą nauczyć się złożonych wzorców i uogólniać te wzorce do przyszłych zbiorów danych. Sieci neuronowe konwolucyjne są używane do interpretacji obrazów, podczas gdy RNN/LSTM są używane do interpretacji sekwencyjnych danych. Autoenkodery mogą przekształcić zadania uczenia nienadzorowanego w zadania uczenia nadzorowanego. W końcu, GAN-y to wiele sieci neuronowych, które są ze sobą sprzeczne i są szczególnie przydatne do zadań widzenia komputerowego.

Blogger i programista ze specjalnościami w Machine Learning i Deep Learning tematy. Daniel liczy, że pomoże innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.