czym są konwolucyjne sieci neuronowe (CNN)?
Ten artykuł jest częścią Demystifying AI, serii postów, które (próbują) disambiguate żargonu i mitów wokół AI.
od lat 50.XX wieku, czyli początków sztucznej inteligencji, informatycy próbują budować komputery, które mogą nadawać sens wizualnym danym., W następnych dziesięcioleciach dziedzina, która stała się znana jako wizja komputerowa, odnotowała stopniowe postępy. W 2012 roku wizja komputerowa zrobiła skok kwantowy, gdy grupa naukowców z Uniwersytetu w Toronto opracowała model sztucznej inteligencji, który znacznie przewyższył najlepsze algorytmy rozpoznawania obrazów.
system sztucznej inteligencji, który stał się znany jako AlexNet (nazwany na cześć głównego twórcy, Alexa Kriżewskiego), wygrał konkurs komputerowej wizji ImageNet 2012 z niesamowitą dokładnością 85%. Drugie miejsce uzyskało skromne 74 procent w teście.,
sercem AlexNet była konwolucyjna sieć neuronowa (CNN), wyspecjalizowany rodzaj sztucznej sieci neuronowej, która z grubsza naśladuje ludzki system widzenia. W ostatnich latach CNN stały się kluczowe dla wielu aplikacji komputerowych wizji. Oto, co musisz wiedzieć o historii i funkcjonowaniu CNN.
a brief history of convolutional neural networks
Convolutional neural networks, zwany także ConvNets, zostały po raz pierwszy wprowadzone w 1980 roku przez Yann LeCun, Postdoctoral Computer science badacz., LeCun bazował na pracy Kunihiko Fukushima, japońskiego naukowca, który kilka lat wcześniej wynalazł neocognitron, bardzo podstawową sieć neuronową rozpoznawania obrazu.
wczesna wersja CNN, zwana LeNet (po LeCun), mogła rozpoznawać Odręczne cyfry. CNNs znaleźli niszowy rynek w bankowości i usługach pocztowych oraz bankowości, gdzie czytają kody pocztowe na kopertach i cyfry na czekach.
ale mimo swojej pomysłowości, ConvNets pozostawali na uboczu widzenia komputerowego i sztucznej inteligencji, ponieważ stanęli przed poważnym problemem: nie mogli się skalować., CNNs potrzebował dużo danych i zasobów obliczeniowych, aby wydajnie pracować dla dużych obrazów. W tym czasie technika ta miała zastosowanie tylko do obrazów o niskiej rozdzielczości.
w 2012 roku AlexNet pokazał, że być może nadszedł czas, aby powrócić do głębokiego uczenia, gałęzi sztucznej inteligencji wykorzystującej wielowarstwowe sieci neuronowe. Dostępność dużych zbiorów danych, a mianowicie zestawu danych ImageNet z milionami oznakowanych obrazów i ogromnymi zasobami obliczeniowymi umożliwiła naukowcom tworzenie złożonych CNN, które mogły wykonywać zadania widzenia komputerowego, które wcześniej były niemożliwe.
jak działa CNN?,
Konwolucyjne sieci neuronowe składają się z wielu warstw sztucznych neuronów. Sztuczne neurony, szorstka imitacja ich biologicznych odpowiedników, są funkcjami matematycznymi, które obliczają ważoną sumę wielu wejść i wyjść wartość aktywacji.
zachowanie każdego neuronu jest określone przez jego wagi., Po podaniu wartości pikseli sztuczne neurony CNN wybierają różne cechy wizualne.
Po wprowadzeniu obrazu do Konwnetu każda z jego warstw generuje kilka map aktywacyjnych. Mapy aktywacji podkreślają istotne cechy obrazu. Każdy z neuronów pobiera łatkę pikseli jako wejście, mnoży ich wartości kolorów przez ich wagę, sumuje je i uruchamia przez funkcję aktywacji.
pierwsza (lub dolna) warstwa CNN zwykle wykrywa podstawowe cechy, takie jak krawędzie poziome, pionowe i ukośne., Wyjście pierwszej warstwy jest podawane jako wejście następnej warstwy, która wydobywa bardziej złożone cechy, takie jak narożniki i kombinacje krawędzi. W miarę wchodzenia w głąb konwolucyjnej sieci neuronowej warstwy zaczynają wykrywać funkcje wyższego poziomu, takie jak obiekty, twarze i inne.
operacja mnożenia wartości pikseli przez wagi i sumowania ich nazywa się „splotem” (stąd nazwa konwolucyjnej sieci neuronowej). CNN składa się zwykle z kilku warstw splotowych, ale zawiera również inne składniki. Końcowa warstwa CNN jest warstwą klasyfikacyjną, która przyjmuje wyjście końcowej warstwy splotu jako wejście (pamiętaj, że wyższe warstwy splotu wykrywają złożone obiekty).,
na podstawie mapy aktywacji końcowej warstwy splotu, warstwa klasyfikacyjna generuje zestaw wyników zaufania (wartości z zakresu od 0 do 1), które określają, jak prawdopodobne jest, że obraz ma należeć do klasy”.”Na przykład, jeśli masz ConvNet, który wykrywa koty, psy i konie, wynikiem ostatniej warstwy jest możliwość, że obraz wejściowy Zawiera którekolwiek z tych zwierząt.,
trening konwolucyjnej sieci neuronowej
jednym z wielkich wyzwań związanych z rozwojem CNN jest dostosowanie ciężaru poszczególnych neuronów, aby wydobyć odpowiednie cechy z obrazów. Proces regulacji tych ciężarów nazywa się” treningiem ” sieci neuronowej.
na początku CNN zaczyna się od losowych wag., Podczas szkolenia Programiści udostępniają sieci neuronowej duży zbiór danych z obrazami przypisanymi do odpowiednich klas (kot, pies, koń itp.). ConvNet przetwarza każdy obraz z jego losowymi wartościami, a następnie porównuje jego wynik z prawidłową etykietą obrazu. Jeśli Dane wyjściowe sieci nie są zgodne z etykietą—co prawdopodobnie ma miejsce na początku procesu treningowego-dokonuje ona niewielkiej korekty ciężaru swoich neuronów, tak aby następnym razem, gdy zobaczy ten sam obraz, jego dane wyjściowe będą nieco bliższe prawidłowej odpowiedzi.,
poprawki są wykonywane za pomocą techniki zwanej backropagation (lub backprop). Zasadniczo, backpropagation optymalizuje proces dostrajania i ułatwia sieci decydowanie, które jednostki należy dostosować, zamiast dokonywania losowych poprawek.
każdy przebieg całego zbioru danych treningowych nazywany jest „epoką.”ConvNet przechodzi kilka epok podczas treningu, dostosowując swoje ciężary w niewielkich ilościach. Po każdej epoce sieć neuronowa staje się nieco lepsza w klasyfikacji obrazów treningowych., Wraz z poprawą CNN, korekty dokonywane przez nią w wagach stają się coraz mniejsze. W pewnym momencie sieć „zbiega się”, co oznacza, że zasadniczo staje się tak dobra, jak tylko może.
po przeszkoleniu w CNN programiści używają zestawu danych testowych do weryfikacji jego dokładności. Zestaw danych testowych to zestaw oznakowanych obrazów, które nie były częścią procesu szkolenia. Każdy obraz jest uruchamiany przez Konwnet, a wynik jest porównywany z rzeczywistą etykietą obrazu. Zasadniczo, zestaw danych testowych ocenia, jak dobra sieć neuronowa stała się w klasyfikacji obrazów, których nie widział wcześniej.,
Jeśli CNN osiąga dobre wyniki na swoich danych treningowych, ale wyniki złe na danych testowych, mówi się, że zostały „przepełnione.”Zwykle dzieje się tak, gdy nie ma wystarczającej różnorodności danych treningowych lub gdy ConvNet przechodzi przez zbyt wiele epok w zbiorze danych treningowych.
sukces konwolucyjnych sieci neuronowych wynika w dużej mierze z dostępności ogromnych zbiorów danych obrazu opracowanych w ostatniej dekadzie. ImageNet, konkurs wspomniany na początku tego artykułu, otrzymał swój tytuł od imiennego zbioru danych z ponad 14 milionami oznaczonych obrazów., Istnieją inne bardziej wyspecjalizowane zbiory danych, takie jak MNIST, baza danych 70,000 obrazów odręcznych cyfr.
nie musisz jednak trenować każdej konwolucyjnej sieci neuronowej na milionach obrazów. W wielu przypadkach można użyć wstępnie przygotowanego modelu, takiego jak Alexnet lub ResNet firmy Microsoft, i finetune go dla innej bardziej wyspecjalizowanej aplikacji. Proces ten nazywa się Transfer learning, w którym wyszkolona sieć neuronowa jest przekwalifikowany mniejszy zestaw nowych przykładów.,
granice konwolucyjnych sieci neuronowych
pomimo swojej mocy i złożoności, konwolucyjne sieci neuronowe są zasadniczo maszynami do rozpoznawania wzorców. Mogą wykorzystać ogromne zasoby obliczeniowe, aby wydobyć malutkie i niepozorne wzorce wizualne, które mogą pozostać niezauważone dla ludzkiego oka. Ale jeśli chodzi o zrozumienie znaczenia treści obrazów, działają one słabo.
rozważ poniższy obrazek. Dobrze wyszkolony ConvNet powie Ci, że to wizerunek żołnierza, dziecka i amerykańskiej flagi., Ale osoba może podać długi opis sceny i porozmawiać o służbie wojskowej, wycieczkach w obcym kraju, poczuciu tęsknoty za domem, radości z ponownego spotkania z rodziną itp. Sztuczne sieci neuronowe nie mają pojęcia o tych pojęciach.
granice te stają się bardziej widoczne w praktycznych zastosowaniach konwolucyjnych sieci neuronowych. Na przykład CNN są obecnie szeroko stosowane do moderowania treści w sieciach społecznościowych., Ale pomimo ogromnych repozytoriów obrazów i filmów, na których są szkoleni, nadal mają problemy z wykrywaniem i blokowaniem nieodpowiednich treści. W jednym przypadku Facebook moderacja treści AI zakazał zdjęcie 30,000-letniej statuetki jako nagość.
również sieci neuronowe zaczynają pękać, gdy tylko nieco wyjdą z kontekstu. Kilka badań wykazało, że CNN wyszkolone na ImageNet i innych popularnych zestawach danych nie wykrywają obiektów, gdy widzą je w różnych warunkach oświetleniowych i pod nowymi kątami.,
ostatnie badania naukowców z MIT-IBM Watson AI Lab podkreślają te niedociągnięcia. Wprowadza również ObjectNet, zbiór danych, który lepiej reprezentuje różne niuanse postrzegania obiektów w prawdziwym życiu. CNN nie rozwijają modeli mentalnych, które ludzie mają na temat różnych obiektów i ich zdolności do wyobrażania sobie tych obiektów w wcześniej niewidocznych kontekstach.
innym problemem konwolucyjnych sieci neuronowych jest ich niezdolność do zrozumienia relacji między różnymi obiektami. Rozważ poniższy obraz, który jest znany jako” problem Bongard”, nazwany na cześć swojego wynalazcy, rosyjskiego Informatyka Michaiła Moisewicza Bongard. Problemy z bongardem przedstawiają dwa zestawy obrazów (sześć po lewej i sześć po prawej) i musisz wyjaśnić kluczową różnicę między tymi dwoma zestawami., Na przykład w poniższym przykładzie obrazy w lewym zestawie zawierają jeden obiekt, a obrazy w prawym zestawie dwa obiekty.
łatwo jest ludziom wyciągnąć takie wnioski z tak małych ilości próbek. Jeśli pokażę Ci te dwa zestawy, a następnie udostępnię Ci nowy obraz, będziesz mógł szybko zdecydować, czy powinien przejść do lewego lub prawego zestawu.
ale nadal nie ma konwolucyjnej sieci neuronowej, która mogłaby rozwiązać problemy Bongarda przy tak niewielu przykładach treningu. W jednym z badań przeprowadzonych w 2016 r. badacze sztucznej inteligencji wyszkolili CNN na 20 000 próbkach Bongarda i przetestowali je na 10 000 kolejnych. Wydajność CNN była znacznie niższa niż przeciętnych ludzi.
specyfika Konwnetów sprawia, że są one również podatne na ataki przeciwników, perturbacje w danych wejściowych, które pozostają niezauważone dla ludzkiego oka, ale wpływają na zachowanie sieci neuronowych., Ataki kontradyktoryjne stały się głównym źródłem obaw, ponieważ głębokie uczenie się, a zwłaszcza CNN, stały się integralnym elementem wielu krytycznych aplikacji, takich jak samochody samojezdne.
czy to oznacza, że CNN są bezużyteczne?, Mimo ograniczeń konwolucyjnych sieci neuronowych nie da się jednak zaprzeczyć, że wywołały one rewolucję w sztucznej inteligencji. Obecnie CNN są używane w wielu aplikacjach wizyjnych, takich jak rozpoznawanie twarzy, wyszukiwanie i edycja obrazów, rozszerzona rzeczywistość i wiele innych. W niektórych obszarach, takich jak przetwarzanie obrazów medycznych, dobrze wyszkolone Konwnety mogą nawet przewyższać ludzkich ekspertów w wykrywaniu odpowiednich wzorców.,
Jak pokazują postępy w konwolucyjnych sieciach neuronowych, nasze osiągnięcia są niezwykłe i użyteczne, ale wciąż jesteśmy bardzo daleko od powielania kluczowych składników ludzkiej inteligencji.