Sieci neuronowe. Dokąd to wszystko zmierza?

Artykuł składa się z dwóch części:

  1. Krótki opis niektórych architektur sieciowych do wykrywania obiektów w obrazach i segmentacji obrazów z najbardziej zrozumiałymi dla mnie linkami do zasobów. Starałem się wybierać wyjaśnienia wideo, najlepiej w języku rosyjskim.
  2. Część druga stanowi próbę zrozumienia kierunków rozwoju architektur sieci neuronowych. I technologie na nich oparte.

Sieci neuronowe. Dokąd to wszystko zmierza?

Rysunek 1 – Zrozumienie architektury sieci neuronowych nie jest łatwe

Wszystko zaczęło się od stworzenia dwóch aplikacji demonstracyjnych do klasyfikacji i wykrywania obiektów na telefonie z systemem Android:

  • Demo zaplecza, gdy dane są przetwarzane na serwerze i przesyłane do telefonu. Klasyfikacja obrazu trzech rodzajów niedźwiedzi: brązowego, czarnego i pluszowego.
  • Demo frontonugdy dane są przetwarzane w samym telefonie. Detekcja obiektów (wykrywanie obiektów) trzech typów: orzechy laskowe, figi i daktyle.

Istnieje różnica pomiędzy zadaniami klasyfikacji obrazu, wykrywania obiektów w obrazie i segmentacja obrazu. Dlatego zaistniała potrzeba sprawdzenia, które architektury sieci neuronowych wykrywają obiekty na obrazach, a które potrafią segmentować. Znalazłem następujące przykłady architektur z najbardziej zrozumiałymi dla mnie linkami do zasobów:

  • Szereg architektur opartych na R-CNN (Rregiony z Co ewolucji Neuro Nfunkcje sieci): R-CNN, Fast R-CNN, Szybszy R-CNN, Maska R-CNN. Aby wykryć obiekt na obrazie, przydzielane są ramki ograniczające przy użyciu mechanizmu Region Proposal Network (RPN). Początkowo zamiast RPN stosowano wolniejszy mechanizm wyszukiwania selektywnego. Następnie wybrane ograniczone obszary są podawane na wejście konwencjonalnej sieci neuronowej w celu klasyfikacji. Architektura R-CNN ma wyraźne pętle „for” w ograniczonych regionach, w sumie do 2000 przebiegów przez wewnętrzną sieć AlexNet. Wyraźne pętle „for” spowalniają prędkość przetwarzania obrazu. Liczba jawnych pętli przebiegających przez wewnętrzną sieć neuronową zmniejsza się z każdą nową wersją architektury i wprowadza się dziesiątki innych zmian w celu zwiększenia szybkości i zastąpienia zadania wykrywania obiektów segmentacją obiektów w Mask R-CNN.
  • YOLO (You ONly Look Once) to pierwsza sieć neuronowa, która rozpoznawała obiekty w czasie rzeczywistym na urządzeniach mobilnych. Cecha wyróżniająca: rozróżnienie obiektów w jednym przebiegu (wystarczy spojrzeć raz). Oznacza to, że w architekturze YOLO nie ma wyraźnych pętli „for”, dlatego sieć działa szybko. Przykładowo taka analogia: w NumPy przy wykonywaniu operacji na macierzach nie ma też jawnych pętli „for”, które w NumPy są implementowane na niższych poziomach architektury poprzez język programowania C. YOLO wykorzystuje siatkę predefiniowanych okien. Aby zapobiec wielokrotnemu definiowaniu tego samego obiektu, stosowany jest współczynnik nakładania się okien (IoU). Iskrzyżowanie over Unie). Architektura ta działa w szerokim zakresie i ma wysoką wydajność krzepkość: Modelkę można szkolić na fotografiach, ale nadal dobrze radzi sobie na ręcznie rysowanych obrazach.
  • SSD (Single Sgorący MultiBox Detector) – wykorzystywane są najskuteczniejsze „hacki” architektury YOLO (np. tłumienie niemaksymalne) oraz dodawane są nowe, aby sieć neuronowa działała szybciej i dokładniej. Cecha wyróżniająca: rozróżnianie obiektów w jednym przebiegu przy pomocy zadanej siatki okien (domyślne pole) na piramidzie obrazu. Piramida obrazu jest kodowana w tensorach splotu poprzez kolejne operacje splotu i łączenia (w przypadku operacji maksymalnego łączenia wymiar przestrzenny maleje). W ten sposób w jednym przebiegu sieci wyznaczane są zarówno duże, jak i małe obiekty.
  • Mobilny dysk SSD (Aplikacje mobilneNetV2+ SSD) jest połączeniem dwóch architektur sieci neuronowych. Pierwsza sieć MobileNetV2 działa szybko i zwiększa dokładność rozpoznawania. Zastosowano MobileNetV2 zamiast VGG-16, który był pierwotnie używany w oryginalny artykuł. Druga sieć SSD określa lokalizację obiektów na obrazie.
  • Ściśnij Net – bardzo mała, ale dokładna sieć neuronowa. Samo w sobie nie rozwiązuje problemu wykrywania obiektów. Można go jednak stosować w kombinacji różnych architektur. I używane w urządzeniach mobilnych. Charakterystyczną cechą jest to, że dane są najpierw kompresowane do czterech filtrów splotowych 1×1, a następnie rozszerzane do czterech filtrów splotowych 1×1 i czterech 3×3. Jedna z takich iteracji rozszerzania kompresji danych nazywa się „modułem ogniowym”.
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentacja obiektów na obrazie. Charakterystyczną cechą architektury jest rozszerzony splot, który zachowuje rozdzielczość przestrzenną. Następnie następuje etap postprocessingu wyników z wykorzystaniem graficznego modelu probabilistycznego (warunkowe pole losowe), który pozwala na usunięcie drobnych szumów w segmentacji i poprawę jakości segmentowanego obrazu. Za budzącą grozę nazwą „graficzny model probabilistyczny” kryje się konwencjonalny filtr Gaussa, który jest aproksymowany w pięciu punktach.
  • Próbowałem rozpracować urządzenie UdoskonalDet (Pojedynczy strzał Oczyścićment Sieć neuronowa dla obiektu toekcja), ale niewiele zrozumiałem.
  • Przyjrzałem się również, jak działa technologia „uwagi”: wideo1, wideo2, wideo3. Charakterystyczną cechą architektury „uwagi” jest automatyczny wybór obszarów obrazu o wzmożonej uwadze (RoI, Regions of Izainteresowanie) za pomocą sieci neuronowej zwanej Attention Unit. Obszary zwiększonej uwagi są podobne do obwiedni, ale w przeciwieństwie do nich nie są utrwalone na obrazie i mogą mieć rozmyte granice. Następnie z obszarów zwiększonej uwagi izolowane są znaki (cechy), które „zasilają” rekurencyjne sieci neuronowe o architekturach LSDM, GRU lub waniliowy RNN. Rekurencyjne sieci neuronowe potrafią analizować powiązania cech w sekwencji. Rekurencyjne sieci neuronowe były początkowo używane do tłumaczenia tekstu na inne języki, a obecnie do tłumaczenia obrazy na tekst и tekst na obraz.

Gdy badamy te architektury Zdałem sobie sprawę, że nic nie rozumiem. I nie chodzi o to, że moja sieć neuronowa ma problemy z mechanizmem uwagi. Tworzenie tych wszystkich architektur przypomina jakiś ogromny hackaton, podczas którego autorzy rywalizują w hackach. Hack to szybkie rozwiązanie trudnego problemu z oprogramowaniem. Oznacza to, że pomiędzy wszystkimi tymi architekturami nie ma widocznego i zrozumiałego logicznego połączenia. Łączy ich tylko zestaw najskuteczniejszych hacków, które pożyczają od siebie nawzajem, oraz jeden wspólny dla wszystkich operacja splotu w zamkniętej pętli (propagacja wsteczna błędów, propagacja wsteczna). NIE systemy myślenia! Nie jest jasne, co zmienić i jak zoptymalizować istniejące osiągnięcia.

Wskutek braku logicznego powiązania pomiędzy hackami są one niezwykle trudne do zapamiętania i zastosowania w praktyce. To wiedza fragmentaryczna. W najlepszym przypadku zapamiętuje się kilka ciekawych i nieoczekiwanych momentów, ale większość tego, co zrozumiałe i niezrozumiałe, znika z pamięci w ciągu kilku dni. Dobrze będzie, jeśli za tydzień przypomnisz sobie chociaż nazwę architektury. Ale kilka godzin, a nawet dni pracy poświęcono na czytanie artykułów i oglądanie filmów z recenzjami!

Sieci neuronowe. Dokąd to wszystko zmierza?

Rysunek 2 - Zoo Sieci Neuronowych

Większość autorów artykułów naukowych, moim zdaniem, robi wszystko, co w jej mocy, aby nawet ta fragmentaryczna wiedza nie została zrozumiana przez czytelnika. Ale frazy partycypacyjne w dziesięciu linijkach zdań z formułami wziętymi „z powietrza” to temat na osobny artykuł (problem Opublikuj lub zgiń).

Z tego powodu istnieje potrzeba usystematyzowania informacji za pomocą sieci neuronowych, a co za tym idzie, podniesienia jakości rozumienia i zapamiętywania. Dlatego też głównym tematem analizy poszczególnych technologii i architektur sztucznych sieci neuronowych było następujące zadanie: dowiedzieć się, dokąd to wszystko zmierza, a nie oddzielnie urządzenie jakiejkolwiek konkretnej sieci neuronowej.

Dokąd to wszystko zmierza? Wyniki główne:

  • Liczba start-upów zajmujących się uczeniem maszynowym w ciągu ostatnich dwóch lat gwałtownie spadła. Możliwy powód: „sieci neuronowe nie są już czymś nowym”.
  • Każdy może stworzyć działającą sieć neuronową, aby rozwiązać prosty problem. Aby to zrobić, weź gotowy model z „modelowego zoo” i trenuj ostatnią warstwę sieci neuronowej (przenieś naukę) na gotowych danych z Wyszukiwanie zbiorów danych Google lub z 25 tysięcy zbiorów danych Kaggle w darmowym chmurowy notatnik Jupytera.
  • Zaczęli tworzyć duzi producenci sieci neuronowych „modelowe ogrody zoologiczne” (wzorcowe zoo). Za ich pomocą możesz szybko stworzyć aplikację komercyjną: Centrum TF dla TensorFlow, Wykrywanie MMD dla PyTorcha, Detektor dla Caffe2, chainer-modelzoo dla Chainera i inni.
  • Sieci neuronowe działające w czas rzeczywisty (w czasie rzeczywistym) na urządzeniach mobilnych. Od 10 do 50 klatek na sekundę.
  • Zastosowanie sieci neuronowych w telefonach (TF Lite), przeglądarkach (TF.js) i w artykuły gospodarstwa domowego (IoT, Internet of Tzawiasy). Zwłaszcza w telefonach, które już na poziomie sprzętowym obsługują sieci neuronowe (akceleratory neuronowe).
  • „Każde urządzenie, element garderoby, a może nawet jedzenie będzie miało Adres IP-v6 i komunikują się ze sobą” – Sebastiana Thruna.
  • Liczba publikacji na temat uczenia maszynowego zaczęła rosnąć przekracza prawo Moore’a (podwajanie co dwa lata) od 2015 r. Oczywiście potrzebujemy sieci neuronowych do analizy artykułów.
  • Coraz większą popularność zyskują następujące technologie:
    • PyTorch – popularność szybko rośnie i wydaje się wyprzedzać TensorFlow.
    • Automatyczny dobór hiperparametrów AutoML – popularność rośnie płynnie.
    • Stopniowy spadek dokładności i wzrost szybkości obliczeń: logika rozmyta, algorytmy wzmacnianie, niedokładne (przybliżone) obliczenia, kwantyzacja (kiedy wagi sieci neuronowej są przekształcane na liczby całkowite i kwantowane), akceleratory neuronowe.
    • Tłumaczenie obrazy na tekst и tekst na obraz.
    • tworzenie Obiekty XNUMXD z wideo, teraz w czasie rzeczywistym.
    • Najważniejsze w DL jest to, że danych jest dużo, ale ich zebranie i oznaczenie nie jest łatwe. Dlatego rozwija się automatyzacja znaczników (automatyczna adnotacja) dla sieci neuronowych wykorzystujących sieci neuronowe.
  • Dzięki sieciom neuronowym nagle pojawiła się informatyka nauka eksperymentalna i powstał kryzys powtarzalności.
  • Pieniądze IT i popularność sieci neuronowych pojawiły się jednocześnie, gdy komputeryzacja stała się wartością rynkową. Gospodarka przechodzi od gospodarki opartej na złocie i walucie do gospodarki opartej na złocie i walucie obliczenia w złocie. Zobacz mój artykuł na temat ekonofizyka i powód pojawienia się pieniędzy IT.

Stopniowo pojawia się nowy Metodologia programowania ML/DL (Machine Learning & Deep Learning), która polega na przedstawieniu programu jako zestawu wytrenowanych modeli sieci neuronowych.

Sieci neuronowe. Dokąd to wszystko zmierza?

Rysunek 3 – ML/DL jako nowa metodologia programowania

Jednak nigdy się nie pojawił „teoria sieci neuronowych”, w ramach którego można myśleć i pracować systematycznie. To, co obecnie nazywa się „teorią”, jest w rzeczywistości eksperymentalnymi algorytmami heurystycznymi.

Linki do moich i innych zasobów:

Dziękuję za uwagę!

Źródło: www.habr.com

Dodaj komentarz