Konwolucyjna sieć neuronowa

W tym artykule zagłębimy się w fascynujący świat Konwolucyjna sieć neuronowa, badając jego wiele aspektów i znaczenie w dzisiejszym społeczeństwie. Od swoich początków po obecność w życiu codziennym, Konwolucyjna sieć neuronowa z biegiem czasu był przedmiotem debaty, badań i podziwu. Podczas tej podróży będziemy starali się zrozumieć jego wpływ w różnych obszarach, od kultury po technologię, w tym jego wpływ na politykę i gospodarkę. Dowiemy się, jak Konwolucyjna sieć neuronowa wyznaczył ważne kamienie milowe w historii i ukształtował sposób, w jaki postrzegamy otaczający nas świat. Podobnie zbadamy jego rolę dzisiaj i prognozy dotyczące jego ewolucji w przyszłości. Wkrótce zbadamy różne perspektywy i refleksje, jakie Konwolucyjna sieć neuronowa budzi w społeczeństwie, otwierając drzwi do pouczającej debaty na temat jego przydatności i znaczenia we współczesnym kontekście.

Konwolucyjna sieć neuronowa (ang. Convolutional Neural Network, CNN) – rodzaj jednokierunkowej sieci neuronowej, która uczy się poprzez optymalizację filtrów (lub jądra). Ten typ sieci głębokiego uczenia został zastosowany do przetwarzania i tworzenia prognoz na podstawie wielu różnych typów danych, w tym tekstu, obrazów i dźwięku[1]. Konwolucyjne sieci neuronowe są de facto standardem w widzeniu komputerowym opartym na uczeniu głębokim[2] i przetwarzaniu obrazu, jednak wraz z popularyzacją nowych architektur jak transformator, znajdowane są alternatywy[3][4].

Sieci konwolucyjne zostały zainspirowane procesami biologicznymi[5][6], ponieważ wzór połączeń między neuronami przypomina organizację kory wzrokowej. Pojedyncze neurony korowe reagują na bodźce tylko w ograniczonym obszarze pola widzenia, zwanym polem recepcyjnym. Pola recepcyjne różnych neuronów częściowo zachodzą na siebie, pokrywając całe pole widzenia[6].

W porównaniu z innymi algorytmami klasyfikacji obrazów, sieci CNN wykorzystują stosunkowo mało wstępnego przetwarzania. Oznacza to, że sieć uczy się optymalizować filtry (lub jądra) poprzez automatyczne uczenie się, podczas gdy w tradycyjnych algorytmach filtry te są opracowywane ręcznie. Upraszcza to i automatyzuje proces, zwiększając wydajność i skalowalność oraz eliminując wąskie gardła wynikające z ingerencji człowieka[7].

Porównanie architektur CNN LeNet i AlexNet z warstwą wejściową (kolor szary) i konwolucyjną (kolor niebieski), łączenia (kolor różowy) i połączeń każdy-z-każdym (kolor żółty)

Konwolucyjna sieć neuronowa składa się z warstwy wejściowej, warstw ukrytych (środkowych) i warstwy wyjściowej. W CNN warstwy ukryte obejmują jedną lub więcej warstw wykonujących konwolucje. Zazwyczaj obejmuje to warstwę wykonującą iloczyn skalarny jądra z macierzą wejściową warstwy. Produktem tym jest zazwyczaj iloczyn Frobeniusa, a jego funkcją aktywacji jest z reguły funkcja ReLU. W miarę jak jądro splotu przesuwa się wzdłuż macierzy wejściowej dla danej warstwy, operacja splotu generuje mapę cech, która z kolei tworzy dane wejściowe kolejnej warstwy. Następnie kolejne warstwy, takie jak warstwy łączenia, warstwy połączeń każdy-z-każdym i warstwy normalizacyjne[8].

Główne elementy

Architektura CNN składa się ze stosu odrębnych warstw, które przekształcają dane wejściowe w wyjściową (np. przechowującą wyniki zajęć) za pośrednictwem funkcji. Powszechnie stosuje się kilka różnych typów warstw. Poniżej omówiono je bardziej szczegółowo.

Warstwa konwolucyjna

Przykład wykonania konwolucji. Konwolucja ma krok 1, wypełnienie zerowe, a rozmiar jądra wynosi 3x3. Jądrem splotu jest filtr Laplace'a.

Warstwa konwolucyjna stanowi podstawowy element sieci CNN. Parametry warstwy składają się z zestawu filtrów uczących się (lub jąder(inne języki)), które mają małe pole wykonywania operacji ale są wykonywane na wszystkich danych wejściowych po kolei. Podczas przejścia do przodu każdy filtr jest spleciony na szerokości i wysokości objętości wejściowej, co powoduje obliczenie iloczynu skalarnego między wejściami filtra a wejściem i utworzenie dwuwymiarowej mapy aktywacji danego filtra. W rezultacie sieć uczy się filtrów, które aktywują się, gdy wykryje pewien konkretną cechę w pewnej pozycji przestrzennej w danych wejściowych[9].

Łączność lokalna

Typowa architektura CNN

W przypadku danych wejściowych o dużym rozmiarze, takich jak obrazy, łączenie neuronów ze wszystkimi neuronami z poprzedniej warstwy jest niepraktyczne, ponieważ taka architektura sieci nie uwzględnia przestrzennej struktury danych. Sieci splotowe wykorzystują lokalną korelację przestrzenną, wymuszając rozrzedzenie pomiędzy neuronami sąsiadujących warstw: każdy neuron jest połączony tylko z małym obszarem danych wejściowych[10].

Warstwa łączenia (pooling)

Przykład zastosowania łączenia wartości maksymalnych macierzy 2x2 z krokiem 2
Łączenie wartości maksymalnych z filtrem 2x2 i krokiem = 2

Inną ważną koncepcją sieci CNN jest łączenie, które jest stosowane jako forma nieliniowego próbkowania w dół . Grupowanie umożliwia zmniejszenie próbkowania, ponieważ zmniejsza wymiary przestrzenne (wysokość i szerokość) map cech wejściowych, zachowując jednocześnie najważniejsze informacje. Istnieje kilka nieliniowych funkcji implementujących grupowanie, przy czym najczęściej stosowane są funkcje maksymalnego i średniego łączenia . Grupowanie polega na agregowaniu informacji z małych obszarów danych wejściowych, co powoduje tworzenie partycji mapy cech wejściowych, zwykle przy użyciu okna o stałym rozmiarze (np. 2x2) i zastosowaniu kroku (często 2) w celu przesunięcia okna w obrębie danych wejściowych[11].

Oprócz maksymalnego grupowania, jednostki grupujące mogą używać innych funkcji, takich jak grupowanie średnie lub grupowanie zgodne z normą ℓ 2 . Historycznie rzecz biorąc, średnie łączenie było często stosowane, ale ostatnio wyszło z użycia w porównaniu z maksymalnym łączeniem, które w praktyce ogólnie sprawdza się lepiej[12].

Warstwa ReLU

ReLU jest skrótem od rektyfikowanej jednostki liniowej. Termin został zaproponowany przez Alstona Householdera w 1941 r.[13] i wykorzystany w CNN przez Kunihiko Fukushimę w 1969 r.[14]. ReLU stosuje funkcję aktywacji [15]. Skutecznie usuwa wartości ujemne z mapy aktywacji, ustawiając je na zero[16]. Wprowadza nieliniowość do funkcji decyzyjnej i całej sieci, nie wpływając przy tym na pola recepcyjne warstw konwolucyjnych. W 2011 roku Xavier Glorot, Antoine Bordes i Yoshua Bengio odkryli, że ReLU umożliwia lepsze trenowanie głębszych sieci[17] w porównaniu z powszechnie stosowanymi funkcjami aktywacji przed 2011 rokiem.

Warstwa połączeń każdy-z-każdym (fully connected)

Po zastosowaniu kilku warstw konwolucyjnych i warstw łączenia, ostateczna klasyfikacja odbywa się poprzez warstwy połączeń każdy-z-każdym. Neurony w warstwie w pełni połączonej mają połączenia ze wszystkimi aktywacjami w warstwie poprzedniej, jak widać w klasycznych sztucznych sieciach neuronowych Ich aktywacje można zatem obliczyć jako transformację afiniczną, w której mnożenie macierzy następuje po przesunięciu odchylenia (dodanie wektorowe wyuczonego lub stałego członu odchylenia)[18][19].

Proces uczenia

Uczenie CNN polega na adaptacji parametrów filtrów w warstwie konwolucyjnej jak i odpowiednim doborze wag w warstwie połączeń każdy-z-każdym. Z reguły używa się propagacji wstecznej do aktualizacji wartości sieci[20][21].

Przypisy

  1. Yann LeCun, Yoshua Bengio, Geoffrey Hinton, Deep learning, „Nature”, 521 (7553), 2015, s. 436–444, DOI10.1038/nature14539, ISSN 1476-4687 (ang.).
  2. Y. LeCun i inni, Backpropagation Applied to Handwritten Zip Code Recognition, „Neural Computation”, 1 (4), 1989, s. 541–551, DOI10.1162/neco.1989.1.4.541, ISSN 0899-7667 .
  3. Are Transformers replacing CNNs in Object Detection? — Picsellia , www.picsellia.com .
  4. Chong Zhou, Chen Change Loy, Bo Dai, Interpret Vision Transformers as ConvNets with Dynamic Convolutions, arXiv, 19 września 2023, DOI10.48550/arXiv.2309.10713 .
  5. Kunihiko Fukushima, Neocognitron, „Scholarpedia”, 2 (1), 2007, s. 1717, DOI10.4249/scholarpedia.1717, ISSN 1941-6016 (ang.).
  6. a b D.H. Hubel, T.N. Wiesel, Receptive fields and functional architecture of monkey striate cortex, „The Journal of Physiology”, 195 (1), 1968, s. 215–243, DOI10.1113/jphysiol.1968.sp008455, ISSN 0022-3751, PMID4966457, PMCIDPMC1557912 .
  7. Wenyi Lin i inni, Comparison of handcrafted features and convolutional neural networks for liver MR image adequacy assessment, „Scientific Reports”, 10 (1), 2020, s. 20336, DOI10.1038/s41598-020-77264-y, ISSN 2045-2322 (ang.).
  8. Ljubisa Stankovic, Danilo Mandic, Convolutional Neural Networks Demystified: A Matched Filtering Perspective Based Tutorial, arXiv, 22 marca 2022, DOI10.48550/arXiv.2108.11663 .
  9. Konwolucyjne sieci neuronowe 1: konwolucja - manduk.ai , manduk.ai, 23 listopada 2019 .
  10. Zewen Li i inni, A Survey of Convolutional Neural Networks: Analysis, Applications, and Prospects, arXiv, 1 kwietnia 2020, DOI10.48550/arXiv.2004.02806 .
  11. Rajendran Nirthika i inni, Pooling in convolutional neural networks for medical image analysis: a survey and an empirical study, „Neural Computing & Applications”, 34 (7), 2022, s. 5321–5347, DOI10.1007/s00521-022-06953-8, ISSN 0941-0643, PMID35125669, PMCIDPMC8804673 .
  12. Dominik Scherer, Andreas Müller, Sven Behnke, Evaluation of Pooling Operations in Convolutional Architectures for Object Recognition, Konstantinos Diamantaras, Wlodek Duch, Lazaros S. Iliadis (red.), Berlin, Heidelberg: Springer, 2010, s. 92–101, DOI10.1007/978-3-642-15825-4_10, ISBN 978-3-642-15825-4 (ang.).
  13. Alston S. Householder. A theory of steady-state activity in nerve-fiber networks: I. Definitions and preliminary lemmas. „The Bulletin of Mathematical Biophysics”. 3 (2), s. 63–69, June 1941. DOI: 10.1007/BF02478220. ISSN 0007-4985. (ang.). 
  14. K. Fukushima. Visual feature extraction by a multilayered network of analog threshold elements. „IEEE Transactions on Systems Science and Cybernetics”. 5 (4), s. 322–333, 1969. DOI: 10.1109/TSSC.1969.300225. 
  15. Alex Krizhevsky. ImageNet classification with deep convolutional neural networks. „Communications of the ACM”. 60 (6), s. 84–90, 2017-05-24. DOI: 10.1145/3065386. ISSN 0001-0782. . 
  16. Vadim Romanuke. Appropriate number and allocation of ReLUs in convolutional neural networks. „Research Bulletin of NTUU "Kyiv Polytechnic Institute"”. 1 (1), s. 69–78, 2017. DOI: 10.20535/1810-0546.2017.1.88156. 
  17. Imagenet classification with deep convolutional neural networks .
  18. EITCA Academy, What is the role of the fully connected layer in a CNN? , EITCA Academy, 13 sierpnia 2023 (ang.).
  19. EITCA Academy, What is the role of the fully connected layer in a CNN? , EITCA Academy, 13 sierpnia 2023 (ang.).
  20. Podręcznik: Sieć konwolucyjna CNN | eSezam , esezam.okno.pw.edu.pl .
  21. Giuseppe Pio Cannata, Backpropagation in Fully Convolutional Networks (FCNs) , Towards Data Science, 3 lutego 2021 (ang.).