Convolutional Neural Network Tutorial

sie 18, 2021
admin

Sztuczna inteligencja przeszła długą drogę i bezproblemowo wypełnia lukę między potencjałem ludzi i maszyn. A entuzjaści danych na całym świecie pracują nad wieloma aspektami AI i przekształcają wizje w rzeczywistość – a jednym z takich niesamowitych obszarów jest dziedzina Computer Vision. Dziedzina ta ma na celu umożliwienie i skonfigurowanie maszyn do postrzegania świata w taki sposób, jak robią to ludzie, i wykorzystania tej wiedzy do wielu zadań i procesów (takich jak rozpoznawanie obrazów, analiza i klasyfikacja obrazów i tak dalej). A postępy w Computer Vision z Deep Learning okazały się znaczącym sukcesem, szczególnie z algorytmem Convolutional Neural Network.

W tym samouczku dowiesz się o:

  • Wprowadzenie do CNN
  • Co to jest konwencjonalna sieć neuronowa?
  • Jak CNN rozpoznaje obrazy?
  • Warstwy w CNN
  • Realizacje przypadków użycia z wykorzystaniem CNN

Wprowadzenie do CNN

Yann LeCun, dyrektor grupy badawczej ds. sztucznej inteligencji w firmie Facebook, jest pionierem konwencjonalnych sieci neuronowych. Pierwszą sieć neuronową typu convolutional o nazwie LeNet zbudował w 1988 roku. LeNet była używana do zadań rozpoznawania znaków, takich jak czytanie kodów pocztowych i cyfr.

Czy zastanawiałeś się kiedyś, jak działa rozpoznawanie twarzy w mediach społecznościowych lub jak wykrywanie obiektów pomaga w budowaniu samojeżdżących samochodów, lub jak wykrywanie chorób odbywa się za pomocą obrazów wizualnych w służbie zdrowia? Wszystko to jest możliwe dzięki konwolwentowym sieciom neuronowym (CNN). Oto przykład sieci neuronowych konwencjonalnych, który ilustruje ich działanie:

Wyobraź sobie, że istnieje obraz ptaka i chcesz określić, czy jest to naprawdę ptak czy inny obiekt. Pierwszą rzeczą, którą robisz, jest podanie pikseli obrazu w postaci tablic do warstwy wejściowej sieci neuronowej (sieci wielowarstwowe używane do klasyfikowania rzeczy). Warstwy ukryte przeprowadzają ekstrakcję cech poprzez wykonywanie różnych obliczeń i manipulacji. Istnieje wiele ukrytych warstw, takich jak warstwa konwolucji, warstwa ReLU i warstwa łączenia, które wykonują ekstrakcję cech z obrazu. Wreszcie, jest w pełni połączona warstwa, która identyfikuje obiekt na obrazie.

Konwolucyjna sieć neuronowa do identyfikacji obrazu ptaka

Fig: Convolutional Neural Network to identify the image of a bird

Kurs głębokiego uczenia się (z TensorFlow & Keras)

Opanuj koncepcje i modele głębokiego uczenia się KursView

Kurs głębokiego uczenia się (z TensorFlow Keras)

Co to jest Convolutional Neural Network?

Konwencjonalna sieć neuronowa jest siecią neuronową typu feed-forward, która jest zwykle używana do analizowania obrazów wizualnych poprzez przetwarzanie danych o topologii przypominającej siatkę. Jest ona również znana jako ConvNet. Konwencjonalna sieć neuronowa jest używana do wykrywania i klasyfikowania obiektów na obrazie.

Poniżej znajduje się sieć neuronowa, która identyfikuje dwa rodzaje kwiatów: Orchideę i Różę.

W CNN każdy obraz jest reprezentowany w postaci tablicy wartości pikseli.

Operacja konwolucji stanowi podstawę każdej konwolancyjnej sieci neuronowej. Zrozummy operację konwolucji na przykładzie dwóch macierzy, a i b, o jednym wymiarze.

a =

b =

W operacji konwolucji macierze są mnożone element po elemencie, a iloczyn jest sumowany w celu utworzenia nowej macierzy, która reprezentuje a*b.

Pierwsze trzy elementy macierzy a są mnożone z elementami macierzy b. Iloczyn jest sumowany, aby otrzymać wynik.

Kolejne trzy elementy z macierzy a są mnożone przez elementy macierzy b, a iloczyn jest sumowany.

Ten proces jest kontynuowany aż do zakończenia operacji konwolucji.

Jak CNN rozpoznaje obrazy?

Rozważmy następujące obrazy:

Pudełka, które są pokolorowane, reprezentują wartość piksela równą 1, a 0, jeśli nie są pokolorowane.

Po naciśnięciu backslasha (\) zostanie przetworzony poniższy obraz.

Gdy naciśniemy forward-slash (/), poniższy obraz zostanie przetworzony:

Jest jeszcze jeden przykład obrazujący, jak CNN rozpoznaje obraz:

Jak widać na powyższym diagramie, podświetlane są tylko te wartości, które mają wartość 1.

Layerers in a Convolutional Neural Network

Sieć neuronowa konwolucyjna ma wiele ukrytych warstw, które pomagają w wyodrębnianiu informacji z obrazu. Cztery ważne warstwy w sieci CNN to:

  1. Warstwa konwolucji
  2. Warstwa ReLU
  3. Warstwa puli
  4. Warstwa w pełni połączona

Warstwa konwolucji

Jest to pierwszy krok w procesie wyodrębniania cennych cech z obrazu. Warstwa konwolucji posiada kilka filtrów, które wykonują operację konwolucji. Każdy obraz jest traktowany jako macierz wartości pikseli.

Rozważmy następujący obraz 5×5, którego wartości pikseli są albo 0 albo 1. Jest tam również macierz filtrów o wymiarze 3×3. Przesuń macierz filtrów nad obrazem i oblicz iloczyn kropek, aby otrzymać skolimowaną macierz cech.

Warstwa ReLU

ReLU oznacza rektyfikowaną jednostkę liniową. Gdy mapy cech są już wyodrębnione, kolejnym krokiem jest przeniesienie ich do warstwy ReLU.

ReLU wykonuje operację element-wise i ustawia wszystkie ujemne piksele na 0. Wprowadza to nieliniowość do sieci, a wygenerowanym wyjściem jest wyprostowana mapa cech. Poniżej znajduje się wykres funkcji ReLU:

Oryginalny obraz jest skanowany z wieloma konwolucjami i warstwami ReLU w celu zlokalizowania cech.

Warstwa łączenia

Połączenie jest operacją próbkowania w dół, która zmniejsza wymiarowość mapy cech. Wyprostowana mapa funkcji przechodzi teraz przez warstwę łączenia w celu wygenerowania połączonej mapy funkcji.

Warstwa łączenia używa różnych filtrów do identyfikacji różnych części obrazu, takich jak krawędzie, narożniki, ciało, pióra, oczy i dziób.

Tak wygląda dotychczasowa struktura sieci neuronowej convolution:

Kolejny krok w procesie nosi nazwę spłaszczania. Spłaszczanie służy do przekształcenia wszystkich wynikowych dwuwymiarowych tablic z połączonych map cech w jeden długi ciągły wektor liniowy.

Spłaszczona macierz jest podawana jako wejście do warstwy w pełni połączonej w celu sklasyfikowania obrazu.

Oto jak dokładnie CNN rozpoznaje ptaka:

  • Piksele z obrazu są podawane do warstwy konwolucyjnej, która wykonuje operację konwolucji
  • W jej wyniku otrzymujemy mapę zwołaną
  • Mapa zwołana jest nakładana na funkcję ReLU w celu wygenerowania wyprostowanej mapy cech
  • Obraz jest przetwarzany za pomocą wielu konwolucji i warstw ReLU. do lokalizowania cech
  • Różne warstwy łączenia z różnymi filtrami są używane do identyfikacji określonych części obrazu
  • Połączona mapa cech jest spłaszczona i podawana do w pełni połączonej warstwy, aby uzyskać ostateczne wyjście

DARMOWY kurs uczenia maszynowego

Naucz się In-popyt Machine Learning Skills and ToolsStart Learning

FREE Machine Learning Course

Use case implementation using CNN

Będziemy używać zestawu danych CIFAR-10 z Canadian Institute For Advanced Research do klasyfikacji obrazów w 10 kategoriach przy użyciu CNN.

1. Pobierz zestaw danych:

2. Zaimportuj zestaw danych CIFAR:

3. Odczytaj nazwy etykiet:

4. Wyświetl obrazy za pomocą matplotlib:

5. Użyj funkcji pomocniczych do obsługi danych:

6. Utwórz model:

7. Zastosuj funkcje pomocnicze:

8. Utwórz warstwy dla konwolucji i łączenia:

9. Utwórz warstwę spłaszczoną przez przekształcenie warstwy łączącej:

10. Utwórz warstwę w pełni połączoną:

11. Ustaw wyjście na zmienną y_pred:

12. Zastosuj funkcję straty:

13. Utwórz optymalizator:

14. Utwórz zmienną do inicjalizacji wszystkich zmiennych globalnych:

15. Uruchom model, tworząc sesję grafu:

Buduj modele głębokiego uczenia w TensorFlow i poznaj framework open-source TensorFlow dzięki kursowi Deep Learning (z Keras &TensorFlow). Zapisz się teraz!

Learn More about CNN and Deep Learning

Tak budujesz CNN z wieloma warstwami ukrytymi i jak zidentyfikować ptaka przy użyciu jego wartości pikseli. Ukończyłeś również demo, aby sklasyfikować obrazy w 10 kategoriach przy użyciu zbioru danych CIFAR.

Możesz również zapisać się do programu podyplomowego w zakresie AI i uczenia maszynowego z Purdue University i we współpracy z IBM, i przekształcić się w eksperta w zakresie technik głębokiego uczenia przy użyciu TensorFlow, biblioteki oprogramowania open-source zaprojektowanej do prowadzenia badań w zakresie uczenia maszynowego i głębokich sieci neuronowych. Ten program w AI i Machine Learning obejmuje Python, Machine Learning, Natural Language Processing, Speech Recognition, Advanced Deep Learning, Computer Vision i Reinforcement Learning. Przygotuje Cię do jednej z najbardziej ekscytujących granic technologicznych na świecie.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.