Podstawy AI

Co to są CNN (Sieci Neuronowe Konwolucyjne)?

mm
Dodaj Unite.AI do preferowanych ÅšrÃģdeł w Google

Być moÅže zastanawiałeś się, jak Facebook (META ) lub Instagram są w stanie automatycznie rozpoznawać twarze na zdjęciu, lub jak Google (GOOGL ) pozwala wyszukiwać zdjęcia w sieci tylko poprzez przesłanie zdjęcia. Te funkcje są przykładami komputerowego widzenia, a są one napędzane przez sieci neuronowe konwolucyjne (CNN). Ale co dokładnie są sieci neuronowe konwolucyjne? Zanurzmy się głęboko w architekturę CNN i zrozumiemy, jak one działają.

Co to są Sieci Neuronowe?

Przed rozpoczęciem rozmowy o sieciach neuronowych konwolucyjnych, poświęćmy chwilę na zdefiniowanie zwykłych sieci neuronowych. Istnieje inny artykuł na temat sieci neuronowych, więc nie będziemy się tym zajmować zbyt głęboko. Jednak aby je krÃģtko zdefiniować, są to modele obliczeniowe inspirowane ludzkim mÃģzgiem. Sieć neuronowa działa poprzez przyjmowanie danych i manipulowanie nimi poprzez dostosowanie “wag”, ktÃģre są załoÅženiami o tym, jak cechy wejściowe są ze sobą powiązane i jak są one powiązane z klasą obiektu. Podczas szkolenia sieci, wartości wag są dostosowywane i powinny one zbiec się do wag, ktÃģre dokładnie ujmują relacje między cechami.

To jest sposÃģb, w jaki działa sieć neuronowa z przekazywaniem do przodu, a CNN składają się z dwÃģch części: sieci neuronowej z przekazywaniem do przodu i grupy warstw konwolucyjnych.

Co to są Sieci Neuronowe Konwolucyjne (CNN)?

Co to są “konwolucje”, ktÃģre zachodzą w sieci neuronowej konwolucyjnej? Konwolucja jest operacją matematyczną, ktÃģra tworzy zestaw wag, tworząc reprezentację części obrazu. Ten zestaw wag nazywany jest jądrem lub filtrem. Filtrowanie, ktÃģre jest tworzone, jest mniejsze niÅž cały obraz wejściowy, pokrywając tylko podzbiÃģr obrazu. Wartości w filtrze są mnoÅžone przez wartości w obrazie. Filtrowanie jest następnie przenoszone, aby utworzyć reprezentację nowej części obrazu, a proces jest powtarzany, aÅž cały obraz zostanie pokryty.

Inny sposÃģb myślenia o tym jest wyobraÅženie sobie muru z cegieł, z cegłami reprezentującymi piksele w obrazie wejściowym. “Okno” jest przesuwane wzdłuÅž muru, co jest filtrowaniem. Cegły, ktÃģre są widoczne przez okno, są pikselami, ktÃģrych wartości są mnoÅžone przez wartości w filtrze. Dlatego ten sposÃģb tworzenia wag z filtrowaniem jest często nazywany “techniką przesuwania okna”.

Wynik z filtrÃģw przesuwanych po całym obrazie wejściowym jest dwuwymiarową tablicą reprezentującą cały obraz. Tablica ta nazywana jest “mapą cech”.

Dlaczego Konwolucje są Niezbędne

Jaki jest cel tworzenia konwolucji? Konwolucje są konieczne, poniewaÅž sieć neuronowa musi być w stanie interpretować piksele w obrazie jako wartości numeryczne. Funkcja warstw konwolucyjnych jest przekształcenie obrazu w wartości numeryczne, ktÃģre sieć neuronowa moÅže zinterpretować, a następnie wyodrębnić istotne wzorce. Praca filtrÃģw w sieci konwolucyjnej polega na tworzeniu dwuwymiarowej tablicy wartości, ktÃģre mogą być przekazane do pÃģÅšniejszych warstw sieci neuronowej, ktÃģre będą uczyć się wzorcÃģw w obrazie.

Filtry i Kanały

Zdjęcie: cecebur via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

CNN nie uÅžywa tylko jednego filtra, aby nauczyć się wzorcÃģw z obrazÃģw wejściowych. UÅžywa się wielu filtrÃģw, poniewaÅž rÃģÅžne tablice utworzone przez rÃģÅžne filtry prowadzą do bardziej złoÅžonej, bogatszej reprezentacji obrazu wejściowego. Typowe liczby filtrÃģw dla CNN to 32, 64, 128 i 512. Im więcej filtrÃģw, tym więcej moÅžliwości ma CNN do badania danych wejściowych i uczenia się z nich.

CNN analizuje rÃģÅžnice w wartościach pikseli, aby określić granice obiektÃģw. W przypadku obrazu w odcieniach szarości, CNN będzie brał pod uwagę tylko rÃģÅžnice między czernią i bielą, jasnością i ciemnością. Kiedy obrazy są w kolorze, CNN musi brać pod uwagę nie tylko ciemność i jasność, ale takÅže trzy rÃģÅžne kanały kolorÃģw – czerwony, zielony i niebieski. W tym przypadku filtry posiadają 3 kanały, tak jak sam obraz. Liczba kanałÃģw, ktÃģre filtry posiadają, nazywana jest ich głębią, a liczba kanałÃģw w filtrze musi odpowiadać liczbie kanałÃģw w obrazie.

Architektura Sieci Neuronowej Konwolucyjnej (CNN)

Zobaczmy całą architekturę sieci neuronowej konwolucyjnej. Warstwa konwolucyjna znajduje się na początku kaÅždej sieci konwolucyjnej, poniewaÅž jest konieczna do przekształcenia danych obrazu w tablice numeryczne. Jednak warstwy konwolucyjne mogą rÃģwnieÅž następować po innych warstwach konwolucyjnych, co oznacza, Åže te warstwy mogą być stapiane na siebie. Posiadanie wielu warstw konwolucyjnych oznacza, Åže dane wyjściowe z jednej warstwy mogą przejść dalsze konwolucje i być grupowane w istotne wzorce. Praktycznie oznacza to, Åže gdy dane obrazu przechodzą przez warstwy konwolucyjne, sieć zaczyna “rozpoznawać” bardziej złoÅžone cechy obrazu.

Wczesne warstwy sieci konwolucyjnej są odpowiedzialne za wyodrębnienie niskopoziomowych cech, takich jak piksele, ktÃģre tworzą proste linie. PÃģÅšniejsze warstwy sieci konwolucyjnej połączą te linie w kształty. Ten proces przechodzenia od powierzchniowej analizy do głębokiej analizy trwa, aÅž sieć konwolucyjna zacznie rozpoznawać złoÅžone kształty, takie jak zwierzęta, ludzkie twarze i samochody.

Po przejściu danych przez wszystkie warstwy konwolucyjne, przechodzą one do gęsto połączonej części sieci neuronowej. Warstwy gęsto połączone są tym, co tradycyjna sieć neuronowa z przekazywaniem do przodu wygląda – seria węzłÃģw ułoÅžonych w warstwy, połączonych ze sobą. Dane przechodzą przez te gęsto połączone warstwy, ktÃģre uczą się wzorcÃģw, ktÃģre zostały wyodrębnione przez warstwy konwolucyjne, a w ten sposÃģb sieć staje się w stanie rozpoznawać obiekty.

Blogger i programista ze specjalnościami w Machine Learning i Deep Learning tematy. Daniel liczy, Åže pomoÅže innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.