Sieci resztkowe

https://aie24.pl/

Sieci resztkowe są popularnym i skutecznym podejściem do budowania bardzo głębokich sieci, które pozwalają uniknąć problemu znikających gradientów. Typowe modele głębokie wykorzystują warstwy, które uczą się nowej reprezentacji w warstwie i poprzez całkowite zastąpienie reprezentacji w warstwie i-1. Używając notacji macierzowo-wektorowej, którą wprowadziliśmy w równaniu , gdzie z(i) są wartościami jednostek w warstwie i, mamy

Ponieważ każda warstwa całkowicie zastępuje reprezentację z warstwy poprzedniej, wszystkie warstwy muszą nauczyć się robić coś pożytecznego. Każda warstwa musi przynajmniej zachowywać istotne dla zadania informacje zawarte w poprzedniej warstwie. Jeśli ustawimy W(i) = 0 dla dowolnej warstwy i, cała sieć przestanie działać. Gdybyśmy również ustawili W(i􀀀1) = 0, sieć nie byłaby nawet w stanie się uczyć: warstwa i nie uczyłaby się, ponieważ nie zaobserwowałaby żadnej zmiany danych wejściowych z warstwy i-1, a warstwa i-1 nie byłaby naucz się, ponieważ gradient wsteczny z warstwy i zawsze będzie wynosił zero. Oczywiście są to skrajne przykłady, ale ilustrują one potrzebę stosowania warstw jako kanałów dla sygnałów przechodzących przez sieć. Kluczową ideą sieci resztkowych jest to, że warstwa powinna zaburzać reprezentację z poprzedniej warstwy, a nie całkowicie ją zastępować. Jeśli wyuczona perturbacja jest niewielka, następna warstwa jest prawie kopią warstwy poprzedniej. Osiąga się to za pomocą następującego równania dla warstwy i jako warstwy i-1:

gdzie gr oznacza funkcje aktywacji dla warstwy resztkowej. Tutaj myślimy o f jako o reszcie, zaburzającej domyślne zachowanie przy przechodzeniu warstwy i􀀀1 do warstwy i. Funkcja używana do obliczenia reszty to zazwyczaj sieć neuronowa z jedną warstwą nieliniową połączoną z jedną warstwą liniową:

f(z) = Vg(Wz);

gdzie W i V to wyuczone macierze wag z dodanymi zwykłymi wagami odchylenia. Sieci resztkowe umożliwiają niezawodną naukę znacznie głębszych sieci. Zastanów się, co się stanie, jeśli ustawimy V=0 dla konkretnej warstwy, aby wyłączyć tę warstwę. Wtedy reszta f znika i Równanie upraszcza się do

Załóżmy teraz, że gr składa się z funkcji aktywacji ReLU i że z(i-1) również stosuje funkcję ReLU do swoich wejść: z(i-1)=ReLU(in(i-1)). W takim razie mamy

gdzie następuje przedostatni krok, ponieważ ReLU(ReLU(x))=ReLU(x). Innymi słowy, w sieciach resztkowych z aktywacjami ReLU warstwa o zerowej wadze po prostu przekazuje swoje dane wejściowe bez zmiany. Reszta sieci działa tak, jakby warstwa nigdy nie istniała. Podczas gdy tradycyjne sieci muszą nauczyć się propagować informacje i są narażone na katastrofalne niepowodzenia w rozpowszechnianiu informacji z powodu złego doboru parametrów, pozostałe sieci domyślnie propagują informacje. Sieci resztkowe są często używane z warstwami splotowymi w aplikacjach wizyjnych, ale w rzeczywistości są narzędziem ogólnego przeznaczenia, które sprawia, że ​​głębokie sieci są bardziej niezawodne i pozwalają naukowcom swobodniej eksperymentować ze złożonymi i heterogenicznymi projektami sieci. W chwili pisania tego tekstu nierzadko można zobaczyć szczątkowe sieci z setkami warstw. Projekt takich sieci szybko ewoluuje, więc wszelkie dodatkowe specyfikacje, które moglibyśmy podać, byłyby prawdopodobnie nieaktualne, zanim osiągnęłyby formę drukowaną. Czytelnicy pragnący poznać najlepsze architektury do konkretnych zastosowań powinni zapoznać się z najnowszymi publikacjami naukowymi.

AI : Technologie, Aplikacje i Wyzwania : Ruch w tle

https://aie24.pl/

W tym stanie tło może mieć charakter dynamiczny. Istnieją sekwencje klatek, w których tło się zmienia, co sprawia, że ​​wykrywanie i śledzenie obiektów jest wyzwaniem. Czasami kołyszące się drzewa, kiełkująca woda z fontanny lub deszcz, ruchome flagi itp. wykrywają fałszywie dodatnie piksele.

 

Operacje tensorowe w CNN

https://aie24.pl/

W równaniach powyżej widzieliśmy, że użycie notacji wektorowej i macierzowej może być pomocne w utrzymaniu prostych i eleganckich wyprowadzeń matematycznych oraz zapewnianiu zwięzłych opisów wykresów obliczeniowych. Wektory i macierze to jednowymiarowe i dwuwymiarowe szczególne przypadki tensorów, które (w terminologii uczenia głębokiego) są po prostu wielowymiarowymi tablicami o dowolnym wymiarze. W przypadku CNN tensory są sposobem na śledzenie „kształtu” danych w miarę ich przechodzenia przez warstwy sieci. Jest to ważne, ponieważ całe pojęcie splotu zależy od idei sąsiedztwa: zakłada się, że sąsiednie elementy danych są powiązane semantycznie, więc sensowne jest stosowanie operatorów do lokalnych obszarów danych. Co więcej, dzięki odpowiednim prymitywom językowym do konstruowania tensorów i stosowania operatorów, same warstwy można zwięźle opisać jako mapy od wejść tensorów do wyjść tensorów. Ostatnim powodem opisywania CNN w kategoriach operacji tensorowych jest wydajność obliczeniowa: biorąc pod uwagę opis sieci jako sekwencji operacji tensorowych, pakiet oprogramowania do głębokiego uczenia może wygenerować skompilowany kod, który jest wysoce zoptymalizowany pod kątem bazowego podłoża obliczeniowego. Obciążenia uczenia głębokiego są często uruchamiane na procesorach graficznych (jednostkach przetwarzania grafiki) lub TPU (jednostkach przetwarzania tensorów), które zapewniają wysoki stopień równoległości. Na przykład jeden z kapsuł TPU trzeciej generacji firmy Google ma przepustowość odpowiadającą około dziesięciu milionom laptopów. Korzystanie z tych możliwości jest niezbędne, jeśli trenuje się dużą sieć CNN na dużej bazie danych obrazów. Tak więc powszechne jest przetwarzanie nie jednego obrazu na raz, ale wielu obrazów równolegle; jest to również zgodne ze sposobem, w jaki algorytm stochastycznego spadku gradientu oblicza gradienty w odniesieniu do minipartii przykładów uczących. Zbierzmy to wszystko razem w formie przykładu. Załóżmy, że ćwiczymy na 256 256 obrazach RGB z rozmiarem minipartii 64. W tym przypadku dane wejściowe to cztery. tensor wymiarowy o wielkości 256 256 3 64. Następnie nakładamy 96 jąder o rozmiarze 5 5 3 z krokiem 2 w obu kierunkach x i y na obrazie. Daje to tensor wyjściowy o rozmiarze 128 128 96 64. Taki tensor jest często nazywany mapą cech, ponieważ pokazuje, jak każda cecha wyodrębniona przez jądro pojawia się na całym obrazie; w tym przypadku składa się z 96 kanałów, gdzie każdy kanał przenosi informacje z jednej funkcji. Zauważ, że w przeciwieństwie do tensora wejściowego, ta mapa cech nie ma już dedykowanych kanałów kolorów; niemniej jednak informacja o kolorze może nadal być obecna w różnych kanałach funkcji, jeśli algorytm uczenia uzna kolor za przydatny do ostatecznych przewidywań sieci.