Przewodnik dla początkujących po splotowych sieciach neuronowych (CNN): Wyjaśnienie krok po kroku

Opublikowany: 2022-06-06

Głębokie uczenie ułatwiło wiele podejść do wizji komputerowej, obliczeń kognitywnych i udoskonalonego przetwarzania danych wizualnych. Jednym z takich przykładów jest użycie CNN lub Convolutional Neural Networks do klasyfikacji obiektów lub obrazów. Algorytmy CNN zapewniają ogromną przewagę w klasyfikacji wizualnej, umożliwiając maszynom postrzeganie otaczającego ich świata (w postaci pikseli) tak, jak robią to ludzie.

CNN to zasadniczo algorytm rozpoznawania, który pozwala maszynom zostać wystarczająco przeszkolonym, aby przetwarzać, klasyfikować lub identyfikować wiele parametrów od danych wizualnych po warstwy. Promuje to zaawansowaną identyfikację obiektów i klasyfikację obrazów, umożliwiając maszynom lub oprogramowaniu dokładną identyfikację wymaganych obiektów na podstawie danych wejściowych.

Systemy oparte na CNN uczą się na podstawie danych treningowych opartych na obrazach i mogą klasyfikować przyszłe obrazy wejściowe lub dane wizualne na podstawie swojego modelu treningowego. Dopóki zestaw danych używany do uczenia zawiera szereg przydatnych wskazówek wizualnych (danych przestrzennych), klasyfikator obrazu lub obiektu będzie bardzo dokładny.

CNN to jedno z najpopularniejszych podejść do głębokiego uczenia, które jest obecnie stosowane w popularnych wdrożeniach, takich jak system klasyfikacji obrazów Google Lens lub w autonomicznych pojazdach, takich jak Teslas. Wynika to w szczególności z niezawodnego rozpoznawania wzorców, które jest możliwe za pomocą CNN, oprócz wykrywania obiektów.

Ucz się uczenia maszynowego online z najlepszych światowych uniwersytetów — studiów magisterskich, programów podyplomowych dla kadry kierowniczej i zaawansowanego programu certyfikacji w zakresie uczenia maszynowego i sztucznej inteligencji, aby przyspieszyć swoją karierę.

Spis treści

Zastosowania CNN

Wykorzystanie systemów opartych na CNN można zaobserwować w systemach bezpieczeństwa, systemach obronnych, diagnostyce medycznej, analizie obrazu, klasyfikacji mediów i innym oprogramowaniu rozpoznającym. Na przykład CNN może być używany z RNN (Recurrent Neural Network) do tworzenia oprogramowania do rozpoznawania wideo lub rozpoznawania akcji.

Jest to bardziej zaawansowana aplikacja klasyfikacji wideo, która umożliwia systemom identyfikowanie obiektów w czasie rzeczywistym na podstawie wideo poprzez analizę informacji przestrzennych dostępnych w klatkach, które sekwencyjnie tworzą wideo.

Sekwencja tych ramek zawiera również informacje czasowe, które pomagają modelować dane poprzez przetwarzanie przestrzenne i czasowe, umożliwiając wykorzystanie hybrydowej architektury składającej się zarówno ze splotów, jak i powtarzających się warstw. Samochody Tesla i Waymo wykorzystują CNN do rozpoznawania i klasyfikowania różnych aspektów dróg oraz nadjeżdżających obiektów lub pojazdów za pomocą danych rejestrowanych przez kamery w czasie rzeczywistym.

Poznaj nasze kursy na temat uczenia maszynowego i sztucznej inteligencji

Zaawansowana certyfikacja w zakresie uczenia maszynowego i chmury od IITM Master of Science in Machine Learning & AI od LJMU Executive Post Graduate Programme in Machine Learning & AI od IITB
Zaawansowany program certyfikacji w uczeniu maszynowym i NLP z IIITB Zaawansowany program certyfikacji w uczeniu maszynowym i uczeniu głębokim z IIITB Zaawansowany program certyfikacji w AI dla menedżerów z IITR

Sieci neuronowe umożliwiają systemom pojazdów wykrywanie linii, segmentację otoczenia, nawigację i zautomatyzowaną jazdę. Umiejętności te pozwalają autonomicznym samochodom podejmować złożone decyzje w oparciu o wzorce klasyfikacji, takie jak unikanie obiektów, zmiana pasa, przyspieszanie, zwalnianie lub całkowite zatrzymanie przez hamowanie w razie potrzeby.

Są to jednak bardziej zaawansowane implementacje CNN, które wymagają sprzętu i czujników, takich jak GPS, RADAR, LiDAR, a także ogromnych ilości danych treningowych i wysokowydajnych środowisk przetwarzania. Pomagają one modelom głębokiego uczenia się stać się systemami podejmowania decyzji, które przetwarzają dane przychodzące z czujników w czasie rzeczywistym i podejmują odpowiednie działania.

Wykorzystując dane z czujników, wizja kamery zapewnia również trójwymiarową percepcję otoczenia (rekonstrukcja wizualna, analiza głębokości itp.) i może dokładnie analizować odległość (za pomocą laserów). W ten sposób model może przewidzieć przyszłą pozycję pojazdów lub obiektów, ostatecznie decydując o najlepszym sposobie działania.

Modele CNN opierają się na klasyfikacji, segmentacji, lokalizacji, a następnie budują prognozy. Dzięki temu samochody te reagują prawie tak, jak ludzkie mózgi w każdej sytuacji, a czasem nawet skuteczniej niż ludzie kierowcy.

CNN naprawdę wypełnia lukę między maszynami a ludźmi, zwłaszcza jeśli chodzi o wizję komputerową i wykrywanie celów. Aby jednak zrozumieć CNN, musimy najpierw poznać sieci neuronowe i zacząć używać algorytmów CNN do dwuwymiarowych danych wizualnych.

Czym jest sieć neuronowa w głębokim uczeniu?

Głębokie uczenie jest jedną z najważniejszych gałęzi uczenia maszynowego i wykorzystuje ANN lub sztuczne sieci neuronowe (SSN) do wdrożenia jako nadzorowaną, nienadzorowaną lub częściowo nadzorowaną metodologię uczenia maszynowego. Te typy modeli uczenia maszynowego opierają się na wielu warstwach przetwarzania w celu pracy na funkcjach wyższego poziomu w danych.

Warstwy to zasadniczo wiele węzłów lub bloków, które są ułożone razem jako jednostki obliczeniowe. Warstwy te skutecznie naśladują ludzkie neurony i działają w taki sam sposób jak ludzki mózg. Dzięki stopniowemu tworzeniu warstw model może stać się znacznie bardziej zaawansowany niż początkowa warstwa wejściowa, która zawierała tylko wstępnie przetworzone dane.

Algorytmy sieci neuronowych wyodrębniają dane wyjściowe, które mogą przesyłać obliczenia do przyszłych warstw, aż do osiągnięcia końcowej warstwy wyjściowej. Tworzy to sieć, w której wszystkie węzły z każdej kolejnej warstwy są połączone z pojedynczym węzłem z warstwy poprzedniej. Za każdym razem, gdy modele wykorzystują więcej niż dwie warstwy, są one klasyfikowane jako głębokie sieci neuronowe (DNN). Sieci te nie tworzą cyklu i pozwalają na wielowarstwową percepcję, wprowadzając w ten sposób różne wymiary również do predykcji i przetwarzania danych.

Przeczytaj nasze popularne artykuły 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ć

Oto kilka typowych frameworków używanych do Deep Learning:

  • Przepływ Tensora
  • Keras
  • Apache MXNet

Co to jest splotowa sieć neuronowa?

Splotowe sieci neuronowe to rodzaj sieci ANN, które są używane głównie do pracy z danymi pikselowymi w celu przetwarzania obrazów lub rozpoznawania obrazów. CNN są używane w Deep Learning do zadań generatywnych i opisowych, które wykorzystują widzenie maszynowe i systemy oparte na rekomendacjach.

CNN jest bardziej wydajną siecią SSN podobną do sieci DNN, ale nadal zmniejsza złożoność sieci neuronowej Feedforward. Dzieje się tak, ponieważ CNN zasadniczo opiera się na dwóch warstwach, warstwie mapy obiektów i warstwie wyodrębniania obiektów. Dane wejściowe każdego węzła wyodrębniają obiekt lokalny z lokalnego pola receptywnego poprzedniej warstwy.

Relacja pozycyjna między elementami lokalnymi i innymi jest wykreślana lub mapowana po zakończeniu wyodrębniania. Aby ostateczna rozdzielczość była bardziej dokładna, po warstwach splotu następują warstwy obliczeniowe, które obliczają średnie lokalne i wtórne wyodrębnianie cech. Mimo że CNN w większości działają z dwiema warstwami, prognozy są niezwykle dokładne ze względu na włączenie ekstrakcji wielu funkcji i zniekształceń niezmienniczych.

Węzły w tej samej płaszczyźnie mapy obiektów mogą uczyć się jednocześnie dzięki wspólnym wagom. Zmniejsza to złożoność sieci i umożliwia wprowadzanie wielowymiarowych obrazów wejściowych. W przeciwieństwie do innych sieci neuronowych, CNN nie wymagają przekształcania obrazów w obrazy o niższej rozdzielczości, ponieważ wymagania dotyczące przetwarzania są niskie.

Model ten jest podobny do percepcji wielowarstwowej, z tą różnicą, że CNN nie są podatne na nadmierne dopasowanie danych, co czyni je mniej złożonymi. Odbywa się to poprzez uregulowanie podejścia wielowarstwowego perceptronu poprzez karanie parametrów lub przycinanie pominiętych połączeń.

Sieci CNN używają wzorca hierarchicznego w danych do tworzenia wzorców według ich poziomu złożoności. Splotowe sieci neuronowe prawie nie wymagają wstępnego przetwarzania w porównaniu z innymi algorytmami klasyfikacji, zwłaszcza w przypadku obrazów i wideo. Korzystając z NLP, można nawet wykorzystać CNN do bardziej zaawansowanych zastosowań w robotyce, diagnostyce medycznej i automatyzacji. Sieci CNN świetnie współpracują z większością nienadzorowanych technik uczenia maszynowego i niezależnie optymalizują filtry modeli za pomocą zautomatyzowanych metod uczenia się.

Oto kilka dostępnych architektur CNN

  • GoogleLeNet
  • AlexNet
  • LeNet
  • ZFNet
  • ResNet
  • Sieć VGG

Oto przykład wdrożenia CNN

Załóżmy, że z losowego zestawu obrazów musimy klasyfikować ptaki, koty, psy, samochody i ludzi. Na początek musimy najpierw znaleźć zestaw danych uczących, który można wykorzystać jako punkt odniesienia dla przyszłych obliczeń. Przykładem dobrego zestawu danych treningowych może być zestaw danych zawierający 50 000 64×64-pikselowych zdjęć ptaków, kotów, psów, samochodów i ludzi.

Każdy z tych celów stanie się etykietami klas z powiązanymi wartościami całkowitymi. Etykietami klas będą „ptaki”, „koty”, „psy”, „samochody” i „ludzie”, o wartościach 0, 1, 2, 3 i 4. Po przeszkoleniu modelu CNN przy użyciu tego zbioru danych i wzorców , będzie w stanie identyfikować wizualne wskazówki z losowych danych wejściowych, a następnie klasyfikować je zgodnie z ich etykietami. Ostateczny model może dokładnie zidentyfikować pięć różnych typów obiektów (etykiet) na podstawie losowego zestawu obrazów przedstawiających te obiekty.

Oto niezbędne kroki do zbudowania modelu CNN

  • Ładowanie zbioru danych.
  • Przygotowanie danych pikseli.
  • Definiowanie modelu.
  • Ocena modelu.
  • Przedstawienie wyników.
  • Pełne pobieranie próbek.
  • Opracuj model podstawowy.
  • Zaimplementuj techniki regularyzacji w celu ulepszenia modelu.
  • Rozszerzanie danych.
  • Finalizacja modelu i dalsza ocena.

CNN Deep Learning to obiecująca dziedzina z doskonałymi perspektywami kariery. Jeśli planujesz budować karierę w CNN, możesz sprawdzić Advanced Certificate Program upGrad w programie Machine Learning & Deep Learning .

Jaka jest różnica między klasycznymi sieciami neuronowymi (inne sieci SNN) a CNN?

Główna różnica między klasycznymi sieciami neuronowymi, takimi jak sztuczna sieć neuronowa (ANN) i CNN, polega na tym, że tylko ostatnia warstwa CNN jest połączona całkowicie, aw ANN każdy neuron jest połączony z każdym innym neuronem.

Czym są głębokie sieci neuronowe?

Głębokie uczenie wywodzi się z szerszej rodziny pojęć związanych z uczeniem maszynowym, które dodatkowo opiera się na sztucznych sieciach neuronowych z uczeniem reprezentacji.

Czy NLP może być używany z CNN?

Podobnie jak w przypadku klasyfikacji zdań, CNN może być używany do kilku zadań NLP, takich jak klasyfikacja sentymentu, tłumaczenie maszynowe, podsumowanie tekstu, wybór odpowiedzi i tym podobne.