Podstawy AI
Co to są RNN i LSTM w głębokim uczeniu?
Wiele z najbardziej imponujących postępów w przetwarzaniu języka naturalnego i chatbotach opartych na sztucznej inteligencji jest napędzanych przez Recurrent Neural Networks (RNNs) i Long Short-Term Memory (LSTM) sieci. RNNs i LSTMs są specjalnymi architekturami sieci neuronowych, które są w stanie przetwarzać sekwencyjne dane, dane, gdzie chronologiczne uporządkowanie ma znaczenie. LSTMs są podstawowo ulepszonymi wersjami RNNs, zdolnymi do interpretowania dłuższych sekwencji danych. Zobaczmy, jak RNNs i LSTMS są zbudowane i jak umożliwiają tworzenie zaawansowanych systemów przetwarzania języka naturalnego.
Co to są sieci neuronowe Feed-Forward?
Przed omówieniem, jak Long Short-Term Memory (LSTM) i Convolutional Neural Networks (CNN) działają, powinniśmy omówić format sieci neuronowej w ogóle.
Sieć neuronowa jest przeznaczona do badania danych i uczenia się istotnych wzorców, tak aby te wzorce mogły być zastosowane do innych danych i nowych danych mogły być sklasyfikowane. Sieci neuronowe są podzielone na trzy sekcje: warstwę wejściową, warstwę ukrytą (lub wiele warstw ukrytych) i warstwę wyjściową.
Warstwa wejściowa jest tym, co wprowadza dane do sieci neuronowej, podczas gdy warstwy ukryte są tym, co uczy się wzorców w danych. Warstwy ukryte w zestawie danych są połączone z warstwą wejściową i wyjściową za pomocą “wag” i “przesunięć”, które są po prostu założeniami, jak punkty danych są ze sobą powiązane. Te wagi są dostosowywane podczas treningu. Podczas treningu modelu jego przewidywania dotyczące danych treningowych (wartości wyjściowe) są porównywane z rzeczywistymi etykietami treningowymi. W trakcie treningu sieć powinna (mogłaby) stać się bardziej dokładna w przewidywaniu relacji między punktami danych, tak aby mogła dokładnie sklasyfikować nowe punkty danych. Głębokie sieci neuronowe są sieciami, które mają więcej warstw w środku/więcej warstw ukrytych. Im więcej warstw ukrytych i węzłów model ma, tym lepiej model może rozpoznać wzorce w danych.
Zwykłe, feed-forward sieci neuronowe, takie jak te, które opisałem powyżej, są często nazywane “gęstymi sieciami neuronowymi”. Te gęste sieci neuronowe są łączone z różnymi architekturami sieci, które specjalizują się w interpretowaniu różnych rodzajów danych.
Co to są RNNs (Recurrent Neural Networks)?

Recurrent Neural Networks biorą ogólny принцип feed-forward sieci neuronowych i umożliwiają im obsługę sekwencyjnych danych, nadając modelowi pamięć wewnętrzną. “Recurrent” część nazwy RNN pochodzi z faktu, że dane wejściowe i wyjściowe tworzą pętlę. Gdy wyjście sieci jest wyprodukowane, wyjście jest skopiowane i zwrócone do sieci jako dane wejściowe. Podczas podejmowania decyzji nie tylko bieżące dane wejściowe i wyjściowe są analizowane, ale również poprzednie dane wejściowe są brane pod uwagę. Innymi słowy, jeśli początkowe dane wejściowe dla sieci to X, a wyjście to H, zarówno H, jak i X1 (następne dane wejściowe w sekwencji danych) są wprowadzane do sieci w następnym cyklu uczenia. W ten sposób kontekst danych (poprzednie dane wejściowe) jest zachowany podczas treningu sieci.
Wynikiem tej architektury jest to, że RNNs są w stanie obsługiwać sekwencyjne dane. Jednak RNNs cierpią z powodu kilku problemów. RNNs cierpią z powodu znikającego gradientu i wybuchającego gradientu.
Długość sekwencji, które RNN może zinterpretować, jest dość ograniczona, zwłaszcza w porównaniu z LSTMs.
Co to są LSTMs (Long Short-Term Memory Networks)?
Long Short-Term Memory sieci mogą być uważane za rozszerzenia RNNs, ponownie stosując pojęcie zachowania kontekstu danych wejściowych. Jednak LSTMs zostały zmodyfikowane w kilku ważnych sposób, co pozwala im na interpretację danych z przeszłości przy użyciu lepszych metod. Modyfikacje wprowadzone do LSTMs dotyczą problemu znikającego gradientu i umożliwiają LSTMs branie pod uwagę znacznie dłuższych sekwencji danych wejściowych.

Modele LSTMs składają się z trzech różnych komponentów, lub bramek. Jest bramka wejściowa, bramka wyjściowa i bramka zapomnienia. Podobnie jak RNNs, LSTMs biorą pod uwagę dane wejściowe z poprzedniej jednostki czasu przy modyfikowaniu pamięci modelu i wag wejściowych. Bramka wejściowa podejmuje decyzje o tym, które wartości są ważne i powinny być przepuszczane przez model. Funkcja sigmoidalna jest używana w bramce wejściowej, która podejmuje decyzje o tym, które wartości powinny być przechowywane. Zero powoduje utratę wartości, podczas gdy 1 ją zachowuje. Funkcja TanH jest również używana tutaj, która decyduje o tym, jak ważne są wartości wejściowe dla modelu, w zakresie od -1 do 1.
Po uwzględnieniu bieżących danych wejściowych i stanu pamięci bramka wyjściowa decyduje, które wartości powinny być przekazane do następnego kroku czasowego. W bramce wyjściowej wartości są analizowane i przypisuje im się znaczenie w zakresie od -1 do 1. To reguluje dane przed ich przekazaniem do następnego kroku czasowego. Wreszcie, zadaniem bramki zapomnienia jest usunięcie informacji, które model uważa za niepotrzebne do podjęcia decyzji o charakterze danych wejściowych. Bramka zapomnienia używa funkcji sigmoidalnej na wartościach, zwracając liczby między 0 (zapomnij) a 1 (zachowaj).
Sieć neuronowa LSTM składa się z specjalnych warstw LSTM, które mogą interpretować sekwencyjne dane słowne, oraz gęsto połączonych warstw, takich jak te opisane powyżej. Gdy dane przechodzą przez warstwy LSTM, przechodzą do gęsto połączonych warstw.












