Przewodnik po głębokim uczeniu CNN

Opublikowany: 2022-10-14

Zdolność sztucznej inteligencji do wypełnienia luki między umiejętnościami ludzi i maszyn dramatycznie wzrosła. Zarówno profesjonaliści, jak i amatorzy skupiają się na wielu aspektach pola, aby osiągnąć świetne wyniki. Pole widzenia komputerowego jest jedną z kilku takich dyscyplin.

Spis treści

Nasze programy AI i ML w USA

Master of Science in Machine Learning & AI z LJMU i IIITB Program Executive PG w zakresie uczenia maszynowego i sztucznej inteligencji z IIITB
Aby poznać wszystkie nasze kursy, odwiedź naszą stronę poniżej.
Kursy na temat uczenia maszynowego

Dziedzina ta ma na celu umożliwienie komputerom widzenia i rozumienia świata jak ludzie i wykorzystywania tego zrozumienia do różnych zadań, w tym rozpoznawania obrazu i wideo, analizy i kategoryzacji obrazu, odtwarzania mediów, systemów rekomendacji, przetwarzania języka naturalnego itp. Splotowa sieć neuronowa jest głównym algorytmem używanym do rozwijania i udoskonalania ulepszeń uczenia głębokiego w wizji komputerowej w czasie. Dowiedzmy się więcej o algorytmie głębokiego uczenia!

Uzyskaj certyfikat uczenia maszynowego od najlepszych uniwersytetów na świecie. Zdobywaj programy Masters, Executive PGP lub Advanced Certificate Programy, aby przyspieszyć swoją karierę.

Co to jest splotowa sieć neuronowa?

Splotowa sieć neuronowa lub CNN to metoda głębokiego uczenia, która może przyjąć obraz wejściowy, nadawać znaczenie różnym elementom i obiektom w obrazie, takim jak możliwe do nauczenia wagi i uprzedzenia, oraz rozróżniać je. Mówiąc porównawczo, CNN wymaga znacznie mniej wstępnego przetwarzania niż inne techniki klasyfikacji. CNN ma zdolność uczenia się tych filtrów i właściwości, podczas gdy w prymitywnych technikach filtry są wykonywane ręcznie.

Na architekturę CNN wpływa sposób organizacji kory wzrokowej i przypomina ona sieć połączeń neuronów w ludzkim mózgu. Poszczególne neurony reagują na bodźce tylko w tym ograniczonym obszarze pola widzenia, znanym jako pole odbiorcze. Szereg takich nakładających się obrazów pokrywa całe pole widzenia.

Architektura Konwolucyjnej Sieci Neuronowej

Architektura splotowych sieci neuronowych różni się od architektury konwencjonalnych sieci neuronowych. Zwykła sieć neuronowa przekształca dane wejściowe, przepuszczając je przez kilka ukrytych warstw. Każda warstwa składa się z zestawu neuronów połączonych ze wszystkimi neuronami w warstwie poniżej. Ostateczna, w pełni połączona warstwa wyjściowa to miejsce, w którym reprezentowane są predykcje.

Splotowe sieci neuronowe mają nieco inną strukturę. Warstwy są najpierw ułożone w trzech wymiarach: szerokość, wysokość i głębokość. Dodatkowo tylko część neuronów w następnej warstwie jest połączona z neuronami w warstwie poniżej. Dane wyjściowe zostaną następnie skondensowane w pojedynczy wektor wyniku prawdopodobieństwa i zgrupowane wraz z warstwą splotu.

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

Wydobywanie cech z ukrytych warstw

W tej sekcji sieć wykona szereg operacji splotowych i łączonych w celu wykrycia funkcji. W tym miejscu sieć identyfikuje paski tygrysa, dwoje uszu i cztery nogi, jeśli masz zdjęcie jednego.

Klasyfikacja sekcji

Oprócz tych pobranych funkcji warstwy splotu będą w tym przypadku działać jako klasyfikator. Dadzą prawdopodobieństwo, że obiekt obrazu pasuje do przewidywania algorytmu.

Ekstrakcja cech

Jednym z kluczowych elementów CNN jest konwolucja. Matematyczne połączenie dwóch funkcji w celu uzyskania trzeciej funkcji jest określane jako splot. Łączy dwa zestawy danych. Mapa cech jest tworzona przez wykonanie konwolucji na danych wejściowych w przypadku CNN przy użyciu filtra lub jądra. Splot odbywa się poprzez przesunięcie filtra nad wejściem. Każda lokalizacja wykonuje mnożenie macierzy i sumuje dane wyjściowe na mapie cech.

Na wejściu wykonujemy kilka zwojów, stosując inny filtr dla każdej operacji. W rezultacie tworzone są różne mapy obiektów. Dane wyjściowe warstwy splotu są ostatecznie składane przy użyciu wszystkich tych map cech.

Jak każda inna sieć neuronowa, stosujemy proces aktywacji, aby nasze wyjście stało się nieliniowe, gdzie funkcja aktywacji jest używana do wysyłania wyjścia splotu w splotowej sieci neuronowej.

Rodzaje splotowych sieci neuronowych

Warstwa konwolucji:

Podstawowym składnikiem CNN jest warstwa konwolucji. Przenosi większość obciążenia obliczeniowego sieci. Warstwa ta tworzy iloczyn skalarny między dwiema macierzami, z których jedna to jądro, zbiór parametrów, których można się nauczyć, a druga to ograniczony obszar pola receptywnego. W porównaniu do obrazu jądro jest mniejsze w przestrzeni, ale głębsze. Wskazuje to, że szerokość i wysokość jądra będą przestrzennie małe, jeśli obraz składa się z trzech kanałów; jednak głębokość wzrośnie do wszystkich trzech kanałów.

Jądro przesuwa się w poprzek wysokości i szerokości obrazu podczas przejścia do przodu, tworząc obrazową reprezentację tego obszaru podatnego. W rezultacie tworzona jest dwuwymiarowa reprezentacja obrazu zwana mapą aktywacji, ukazująca odpowiedź jądra w każdym miejscu obrazu. Krok to nazwa przesuwanego rozmiaru jądra.

Warstwa puli:

Ta warstwa ogranicza tylko moc obliczeniową potrzebną do przetworzenia danych. Odbywa się to poprzez dalsze zmniejszenie wymiarów podświetlonej matrycy. Próbujemy wydobyć dominujące cechy z niewielkiej części sąsiedztwa w tej warstwie.

Pule średnie i Pule maksymalne to dwa różne rodzaje strategii łączenia.

W przeciwieństwie do Max-pooling, który po prostu przyjmuje najwyższą wartość spośród wszystkich znajdujących się w regionie pul, łączenie średniej uśrednia wszystkie wartości w regionie pul.

Mamy teraz macierz z kluczowymi elementami obrazu po połączeniu warstw, a ta macierz ma jeszcze mniejsze wymiary, co będzie bardzo pomocne w kolejnym etapie.

W pełni połączona warstwa:

Niedrogą metodą uczenia się nieliniowych permutacji charakterystyk wysokiego poziomu dostarczanych przez dane wyjściowe warstwy splotowej jest dodanie warstwy w pełni połączonej. W tym obszarze warstwa W pełni połączona uczy się teraz funkcji, która może nie być liniowa.

Po przekonwertowaniu go do formatu odpowiedniego dla naszego wielopoziomowego perceptronu, spłaszczymy obraz wejściowy do wektora kolumnowego. Sieć neuronowa ze sprzężeniem do przodu otrzymuje spłaszczone dane wyjściowe, a dla każdej iteracji trenowania używana jest propagacja wsteczna. Model może kategoryzować obrazy przy użyciu metody Softmax Classification, identyfikując dominujące i specyficzne cechy niskiego poziomu w wielu epokach.

Warstwy nieliniowości:

Warstwy nieliniowości są często dołączane zaraz po warstwie splotowej, aby dodać nieliniowość do mapy aktywacji, ponieważ splot jest operacją liniową, a obrazy wcale nie są liniowe.

Operacje nieliniowe przybierają różne formy, z których najczęstsze to:

Sigmoid

Wzór matematyczny nieliniowości sigmoidalnej to () = 1/(1+e). Obniża liczbę o wartościach rzeczywistych w zakresie od 0 do 1. Gradient esicy staje się prawie zerowy, gdy aktywacja następuje albo na ogonie, co jest bardzo niekorzystną cechą esicy. Propagacja wsteczna skutecznie zabije gradient, jeśli gradient lokalny stanie się zbyt mały. Dodatkowo załóżmy, że sygnał wejściowy do neuronu jest wyłącznie dodatni. W takim przypadku wyjście sigmoidalne będzie albo wyłącznie dodatnie, albo wyłącznie ujemne, co prowadzi do zygzakowatej dynamiki aktualizacji gradientu dla wagi.

Tanha

Tanh kondensuje liczbę rzeczywistą do przedziału [-1, 1]. Podobnie jak neurony sigmoidalne, aktywacja jest nasycona, ale w przeciwieństwie do nich, jej wyjście jest wyśrodkowane na zero.

ReLU

Rektyfikowana jednostka liniowa (ReLU) zyskała ostatnio dużą popularność. Wykonuje obliczenia funkcji ()=max (0,). Innymi słowy, aktywacja po prostu istnieje przy zerowych progach. ReLU przyspiesza zbieżność sześciokrotnie i jest bardziej niezawodny niż sigmoid i tanh.

Niestety ReLU może być kruchy podczas treningu, co jest wadą. Silny gradient może go zaktualizować, uniemożliwiając dalsze aktualizowanie neuronu. Możemy jednak sprawić, by to zadziałało, wybierając odpowiednią szybkość uczenia się.

Popularne blogi dotyczące uczenia maszynowego i sztucznej inteligencji

IoT: historia, teraźniejszość i przyszłość Samouczek uczenia maszynowego: Naucz się ML Co to jest algorytm? Proste i łatwe
Wynagrodzenie inżyniera robotyki w Indiach: wszystkie role Dzień z życia inżyniera uczenia maszynowego: czym się zajmują? Czym jest IoT (Internet Rzeczy)
Permutacja a kombinacja: różnica między permutacją a kombinacją 7 najważniejszych trendów w sztucznej inteligencji i uczeniu maszynowym Uczenie maszynowe z R: wszystko, co musisz wiedzieć

Rozpocznij swój przewodnik po głębokim uczeniu CNN z UpGrad

Zapisz się na studia magisterskie z zakresu uczenia maszynowego i sztucznej inteligencji w UpGrad we współpracy z LJMU.

Program certyfikatów przygotowuje studentów do aktualnych i przyszłych ról technicznych, zapewniając tematy istotne dla branży. W programie duży nacisk kładzie się również na realne projekty, liczne studia przypadków i międzynarodową kadrę akademicką oferowaną przez ekspertów z danej dziedziny.

Rejestrując się, możesz skorzystać z wyjątkowych funkcji UpGrad, takich jak monitorowanie sieci, sesje szkoleniowe i wsparcie uczenia się 360 stopni.

Czym jest algorytm głębokiego uczenia CNN?

Sposób działania CNN polega na uzyskaniu obrazu, przypisaniu mu wagi w zależności od różnych elementów obrazu, a następnie oddzieleniu ich od siebie. W porównaniu z innymi algorytmami głębokiego uczenia, CNN wymaga bardzo mało wstępnego przetwarzania danych.

Co odróżnia CNN od deep learningu?

Głębokie uczenie jest częściej wykorzystywane w marketingu, aby brzmieć bardziej profesjonalnie niż jest w rzeczywistości. Istnieje wiele odmian głębokich sieci neuronowych, w tym CNN. CNN są lubiane ze względu na ich liczne korzystne zastosowania w identyfikacji obrazów.

Dlaczego CNN jest lepsze od pełnego połączenia?

Zwoje nie mają gęstych połączeń, a nie wszystkie węzły wejściowe mają wpływ na każdy węzeł wyjściowy. Dzięki temu warstwy splotowe mogą teraz uczyć się z większą elastycznością. Ponadto istnieje mniej wag na warstwę, co jest korzystne dla danych wejściowych wielowymiarowych, takich jak dane obrazu.

Czy CNN jest używane tylko do zdjęć?

TAk. Dowolna tablica danych 2D i 3D może być przetwarzana za pomocą CNN.