a Brief Guide to Convolutional Neural Network (CNN)

wprowadzenie:

Manan Parekh
Manan Parekh

Obserwuj

Jul 16, 2019 · 5 min czytać

Convolutional Neural Network (CNN lub ConvNet) to klasa głębokich sieci neuronowych, która jest najczęściej używana do rozpoznawania obrazów, klasyfikacji obrazów, wykrywania obiektów itp.

postęp w widzeniu komputerowym z głębokim uczeniem został skonstruowany i udoskonalony z czasem, głównie za pomocą jednego konkretnego algorytmu — Konwolucyjnej sieci neuronowej.

Google używa go do wyszukiwania Zdjęć, Facebooka do automatycznych algorytmów tagowania, Amazon do rekomendacji produktów, a lista jest długa …

z pomocą CNN możesz zrobić wiele fajnych rzeczy, takich jak, zrobiłem odręczny model rozpoznawania cyfr, który przewiduje cyfrę na obrazie z 98.82% dokładności.

Bonus:

kod -> https://github.com/UPPERCASEGUY/CNN-implementation

możesz również tworzyć fajne modele przy niewielkiej pomocy w koncepcjach dotyczących CNN. Ten blog zacznie budować swoje koncepcje na temat CNNs i jesteś gotowy!

CONVOLUTIONAL NEURAL NETWORKS:

klasyfikacja obrazu jest zadaniem pobrania obrazu wejściowego i wyprowadzenia klasy lub prawdopodobieństwa klas, które najlepiej opisują obraz. W CNN bierzemy obraz jako wejście, przypisujemy wagę różnym aspektom / cechom obrazu i jesteśmy w stanie odróżnić się od siebie. Wstępne przetwarzanie wymagane w CNN jest znacznie mniejsze w porównaniu do innych algorytmów klasyfikacji.

klasyczna klasyka między psem a kotem

Architektura:

macierzowa reprezentacja obrazu.

Komputery nie widzą rzeczy tak jak my, dla komputerów obraz to nic innego jak matryca.

CNN zwykle ma trzy warstwy: warstwę splotu, warstwę łączenia i warstwę w pełni połączoną.

różne warstwy w CNN

warstwa splotowa:

jestem prawie pewien, że natknąłeś się już wcześniej na słowo „splot” w swoim życiu i tutaj jego znaczenie się nie zmienia. Tak! masz rację, ta warstwa polega na zwijaniu obiektów na siebie. Warstwa splotu jest podstawowym budulcem CNN. Przenosi główną część obliczeniowego obciążenia sieci.

głównym celem splotu jest wyodrębnienie z wejścia cech takich jak krawędzie, kolory, narożniki. Gdy wchodzimy głębiej w Sieć, sieć zaczyna identyfikować bardziej złożone funkcje,takie jak kształty, cyfry, części twarzy.

ta warstwa wykonuje iloczyn punktowy pomiędzy dwoma macierzami, gdzie jedna macierz(znana jako filtr/jądro)jest zbiorem poznanych parametrów, a druga macierz jest ograniczoną częścią obrazu.

jeśli obraz jest RGB, filtr będzie miał mniejszą wysokość i szerokość w porównaniu do obrazu, ale będzie miał taką samą głębokość (wysokość x szerokość x 3) Jak obraz.

w przypadku obrazów RGB część zwijająca może być wizualizowana w następujący sposób:

operacja splotu na matrycy obrazu MxNx3 z jądrem 3x3x3

pod koniec procesu splotu mamy matrycę, która ma mniejsze parametry(wymiary) niż rzeczywisty obraz, a także bardziej wyraźne cechy niż rzeczywisty. Teraz będziemy pracować z naszą macierzą.

:

ta warstwa ma na celu wyłącznie zmniejszenie mocy obliczeniowej wymaganej do przetwarzania danych. Odbywa się to Poprzez jeszcze większe zmniejszenie wymiarów matrycy. W tej warstwie staramy się wydobyć dominujące cechy z ograniczonej ilości sąsiedztwa. Dajmy temu jasno przykład.

warstwa poolingu

pomarańczowa macierz to nasza wyróżniona macierz, brązowa to jądro poolingu i otrzymujemy naszą niebieską macierz jako wyjście po poolingu. Tak więc, to co robimy, to bierzemy maksimum spośród wszystkich liczb, które są w regionie Puli i przesuwamy region puli za każdym razem, aby przetworzyć kolejne sąsiedztwo macierzy.

istnieją dwa rodzaje technik łączenia: średnie łączenie i maksymalne łączenie.

różnica między tymi dwoma polega na tym, że w średniej puli bierzemy średnią wszystkich wartości regionu puli, a w maksymalnej puli bierzemy maksimum ze wszystkich wartości leżących wewnątrz regionu puli.

tak więc, po połączeniu warstwy, mamy matrycę zawierającą główne cechy obrazu i ta matryca ma jeszcze mniejsze wymiary, co bardzo pomoże w następnym kroku.

w pełni połączona warstwa:

do tej pory nie robiliśmy nic o klasyfikowaniu różnych obrazów, to, co zrobiliśmy, podświetla niektóre funkcje obrazu i drastycznie zmniejsza wymiary obrazu.

w pełni połączona warstwa wewnątrz CNN

od tego momentu zamierzamy przeprowadzić proces klasyfikacji.

teraz, gdy przekonwertowaliśmy nasz obraz wejściowy do odpowiedniej formy dla naszej wielopoziomowej, w pełni połączonej architektury, spłaszczymy obraz do jednego wektora kolumnowego. Spłaszczony wynik jest podawany do sieci neuronowej feed-forward I backpropagacji stosowanej do każdej iteracji treningu. W ciągu szeregu epok model może rozróżniać dominujące i pewne niskopoziomowe cechy w obrazach i klasyfikować je.

podsumowanie:

  1. przekaż obraz wejściowy do warstwy splotu.
  2. weź splot z polecanym kernel / filters.
  3. zastosuj warstwę łączenia, aby zmniejszyć wymiary.
  4. dodaj te warstwy wiele razy.
  5. Spłaszcz wyjście i wprowadź do w pełni połączonej warstwy.
  6. teraz trenuj model z backpropagacją za pomocą regresji logistycznej.

i zrobiłeś swoją konwolutacyjną sieć neuronową.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.