Wybór architektury sieci

https://aie24.pl/

Wiele wysiłku w badaniach głębokiego uczenia się włożono w znalezienie architektur sieciowych, które dobrze uogólniają. Rzeczywiście, w przypadku każdego konkretnego rodzaju danych – obrazów, mowy, tekstu, wideo itd. – znaczny postęp w wydajności wynika z badania różnych rodzajów architektur sieciowych i zmiany liczby warstw, ich połączeń oraz typy węzłów w każdej warstwie. Niektóre architektury sieci neuronowych są wyraźnie zaprojektowane, aby dobrze uogólniać określone typy danych: sieci splotowe kodują ideę, że ten sam ekstraktor cech jest użyteczny we wszystkich lokalizacjach w siatce przestrzennej, a sieci rekurencyjne kodują ideę, że ta sama reguła aktualizacji jest przydatna w wszystkie punkty w strumieniu danych sekwencyjnych. W zakresie, w jakim te założenia są słuszne, oczekujemy, że architektury splotowe będą dobrze uogólniać obrazy, a sieci rekurencyjne będą dobrze uogólniać sygnały tekstowe i dźwiękowe. Jednym z najważniejszych ustaleń empirycznych w dziedzinie głębokiego uczenia się jest to, że porównując dwie sieci o podobnej liczbie wag, głębsza sieć zwykle zapewnia lepszą wydajność uogólniania. Rysunek 

pokazuje ten efekt dla co najmniej jednej aplikacji w świecie rzeczywistym – rozpoznawania numerów domów. Wyniki pokazują, że dla dowolnej stałej liczby parametrów sieć jedenastowarstwowa daje znacznie mniejszy błąd zestawu testowego niż sieć trójwarstwowa. Systemy uczenia głębokiego sprawdzają się dobrze w przypadku niektórych, ale nie wszystkich zadań. W przypadku zadań z wejściami wielowymiarowymi – obrazów, wideo, sygnałów mowy itp. – działają one lepiej niż jakiekolwiek inne podejścia oparte na uczeniu maszynowym. Większość algorytmów może obsługiwać dane wejściowe o dużej wielkości tylko wtedy, gdy są one wstępnie przetwarzane przy użyciu ręcznie zaprojektowanych funkcji w celu zmniejszenia wymiarowości. To podejście do wstępnego przetwarzania, które dominowało przed 2010 r., nie przyniosło wyników porównywalnych z systemami głębokiego uczenia. Najwyraźniej modele głębokiego uczenia się wychwytują niektóre ważne aspekty tych zadań. W szczególności ich sukces oznacza, że ​​zadania mogą być rozwiązywane przez równoległe programy o stosunkowo niewielkiej liczbie kroków (10 do 103 zamiast, powiedzmy, 107). Być może nie jest to zaskakujące, ponieważ te zadania są zazwyczaj rozwiązywane przez mózg w mniej niż sekundę, co wystarcza na zaledwie kilkadziesiąt kolejnych wyładowań neuronowych. Co więcej, badając reprezentacje warstwy wewnętrznej poznane przez głębokie sieci splotowe dla zadań widzenia, znajdujemy dowody na to, że etapy przetwarzania wydają się obejmować wyodrębnianie sekwencji coraz bardziej abstrakcyjnych reprezentacji sceny, zaczynając od maleńkich krawędzi, kropek i elementów narożnych oraz kończąc na całych obiektach i układach wielu obiektów. Z drugiej strony, ponieważ są to proste obwody, modelom uczenia głębokiego brakuje kompozycyjnej i ilościowej mocy ekspresyjnej, którą widzimy w logice pierwszego rzędu i gramatykach bezkontekstowych . Chociaż modele uczenia głębokiego w wielu przypadkach dobrze się uogólniają, mogą również powodować nieintuicyjne błędy. Mają tendencję do tworzenia mapowań wejścia-wyjścia, które są nieciągłe, tak że mała zmiana wejścia może spowodować dużą zmianę wyjścia. Na przykład można zmienić tylko kilka pikseli na obrazie psa i spowodować, że sieć zaklasyfikuje psa jako strusia lub autobus szkolny – nawet jeśli zmieniony obraz nadal wygląda dokładnie jak pies. Zmieniony obraz tego rodzaju nazywany jest przykładem kontradyktoryjności. W przestrzeniach niskowymiarowych trudno znaleźć przykłady kontradyktoryjności. Ale w przypadku obrazu o wartości miliona pikseli często zdarza się, że chociaż większość pikseli przyczynia się do sklasyfikowania obrazu w środku obszaru „psiego” przestrzeni, istnieje kilka wymiarów, w których wartość piksela znajduje się w pobliżu granicy z inną kategorią. Przeciwnik, który potrafi odtworzyć sieć, może znaleźć najmniejszą różnicę wektorów, która przesunęłaby obraz poza granicę. Kiedy po raz pierwszy odkryto przykłady adwersarzy, rozpoczęły się dwie ogólnoświatowe przepychanki: jedna w celu znalezienia algorytmów uczenia i architektur sieciowych, które nie byłyby podatne na ataki adwersarza, a druga w celu stworzenia coraz skuteczniejszych ataków adwersarzy na wszelkiego rodzaju systemy uczące się. Jak dotąd napastnicy wydają się być z przodu. W rzeczywistości, podczas gdy początkowo zakładano, że będzie potrzebny dostęp do wnętrza wyszkolonej sieci, aby zbudować przykład kontradyktoryjności specjalnie dla tej sieci, okazało się, że można zbudować solidne przykłady kontradyktoryjności, które oszukują wiele sieci o różnych architekturach , hiperparametry i zestawy treningowe. Odkrycia te sugerują, że modele uczenia głębokiego rozpoznają obiekty w sposób zupełnie odmienny od ludzkiego układu wzrokowego.

AI : Technologie, Aplikacje i Wyzwania : Wykrywanie dziur

https://aie24.pl/

Zainspirowani wynikami CrackNet, wdrożyliśmy wykrywanie obiektów za pomocą modeli Faster R-CNN i SSD do wykrywania dziur na drodze. Modele są wyszkolone do wykrywania dziur o różnych kształtach i rozmiarach, a także w różnych warunkach oświetlenia. Szybsze modele RCNN i SSD MobileNet zwracają ramkę ograniczającą każdego wyboju. Ponadto przyjęto algorytm śledzenia oparty na głębokim SORT, aby uniknąć liczenia wielu wystąpień tej samej dziury. Faster R-CNN [33] ma dwie sieci do wykrywania. Wykorzystuje wyszukiwanie selektywne do generowania propozycji regionów. Początkowo szybsze R-CNN pobiera obraz wejściowy z klasą obiektu do wykrycia wraz z jego obwiednią. Obraz jest następnie wyodrębniany przy użyciu głębokiej sieci ConvNet, a ostateczna warstwa splotu mapy funkcji jest używana do wprowadzania sieci propozycji regionu (RPN) w celu predykcji. Następnie wykorzystywane są mapy cech do wyodrębnienia cech proponowanych regionów poprzez zastosowanie RPN. Funkcja softmax przewiduje kategorie obiektów w celu osiągnięcia celów klasyfikacji obiektów i regresji granic. Architektura SSD [34] jest specjalnie dostosowanym lub mobilnym i ograniczonym zasobami środowisk, w których sploty wgłębne zastępują regularne sploty w predykcyjnym polu ograniczającym. Jest znacznie bardziej wydajny obliczeniowo. MobileNetV2 jest proponowany w oparciu o framework SSDLite [35]. Do walidacji dokładności modelu wykorzystano klatki z filmu przedstawiającego drogę zebranego w różnych warunkach oświetleniowych. Początkowy wskaźnik uczenia się wynosił 0,004 z zanikiem uczenia 0,9 na 10 000 iteracji. Przeszkoliliśmy sieć za pomocą optymalizatora RMSProp i tempa uczenia 0,9. Sieć została przeszkolona dla ponad 9000 iteracji przy wielkości partii 24. W celu zachowania i utrzymania jednolitego wymiaru obrazu, na górze i na dole obrazu stosuje się zero padding, aby zachować proporcje, tj. 300×300 pikseli. Zestaw danych jest podzielony na dwie klasy: jedną dla wybojów i jedną dla tła. Kotwice są tworzone przez przesuwane okna. Ponieważ proces przesuwania okna jest splotem, procesor graficzny może z łatwością go obsłużyć. Dowolna kotwica z IoU większym niż 0,5 jest uznawana za dopasowanie. Użytą funkcją straty jest utrata zaufania wraz z utratą lokalizacji. Do lokalizacji wykorzystywana jest gładka strata L1 między przewidywaną a rzeczywistością podstawową, a do utraty ufności wykorzystywana jest strata softmax na poziomie ufności kilku klas. Pomijanie niemaksymalne jest używane do filtrowania wielu pól na obiekt, które mogą być dopasowane podczas przewidywania. Opracowaliśmy prototypową aplikację pulpitu nawigacyjnego do przechwytywania i wizualizacji dziur w czasie rzeczywistym ,detekcja ze szczegółami zliczania w domenie przestrzennej. Wynik eksperymentalny uzyskany z przedstawionych tutaj prac prototypowych jest dość zachęcający i pozwala monitorować jakość dróg skuteczniej niż wcześniej stosowane metody.

Śledzenie dziur

Aby zapewnić, że do obliczenia wskaźnika jakości drogi zgłaszane jest tylko jedno wystąpienie każdego wyboju, każdy wybój jest śledzony przez całą jego identyfikację, aż będzie widoczny w ramce wideo. Obecne badanie wykorzystuje strukturę śledzenia Deep SORT (Simple Real-time Tracker) [36] do śledzenia dziur. Deep SORT to platforma śledzenia obiektów oparta na SORT, która szacuje istniejącą ścieżkę w bieżącej ramce za pomocą filtra Kalmana. Stan zawiera w sumie osiem zmiennych, z których cztery są pozycjami w polu ograniczającym, a pozostałe cztery to prędkość każdej ze współrzędnych. W ten sposób, gdy nadejdzie każda ramka, pozycja bieżącej ścieżki jest obliczana na podstawie jej poprzedniej pozycji [37]. Deskryptor wyglądu uzyskuje informacje o wyglądzie wykryć i śladów. CNN służy do uczenia deskryptora wyglądu w zbiorze danych dotyczących ponownej identyfikacji na dużą skalę. Dzięki przybliżonej lokalizacji oryginalnych ścieżek i deskryptorom wyglądu nowe wyniki wykrywania można skorelować z istniejącymi ścieżkami w każdej kolejnej ramce. Próg służy do odsiewania wszystkich wykryć z poziomem ufności niższym od niego. Kwadratowa odległość Mahalanobisa uwzględnia niepewności z filtra Kalmana. Gdy nowa detekcja zostanie połączona z istniejącą ścieżką, zostanie zastosowana do śladu, a wiek powiązanego śladu zostanie zresetowany do zera. Gdy nowe detekcje nie wchodzą w interakcję z istniejącymi ścieżkami w ramce, tworzone są niepewne ścieżki. Jeśli nowe wykrycia powiodły się połączone, utwór jest modyfikowany jako zweryfikowane, w przeciwnym razie niepewne utwory są natychmiast usuwane. Nieskojarzony wiek każdej klatki jest zwiększany o jeden, jeśli bieżąca ścieżka nie jest skorelowana z nowymi wykryciami. Jeśli nieskojarzony wiek przekroczy maksymalny próg wieku, ścieżka zostanie usunięta.

Uogólnienie

https://aie24.pl/

Do tej pory opisaliśmy, jak dopasować sieć neuronową do jej zestawu treningowego, ale w uczeniu maszynowym celem jest uogólnienie na nowe dane, których wcześniej nie widziano, mierzonych wydajnością na zestawie testowym. W tej sekcji skupimy się na trzech podejściach do poprawy wydajności uogólniania: wyborze odpowiedniej architektury sieci, karaniu dużych wag i losowym zakłócaniu wartości przechodzących przez sieć podczas uczenia.

 

AI : Technologie, Aplikacje i Wyzwania : Metodologia

https://aie24.pl/

Kamera zamontowana w pojeździe została wykorzystana do zebrania obrazów ulic wioski Umiam w Meghalaya w Indiach . Zbiór danych składa się z 1374 zdjęć dróg wraz ze zdjęciami , co daje w sumie 20 318 zdjęć. Obrazy zostały przeskalowane do 300×300 pikseli przed wprowadzeniem do modelu. Obrazy zostały opatrzone adnotacjami, aby przygotować nasz zbiór danych dla modelu. Dodatkowo z pozyskanej próbki 20 318 obrazów 80% wykorzystano do szkolenia, a 20% do testów.

 

Normalizacja partii

https://aie24.pl/

Normalizacja wsadowa jest powszechnie stosowaną techniką, która poprawia szybkość zbieżności .Normalizacja wsadowa jest powszechnie stosowaną techniką, która poprawia szybkość zbieżności SGD normalizacji wsadowej poprzez przeskalowanie wartości wygenerowanych w wewnętrznych warstwach sieci z przykładów w ramach każdej minipartii . Chociaż powody jego skuteczności nie są dobrze poznane w chwili pisania tego tekstu, uwzględniamy go, ponieważ przynosi znaczne korzyści w praktyce. Wydaje się, że do pewnego stopnia normalizacja wsadowa ma skutki podobne do skutków sieci resztkowej. Rozważ węzeł z gdzieś w sieci: wartości z dla m przykładów w minipartii to z1,…,zm. Normalizacja wsadowa zastępuje każde zi nową ilością

gdzie to średnia wartość z w minipartii, to odchylenie standardowe z1,…, zm to mała stała dodana, aby zapobiec dzieleniu przez zero i są parametrami wyuczonymi. Normalizacja wsadowa standaryzuje średnią i wariancję wartości określonych przez wartości i . To znacznie ułatwia trenowanie głębokiej sieci. Bez normalizacji wsadowej informacje mogą zostać utracone, jeśli wagi warstwy są zbyt małe, a odchylenie standardowe w tej warstwie spada do zera. Normalizacja partii zapobiega temu. Zmniejsza również potrzebę ostrożnej inicjalizacji wszystkich wag w sieci, aby upewnić się, że węzły w każdej warstwie znajdują się we właściwym regionie operacyjnym, aby umożliwić propagację informacji. W przypadku normalizacji wsadowej zwykle uwzględniamy i , które mogą być specyficzne dla węzła lub warstwy, wśród parametrów sieci, tak aby zostały uwzględnione w procesie uczenia . Po szkoleniu i są ustalane na wyuczonych wartościach.

AI : Technologie, Aplikacje i Wyzwania :Monitorowanie dróg w czasie rzeczywistym za pomocą algorytmu głębokiego uczenia wdrożonego na urządzeniach IoT

https://aie24.pl/

Złe warunki drogowe to więcej niż niedogodność dla ogółu społeczeństwa; powodują niepokój pasażerów, a także uszkodzenia pojazdów i wypadki śmiertelne. W Indiach ponad 9300 osób straciło życie, a 25 000 osób zostało rannych z powodu wypadków spowodowanych samymi wybojami w ciągu 3 lat (2015, 2016 i 2017). Dobrze utrzymane drogi mogą zmniejszyć prawdopodobieństwo wypadków. W latach 2015-2017 rząd Indii zbudował 153 647 km dróg w ramach różnych programów. Monitorowanie tych dróg pod kątem pęknięć i wybojów jest istotnym aspektem tych projektów. Dziury są jedną z głównych przyczyn wypadków drogowych. Rozszerzanie i kurczenie się wód gruntowych po wniknięciu wody do gruntu pod nawierzchnią powoduje powstawanie wybojów. Utrzymanie dobrego stanu dróg jest niezbędne dla bezpieczeństwa kierowców, a także dla organów transportowych i regulacyjnych ds. utrzymania ruchu. Stan drogi jest oceniany na podstawie pewnych istotnych informacji, takich jak właściwości jezdne, stan nawierzchni i stanu konstrukcji oraz wiele innych parametrów. Opracowano i opracowano wiele technik i metod gromadzenia informacji in situ o wyżej wymienionych parametrach i oceny jakości drogi. Wraz z ostatnimi postępami w dziedzinie sztucznej inteligencji (AI) wprowadzanych jest wiele potężnych narzędzi, które mogą uczyć się semantycznych, głębokich funkcji wysokiego poziomu, aby rozwiązać rzeczywiste problemy. Systemy oparte na sztucznej sieci neuronowej (ANN) wykorzystujące technologię głębokiego uczenia osiągnęły znaczny wzrost w różnych dziedzinach i wykazały doskonałą wydajność w wielu zastosowaniach. Głębokie uczenie to technika wspomagania systemu komputerowego w dokładnym wykonywaniu złożonej percepcji zadania. Głębokie uczenie składa się z kilku warstw nieliniowych jednostek przetwarzania służących do wyodrębniania cech, przy czym dane wyjściowe z niższej warstwy pełnią rolę danych wejściowych do kolejnej warstwy. Wielu badaczy zaczęło stosować uczenie głębokie w różnych aplikacjach. Li i inni opracowali algorytm głębokiego uczenia się do wykrywania raka piersi poprzez badania mammograficzne. Praktyczne zastosowanie metody deep learning przedstawił Kłosowski  do przetwarzania i modelowania języka. Umme zaproponował sieć neuronową głębokiego uczenia złożoną z zestawu splotowych sieci neuronowych (CNN), wyprostowanej liniowej funkcji aktywacji (RELU) i w pełni połączonych warstw do ilościowego określenia reprezentacji twarzy opartej na małych zbiorach danych. Vaidya i inni zaproponowali głęboką sieć neuronową (DNN), aby zaprezentować innowacyjną metodę wykrywania znaków odręcznych w trybie offline. Chociaż zgłoszono wiele postępów technologicznych w rozwiązywaniu problemów w świecie rzeczywistych problemów zaobserwowano bardzo ograniczone wysiłki w zakresie monitorowania stanu dróg w czasie rzeczywistym. W tym rozdziale przedstawiono rozwój ram opartych na sztucznej inteligencji do wykrywania dziur w oparciu o najnowocześniejsza stacja CNN, w której nie tylko klasyfikujemy, ale także precyzyjnie lokalizujemy i liczymy ilość wykrytych dziur. Algorytm śledzi wykryte dziury, aby uniknąć wielokrotnego rejestrowania tej samej dziury. Model jest opracowywany w czasie rzeczywistym monitorowanie stanu dróg i wdrożone w komputerze jednopłytkowym Raspberry Pi do wykrywania dziur w czasie rzeczywistym. Aby przyspieszyć wnioskowanie modelu, zastosowano koprocesor Edge TPU, akcelerator Google Coral USB Accelerator wzdłuż Raspberry Pi.  Główne cechy płyty to szybkie przetwarzanie możliwe przez Broadcom BCM2711 w oparciu o architekturę opartą na czterordzeniowym Cortex-A71 (ARM v8) w połączeniu z 4 GB pamięci RAM i interfejsem włączonym przez porty USB 3.0 (2 szt.), Gigabit Ethernet, micro-HDMI porty (2Nos) i gniazdo kart MicroSD. System operacyjny jest ładowany na kartę MicroSD wraz z danymi. Rekonstrukcja trójwymiarowa (3D) to metoda uchwycenia kształtu, wyglądu i głębi obiektu w świecie rzeczywistym . Rekonstrukcję sceny 3D można podzielić na metody oparte na wizji stereo , metody skanera laserowego 3D oraz wizualizację za pomocą innych urządzeń wykrywających ruch, takich jak Microsoft Kinect . Metody te wymagają zaawansowanego, kosztownego sprzętu do wizualizacji 3D i wiążą się z wysokimi kosztami obliczeniowymi. Metody oparte na wibracjach wykorzystują akcelerometry do wykrywania dziury. Mednis i inni zaproponowali wykrywanie nieprawidłowości na drodze w oparciu o smartfony. Ghadge i inni opracowali system wykrywania nierówności (Bumps Detection System, BDS) wykorzystujący grupowanie K-średnich i losowy klasyfikator lasów na danych treningowych i testowych zebranych za pomocą akcelerometru i GPS w celu oceny warunków drogowych oraz identyfikacji i wykrywania lokalizacji dziur. F. Seraj  zbierał dane za pomocą czujników takich jak akcelerometr i żyroskop w smartfonie oraz klasyfikowali anomalie drogowe za pomocą maszyny wektorów nośnych (SVM). W 2D opartym na wizyjnym obrazie lub obrazie wideo wykorzystywane są dane do wykrywania dziur. Metody wykrywania dziur można podzielić na dwie kategorie: tradycyjne podejście do przetwarzania obrazu i podejście oparte na CNN. Pierwszy z nich opiera się na algorytmach, które wyodrębniają funkcje niskiego poziomu, podczas gdy drugi jest podejściem opartym na głębokim uczeniu, które rozwiązuje problem poprzez inżynierię funkcji. Dhiman i inni zaproponowali jednoklatkową metodę opartą na stereowizji i wieloramkową metodę fuzji opartą na wykrywaniu dziur. Youngtae  zaproponował algorytm wykrywania wybojów przy użyciu kamery czarnoskrzynkowej, w której ekstrakcja kandydatów wyodrębnia obszary kandydujące do wybojów. Oliveira i inni zastosowali kompleksowy zestaw algorytmów przetwarzania obrazu do wykrywania pęknięć w drogach. Obecne badanie koncentruje się na technice 2D opartej na wizji komputerowej do wykrywania dziur z obrazu wideo kamery zamontowanej na przedniej szybie pojazdu. Chociaż wykrywanie dziur przy użyciu głębokiej sieci CNN było badane od kilku lat, jej wdrożenie w monitorowaniu w czasie rzeczywistym pozostaje trudnym zadaniem ze względu na kosztowny obliczeniowo charakter algorytmów. Informacje dotyczące liczby wybojów są gromadzone za pomocą algorytmów opartych na CNN, zapewniając, że każdy wybój jest rozliczany tylko raz. Zaproponowany system szacuje wskaźnik jakości drogi obliczając gęstość wybojów na odcinku drogi mierzonych co 5 minut. Przetestowaliśmy model za pomocą obrazów i filmów przed użyciem go w czasie rzeczywistym do wykrywania dziur. Wyniki eksperymentalne potwierdzają, że nasz model sprawdza się wystarczająco dobrze w wykrywaniu dziur z dokładnością do 89%. Celem naszych badań jest automatyczne wykrywanie i śledzenie dziur oraz ich liczenie. Platforma jest zaprojektowana do wysyłania liczby dziur do serwera bazy danych co 5 minut w celu obliczenia jakości drogi.

Obliczanie gradientów w grafach obliczeniowych

https://aie24.pl/

Wyprowadziliśmy gradient funkcji straty względem wag w określonej (i bardzo prostej) sieci. Zaobserwowaliśmy, że gradient można obliczyć przez wsteczną propagację informacji o błędach z warstwy wyjściowej sieci do warstw ukrytych. Powiedzieliśmy również, że ten wynik generalnie obowiązuje dla każdego wykresu obliczeń z wyprzedzeniem. Tutaj wyjaśniamy, jak to działa. Rysunek  przedstawia ogólny węzeł na wykresie obliczeń.

(Węzeł h ma stopień wejściowy i stopień zewnętrzny 2, ale nic w analizie od tego nie zależy.) Podczas przejścia do przodu węzeł oblicza pewną dowolną funkcję h ze swoich danych wejściowych, które pochodzą z węzłów f i g. Z kolei h przekazuje swoją wartość do węzłów j i k. Proces propagacji wstecznej przekazuje komunikaty z powrotem przez każde łącze w sieci. W każdym węźle zbierane są wiadomości przychodzące, a nowe wiadomości są obliczane, aby powrócić do następnej warstwy. Jak widać na rysunku, wszystkie komunikaty są częściowymi pochodnymi straty L. Na przykład komunikat wsteczny ∂/∂hj jest cząstkową pochodną L względem pierwszego wejścia j, które jest wiadomością przekazującą od h do j. Teraz h wpływa na L poprzez j i k, więc mamy

Za pomocą tego równania węzeł h może obliczyć pochodną L względem h przez zsumowanie wiadomości przychodzących od j i k. Teraz, aby obliczyć wychodzące wiadomości ∂L/∂fh i ∂L/∂gh, używamy następujących równań:

W równaniu drugim ∂L/∂h zostało już obliczone przez równanie pierwsze, a ∂h/∂fh i ∂h/∂gh są po prostu pochodnymi h odpowiednio względem pierwszego i drugiego argumentu. Na przykład, jeśli h jest węzłem mnożenia — to znaczy h(f,g) = f ∙ g –  wtedy ∂h/∂fh/=g oraz ∂h/∂gh= f . Pakiety oprogramowania do uczenia głębokiego zazwyczaj zawierają bibliotekę typów węzłów (dodawanie, mnożenie, sigmoid itp.), z których każdy wie, jak obliczyć własne pochodne, zgodnie z wymaganiami równania . Proces propagacji wstecznej rozpoczyna się od węzłów wyjściowych, w których każdy komunikat początkowy jest obliczany bezpośrednio z wyrażenia na L pod względem przewidywanej wartości

 i prawdziwej wartości y z danych uczących. W każdym węźle wewnętrznym przychodzące wiadomości zwrotne są sumowane zgodnie z równaniem pierwszym, a wychodzące wiadomości są generowane z równania drugiego. Proces kończy się w każdym węźle na wykresie obliczeniowym, który reprezentuje wagę w . W tym momencie suma wiadomości przychodzących do w to ∂L/∂w – dokładnie gradient potrzebny do zaktualizowania w.  Współdzielenie wag, stosowane w sieciach splotowych i sieciach rekurencyjnych , jest obsługiwane po prostu przez traktowanie każdej wspólnej wagi jako pojedynczego węzła z wieloma wychodzącymi łukami na grafie obliczeniowym. Podczas propagacji wstecznej powoduje to wiele przychodzących wiadomości gradientowych. Według równania pierwszego, oznacza to, że gradient dla wspólnej wagi jest sumą udziałów gradientu z każdego miejsca, w którym jest używany w sieci. Z tego opisu procesu propagacji wstecznej jasno wynika, że ​​jego koszt obliczeniowy jest liniowy w stosunku do liczby węzłów w grafie obliczeniowym, podobnie jak koszt obliczeń w przód. Ponadto, ponieważ typy węzłów są zazwyczaj ustalone podczas projektowania sieci, wszystkie obliczenia gradientu można z wyprzedzeniem przygotować w formie symbolicznej i skompilować w bardzo wydajny kod dla każdego węzła na grafie. Należy również zauważyć, że komunikaty na rysunku  nie muszą być skalarami: mogą to być w równym stopniu wektory, macierze lub tensory wyższych wymiarów, aby obliczenia gradientu można było mapować na GPU lub TPU, aby korzystać z paralelizmu. Jedną wadą propagacji wstecznej jest to, że wymaga przechowywania większości wartości pośrednich, które zostały obliczone podczas propagacji do przodu, w celu obliczenia gradientów w przejściu wstecznym. Oznacza to, że całkowity koszt pamięci uczenia sieci jest proporcjonalny do liczby jednostek w całej sieci. Tak więc, nawet jeśli reprezentowana jest sama sieć tylko niejawnie przez kod propagacji z wieloma pętlami, a nie jawnie przez strukturę danych, wszystkie pośrednie wyniki tego kodu propagacji muszą być przechowywane jawnie.

AI : Technologie, Aplikacje i Wyzwania : Wniosek

https://aie24.pl/ 

W czasie rzeczywistym wykrywanie poruszających się obiektów lub wykrywanie poruszających się obiektów na podstawie celu jest kluczowym obszarem badań w dziedzinie wizji komputerowej. Algorytmy wykrywania i śledzenia obiektów napotykają na różne trudności wymienione w tym rozdziale. Rozwiązanie takich wyzwań wymaga dobrego modelowania tła opartego na odejmowaniu tła, które wykazało lepszą wydajność w aplikacjach czasu rzeczywistego. Separacja pierwszego planu od tła w przetworzonych klatkach wideo sprawdzi się dobrze w przypadku nadzoru. Tutaj metoda odejmowania tła oblicza różnicę między bieżącym modelem ramki i tła w celu wyodrębnienia informacji dla wielu aplikacji widzenia komputerowego. Ten rozdział zawiera bogate informacje dotyczące technik wykrywania obiektów i algorytmów śledzenia wideo. Aplikacje wizji komputerowej są mądrze opisane z kluczowymi wyzwaniami, które pojawiają się na drodze wykrywania i śledzenia obiektów.

 

Algorytmy uczenia się

https://aie24.pl/

Uczenie sieci neuronowej polega na modyfikacji parametrów sieci tak, aby zminimalizować funkcję strat na zbiorze uczącym. W zasadzie można zastosować dowolny algorytm optymalizacji. W praktyce nowoczesne sieci neuronowe są prawie zawsze trenowane z jakimś wariantem stochastycznego gradientu (SGD). Tutaj celem jest zminimalizowanie strat L(w), gdzie w reprezentuje wszystkie parametry sieci. Każdy krok aktualizacji w procesie opadania gradientu wygląda następująco:

gdzie α to wskaźnik uczenia się. Dla standardowego zjazdu gradientowego strata L jest definiowana w odniesieniu do całego zestawu treningowego. Dla SGD określa się ją w odniesieniu do minipartii m przykładów losowo wybranych na każdym etapie. Literatura dotycząca metod optymalizacji wielowymiarowych przestrzeni ciągłych zawiera niezliczone ulepszenia podstawowego spadku gradientu. Nie omówimy ich tutaj wszystkich, ale warto wspomnieć o kilku ważnych kwestiach, które są szczególnie istotne przy trenowaniu sieci neuronowych:

  • W przypadku większości sieci, które rozwiązują rzeczywiste problemy, zarówno wymiarowość w, jak i rozmiar zbioru uczącego są bardzo duże. Rozważania te zdecydowanie przemawiają za stosowaniem SGD ze stosunkowo małym rozmiarem minipartii m: stochastyczność pomaga algorytmowi uciec od małych lokalnych minimów w wielowymiarowej przestrzeni wagowej; a mały rozmiar minipartii zapewnia, że ​​koszt obliczeniowy każdego kroku aktualizacji wagi jest małą stałą, niezależną od rozmiaru zestawu uczącego.
  • Ponieważ udział gradientu każdego przykładu uczącego w minipartii SGD można obliczyć niezależnie, rozmiar minipartii jest często wybierany tak, aby maksymalnie wykorzystać równoległość sprzętową w GPU lub TPU.
  • Aby poprawić konwergencję, zwykle dobrym pomysłem jest stosowanie szybkości uczenia się, która z czasem maleje. Wybór odpowiedniego harmonogramu to zazwyczaj kwestia prób i błędów.
  • W pobliżu lokalnego lub globalnego minimum funkcji straty w odniesieniu do całego zbioru uczącego, gradienty oszacowane z małych minipartii będą często charakteryzowały się dużą wariancją i mogą wskazywać w całkowicie złym kierunku, co utrudnia zbieżność. Jednym z rozwiązań jest zwiększanie rozmiaru minipartii w miarę postępu szkolenia; innym jest włączenie idei pędu, która utrzymuje średnią bieżącą gradientów minionych minipartii w Momentum w celu skompensowania małych rozmiarów minipartii.
  • Należy zachować ostrożność, aby złagodzić niestabilności liczbowe, które mogą powstać z powodu przepełnienia, niedopełnienia i błędu zaokrąglania. Są one szczególnie problematyczne przy wykorzystaniu wykładników w funkcjach aktywacji softmax, sigmoid i tanh oraz przy iteracji obliczenia w bardzo głębokich sieciach i sieciach powtarzalnych, które prowadzą do zanikania i eksplodowania aktywacji i gradientów.

Ogólnie rzecz biorąc, proces uczenia się wag sieci zwykle wykazuje malejące zyski. Pracujemy, dopóki nie będzie już praktyczne zmniejszanie błędu testu przez dłuższe bieganie. Zwykle nie oznacza to, że osiągnęliśmy globalne lub nawet lokalne minimum funkcji straty. Zamiast tego oznacza to, że musielibyśmy wykonać niepraktycznie dużą liczbę bardzo małych kroków, aby nadal zmniejszać koszty, lub że dodatkowe kroki spowodowałyby jedynie nadmierne dopasowanie lub że szacunki gradientu są zbyt niedokładne, aby poczynić dalsze postępy.

AI : Technologie, Aplikacje i Wyzwania : Okluzja

https://aie24.pl/

Okluzja to stan, w którym niektóre części obiektu są ukryte za innym obiektem. Okluzja może być dwojakiego rodzaju: częściowa lub całkowita, z których oba są dość oczywiste. Na przykład pieszy zbliżający się do skrzyżowania wysadzanych drzewami ulic może być częściowo lub całkowicie zasłonięty przez te drzewa przed kamerą drogową.