stub Co to jest głębokie uczenie się? (2024) - Unite.AI
Kontakt z nami
Kurs mistrzowski AI:

AI 101

Co to jest uczenie głębokie?

mm
Zaktualizowano on

Głębokie uczenie się to jedna z najbardziej wpływowych i najszybciej rozwijających się dziedzin sztucznej inteligencji. Jednak intuicyjne zrozumienie głębokiego uczenia się może być trudne, ponieważ termin głębokie uczenie się obejmuje wiele różnych algorytmów i technik. Głębokie uczenie się jest również ogólnie poddyscypliną uczenia maszynowego, dlatego ważne jest, aby zrozumieć, czym jest uczenie maszynowe, aby zrozumieć głębokie uczenie się.

Co to jest uczenie maszynowe?

Głęboka nauka jest rozwinięciem niektórych koncepcji wywodzących się z uczenia maszynowego, dlatego poświęćmy chwilę na wyjaśnienie, czym jest uczenie maszynowe.

Mówiąc prościej, uczenie maszynowe to metoda umożliwiająca komputerom wykonywanie określonych zadań bez jawnego kodowania każdej linii algorytmów używanych do wykonania tych zadań. Istnieje wiele różnych algorytmów uczenia maszynowego, ale jednym z najczęściej używanych algorytmów jest perceptron wielowarstwowy. Perceptron wielowarstwowy, nazywany także siecią neuronową, składa się z szeregu połączonych ze sobą węzłów/neuronów. Perceptron wielowarstwowy składa się z trzech różnych warstw: warstwy wejściowej, warstwy ukrytej i warstwy wyjściowej.

Warstwa wejściowa przenosi dane do sieci, gdzie manipulują nimi węzły warstwy środkowej/ukrytej. Węzły w warstwie ukrytej to funkcje matematyczne, które mogą manipulować danymi pochodzącymi z warstwy wejściowej, wydobywając z danych wejściowych odpowiednie wzorce. W ten sposób sieć neuronowa „uczy się”. Sieci neuronowe wzięł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. Wartości te są zasadniczo założeniami dotyczącymi powiązania danych w jednej warstwie z danymi w następnej warstwie. W miarę uczenia sieci wagi są dostosowywane, a celem jest to, aby wagi/założenia dotyczące danych ostatecznie zbiegły się w wartościach, które dokładnie reprezentują znaczące wzorce w danych.

Funkcje aktywacji są obecne w węzłach sieci i te funkcje aktywacji przekształcają dane w sposób nieliniowy, umożliwiając sieci nauczenie się złożonych reprezentacji danych. Funkcje aktywacji mnożą wartości wejściowe przez wartości wag i dodają składnik odchylenia.

Co to jest uczenie głębokie?

Głębokie uczenie się to termin nadawany architekturom uczenia maszynowego, które łączą ze sobą wiele wielowarstwowych perceptronów, tak że nie istnieje tylko jedna warstwa ukryta, ale wiele warstw ukrytych. Im „głębsza” jest głęboka sieć neuronowa, tym bardziej wyrafinowanych wzorców może się ona nauczyć.

Sieci głębokiej warstwy składające się z neuronów są czasami określane jako sieci w pełni połączone lub w pełni połączone warstwy, co odnosi się do faktu, że dany neuron utrzymuje połączenie ze wszystkimi otaczającymi go neuronami. W pełni połączone sieci można łączyć z innymi funkcjami uczenia maszynowego, aby tworzyć różne architektury głębokiego uczenia się.

Różne typy głębokiego uczenia się

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

Konwolucyjne sieci neuronowe

Konwolucyjne sieci neuronowelub CNN to architektura sieci neuronowych powszechnie stosowana przy tworzeniu komputerowych systemów wizyjnych. Struktura splotowych sieci neuronowych umożliwia im interpretację danych obrazu, przekształcając je na liczby, które może zinterpretować w pełni połączona sieć. CNN składa się z czterech głównych elementów:

  • Warstwy splotowe
  • Warstwy podpróbkowania/łączenia
  • Funkcje aktywacji
  • W pełni połączone warstwy

Warstwy splotowe pobierają obrazy jako dane wejściowe do sieci, analizują obrazy i uzyskują wartości pikseli. Podpróbkowanie lub łączenie polega na konwertowaniu/zmniejszaniu wartości obrazu w celu uproszczenia reprezentacji obrazów i zmniejszenia wrażliwości filtrów obrazu na szum. Funkcje aktywacji kontrolują sposób przepływu danych z jednej warstwy do następnej, a w pełni połączone warstwy analizują wartości reprezentujące obraz i uczą się wzorców przechowywanych w tych wartościach.

RNN/LSTM

Powtarzające się sieci neuronowelub RNN są popularne w przypadku zadań, w których liczy się kolejność danych, a sieć musi poznać sekwencję danych. RNN są powszechnie stosowane do problemów takich jak przetwarzanie języka naturalnego, ponieważ kolejność słów ma znaczenie przy dekodowaniu znaczenia zdania. „Rekurencyjna” część terminu Recurrent Neural Network wynika z faktu, że wynik dla danego elementu w sekwencji zależy od poprzedniego obliczenia, a także bieżącego obliczenia. W przeciwieństwie do innych form głębokich sieci neuronowych, sieci RNN posiadają „pamięć”, a informacje obliczone w różnych krokach czasowych sekwencji służą do obliczenia wartości końcowych.

Istnieje wiele typów RNN, w tym dwukierunkowe RNN, które przy obliczaniu wartości elementu uwzględniają przyszłe pozycje w sekwencji, oprócz poprzednich pozycji. Innym rodzajem RNN jest Długa pamięć krótkotrwała lub LSTM, sieć. LSTM to typy RNN, które mogą obsługiwać długie łańcuchy danych. Zwykłe sieci RNN mogą paść ofiarą czegoś, co nazywa się „problemem eksplodującego gradientu”. Ten problem występuje, gdy łańcuch danych wejściowych staje się niezwykle długi, ale LSTM dysponują technikami pozwalającymi rozwiązać ten problem.

Autoencodery

Większość wspomnianych dotychczas architektur głębokiego uczenia się ma zastosowanie do problemów związanych z uczeniem się pod nadzorem, a nie do zadań uczenia się bez nadzoru. Autoenkodery są w stanie przekształcić nienadzorowane dane w format nadzorowany, umożliwiając wykorzystanie sieci neuronowych do rozwiązania problemu.

Autoencodery są często używane do wykrywania anomalii w zbiorach danych, co stanowi przykład uczenia się bez nadzoru, ponieważ charakter anomalii nie jest znany. Do takich przykładów wykrywania anomalii zalicza się wykrywanie oszustw w instytucjach finansowych. W tym kontekście celem autoenkodera jest określenie linii bazowej regularnych wzorców w danych i identyfikacja anomalii lub wartości odstających.

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

  • Zwykłe/zwykłe autoenkodery
  • Kodery wielowarstwowe
  • Kodery splotowe
  • Znormalizowane kodery

Zwykłe/zwykłe autoenkodery to po prostu sieci neuronowe z jedną ukrytą warstwą, podczas gdy wielowarstwowe autoenkodery to głębokie sieci z więcej niż jedną ukrytą warstwą. Autoenkodery splotowe wykorzystują warstwy splotowe zamiast lub oprócz warstw w pełni połączonych. Uregulowane autoenkodery wykorzystują specyficzny rodzaj funkcji straty, która pozwala sieci neuronowej wykonywać bardziej złożone funkcje, funkcje inne niż tylko kopiowanie danych wejściowych na wyjścia.

Generatywne sieci przeciwstawne

Generatywne sieci przeciwne (GAN) w rzeczywistości są wieloma głębokimi sieciami neuronowymi, a nie tylko jedną siecią. Jednocześnie trenowane są dwa modele głębokiego uczenia, a ich wyniki są przesyłane do drugiej sieci. Sieci konkurują ze sobą, a ponieważ uzyskują wzajemny dostęp do danych wyjściowych, obie uczą się na podstawie tych danych i doskonalą się. Obie sieci zasadniczo grają w grę polegającą na fałszerstwie i wykrywaniu, w której model generatywny próbuje stworzyć nowe przypadki, które zmylą model detektywa/dyskryminatora. Sieci GAN stały się popularne w dziedzinie widzenia komputerowego.

Podsumowanie głębokiego uczenia się

Głębokie uczenie rozszerza zasady sieci neuronowych w celu tworzenia wyrafinowanych modeli, które mogą uczyć się złożonych wzorców i uogólniać te wzorce na przyszłe zbiory danych. Konwolucyjne sieci neuronowe służą do interpretacji obrazów, natomiast sieci RNN/LSTM służą do interpretacji danych sekwencyjnych. Autoenkodery mogą przekształcić zadania uczenia się bez nadzoru w zadania uczenia się pod nadzorem. Wreszcie sieci GAN to wiele rywalizujących ze sobą sieci, które są szczególnie przydatne w zadaniach związanych z wizją komputerową.

Bloger i programista specjalizujący się w Nauczanie maszynowe i głęboki Learning tematy. Daniel ma nadzieję pomóc innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.