Przetwarzanie danych osobowych

Nasza witryna korzysta z plików cookies

Wykorzystujemy pliki cookie do spersonalizowania treści i reklam, aby oferować funkcje społecznościowe i analizować ruch w naszej witrynie, a także do prawidłowego działania i wygodniejszej obsługi. Informacje o tym, jak korzystasz z naszej witryny, udostępniamy partnerom społecznościowym, reklamowym i analitycznym. Partnerzy mogą połączyć te informacje z innymi danymi otrzymanymi od Ciebie lub uzyskanymi podczas korzystania z ich usług i innych witryn.

Masz możliwość zmiany preferencji dotyczących ciasteczek w swojej przeglądarce internetowej. Jeśli więc nie wyrażasz zgody na zapisywanie przez nas plików cookies w twoim urządzeniu zmień ustawienia swojej przeglądarki, lub opuść naszą witrynę.

Jeżeli nie zmienisz tych ustawień i będziesz nadal korzystał z naszej witryny, będziemy przetwarzać Twoje dane zgodnie z naszą Polityką Prywatności. W dokumencie tym znajdziesz też więcej informacji na temat ustawień przeglądarki i sposobu przetwarzania twoich danych przez naszych partnerów społecznościowych, reklamowych i analitycznych.

Zgodę na wykorzystywanie przez nas plików cookies możesz cofnąć w dowolnym momencie.

Optyczne.pl

Artykuły

Sztuczna Inteligencja w fotografii - przeszłość, teraźniejszość i przyszłość

Sztuczna Inteligencja w fotografii - przeszłość, teraźniejszość i przyszłość
19 sierpnia 2019

1. Wstęp i trochę o historii

Ostatnimi czasy coraz więcej słyszy się o sztucznej inteligencji (ang. Artificial Intelligence). Zagadnienie to obecne jest praktycznie wszędzie – od niedawna również w fotografii. Kolejni producenci w informacjach prasowych przemycają słowa - klucze, takie jak „AI” czy „sieci neuronowe”, mając nadzieję, że zadziała to na potencjalnych kupujących i skusi ich, aby nabyć „innowacyjny” produkt. Dobrze zatem wiedzieć, o co tak naprawdę chodzi z tą sztuczną inteligencją i na ile rozwiązania te rzeczywiście są użytkownikowi potrzebne, a na ile jest to czysty marketing.

Warto zacząć od tego, czym jest sztuczna inteligencja i od czego się zaczęła ta cała rewolucja. Zagadnienie to dotyczy wielu aspektów – począwszy od przetwarzania języka naturalnego (ang. Natural Language Processing), przez eksplorację danych, aż po wizję komputerową (Computer Vision). Nas, jako fotografów czy pasjonatów sprzętu fotograficznego, interesować będzie głównie ten ostatni temat i to na nim się skupimy w niniejszym artykule.

Obecnie do wizji komputerowej wykorzystuje się głównie głębokie sieci neuronowe (ang. Deep Neural Networks), a dziedzina wykorzystywana do wykrywania czy też przetwarzania obrazów za ich pomocą nazywana jest głębokim uczeniem (ang. Deep Learning).

Deep Learningowa rewolucja

Co ciekawe, Deep Learning wcale nie jest nowym konceptem. Idea pochodzi w zasadzie z roku 1980, gdy Kunihiko Fukushima opublikował pracę pod tytułem “Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position”. Zanim jednak przejdę do bardziej szczegółowego opisu tej pracy, przedstawię kilka istotnych pojęć i postaram się wyjaśnić, na czym polega Deep Learning.

- - - - - - - - - - - - - - - - - - R E K L A M A - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Przede wszystkim, Głębokie Uczenie charakteryzuje się tym, że sieć neuronowa, pomiędzy wejściem i wyjściem posiada warstwy ukryte (ang. hidden layers). Ich celem jest uczenie się detali (ang. low level features) w przypadku najpłytszych warstw oraz, w przypadku tych głębszych, uogólnianie informacji z warstw płytkich (high level features). Dzięki temu, że sieć głęboka charakteryzuje się obecnością wielu warstw, ekstrakcja cech odbywa się w sposób hierarchiczny. Dobrze widać to na przykładzie poniższego wykresu, gdzie low level features reprezentują głównie takie cechy zdjęcia jak detale - krawędzie, kropki, a głębsze warstwy uczą się, na podstawie wspomnianych detali, reprezentować części twarzy oraz całe twarze.

Sztuczna Inteligencja w fotografii - przeszłość, teraźniejszość i przyszłość - Wstęp i trochę o historii
Rys. Nvidia

Do ekstrahowania cech sieci konwolucyjne (bo takie są najczęściej wykorzystywane do przetwarzania obrazów) korzystają z operacji splotu. Splot sygnału oraz filtra, po którym wykonywana jest operacja nieliniowa, przesunięty wzdłuż całego obrazu, daje w efekcie mapę cech (ang. feature map).

Sztuczna Inteligencja w fotografii - przeszłość, teraźniejszość i przyszłość - Wstęp i trochę o historii
Rys. www.towardsdatascience.com

Kolejnym krokiem jest często redukcja (ang. Pooling). Jej celem jest zmniejszenie wielkości przestrzennej mapy cech, aby ograniczyć liczbę parametrów oraz wymaganą moc obliczeniową. Pooling, mówiąc wprost, zamienia kilka wartości w jedną - najczęściej używana jest odmiana Max Pooling (na wyjściu liczyć się będzie tylko maksymalna wartość z wartości wejściowych) oraz Average Pooling (wartość wyjściowa to średnia wartości wejściowych).

Warto jeszcze wspomnieć o Propagacji Wstecznej. Celem uczenia sieci neuronowej jest zminimalizowania strat (ang. loss), które wynikają z nieidealnej pracy algorytmu. Na podstawie danych wejściowych obliczane są wartości na wyjściu, które z kolei, wykorzystuje się do obliczenia błędu. Na koniec, obliczony błąd jest propagowany wstecznie, to znaczy od wyjścia do wejścia, poprzez aktualizacje wag neuronów.

Po tym krótkim wstępie wróćmy do publikacji Fukushimy.

Sztuczna Inteligencja w fotografii - przeszłość, teraźniejszość i przyszłość - Wstęp i trochę o historii
Rys. K. Fukushima, Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position

Przedstawiona przez autora struktura była hierarchiczną, wielowarstwową siecią neuronową, wymyśloną do rozpoznawania wzorów. Bazowała ona na „prostych” (S-cells) oraz „skomplikowanych” (C-cells) komórkach. Celem tych pierwszych było ekstrahowanie cech wejściowego obrazu (czyli, w zasadzie, są odpowiednikiem operacji splotowej w obecnych sieciach konwolucyjnych), natomiast tych drugich – subsampling lub downsampling (czyli – są odpowiednikiem operacji Poolingu w obecnych sieciach). W sieci Neocognitron zabrakło jednak omawianej wyżej Propagacji Wstecznej (ang. Backpropagation), która jest jedną z najważniejszych cech późniejszych modeli Deep Learningowych.

Następną, ważną pracą naukową była „Gradient-Based Learning Applied to Document Recognition” autorstwa Yanna LeCuna z 1998 roku. Była to pierwsza publikacja naukowa przedstawiająca głęboką sieć neuronową, która wykorzystywała splotowe sieci neuronowe do automatycznego ekstrahowania cech (ang. Features). Dzięki temu pozbyto się potrzeby ręcznego wyszukiwania cech – problem klasyfikacji został skrajnie uproszczony.

Sztuczna Inteligencja w fotografii - przeszłość, teraźniejszość i przyszłość - Wstęp i trochę o historii
Rys. Y. Lecun, Gradient-Based Learning Applied to Document Recognition

Na powyższym grafie, przedstawiającym sieć Le-Net5, można zauważyć, że już w 1998 roku sieci neuronowe w zasadzie dokładnie przypominały te, które używane były po roku 2010. Dlaczego zatem pod koniec 20 wieku i na samym początku 21 wieku niewiele, jeśli w ogóle, słyszało się o głębokim uczeniu, a w świadomości przeciętnego człowieka termin ten zaistniał dopiero po roku 2010? Odpowiedź na to pytanie jest banalnie prosta. Maszyna, żeby zostać „wyszkolona” do jakiegoś zadania, musi najpierw zostać poddana procesowi uczenia - podobnie jak dziecko, które przychodząc na świat, słyszy różne słowa i zdania i na tej podstawie uczy się, jak mówić. Żeby wykwalifikować maszynę do tak trudnego zadania, jakim jest rozpoznawanie obrazów, musi ona zobaczyć bardzo dużo przykładów zdjęć. Powiedzmy, że chcemy nauczyć model rozróżniać zdjęcia pomiędzy „kotem” a „psem”. Koty i psy mogą mieć różne kolory, przyjmować różne pozycje, być widoczne pod różnymi kątami i – w końcu - mogą przebywać w różnym środowisku – być na zewnątrz, na balkonie czy na kanapie. Nie wystarczy więc, że nauczymy model na przykładzie jednego zdjęcia kota i jednego zdjęcia psa – musimy zapewnić cała masę zdjęć kotów i psów w różnym namaszczeniu, w różnej perspektywie, w różnej pozycji i w różnym otoczeniu. Dopiero wtedy maszyna, „widząc” wystarczającą liczbę przykładów tych zwierząt i ucząc się cech z każdego zdjęcia, następnie generalizując je na całą klasę – „kot” lub „pies”, jest w stanie z prawdopodobieństwem graniczącym z pewnością powiedzieć, że na zdjęciu, którego nie wykorzystaliśmy w uczeniu, widnieje pies lub kot. Oznacza to, że do wyuczenia modelu potrzebna jest ogromna moc obliczeniowa. Na zwykłym procesorze CPU sam trening (jak nazywane jest uczenie maszyny) zajmowałby lata. Musieliśmy zatem poczekać, aż na rynku dostępne będą znacznie potężniejsze procesory. Wymaganiom tym odpowiadają zatem procesory graficzne (GPU), które posiadają znacznie więcej (do 200 razy) wątków CUDA, niż klasyczne CPU. Możliwe jest zatem wykonywanie ogromnej ilości obliczeń równocześnie. To, co wyniosło głębokie uczenie z laboratoriów badawczych do „prawdziwego życia”, było zatem znaczne przyspieszenie procesorów graficznych.

Kolejnym warunkiem, który musiał zaistnieć, była baza zdjęć. Do udanego treningu potrzebujemy bowiem ogromnej ilości fotografii, i to w dodatku oznaczonych (maszyna podczas uczenia musi oczywiście wiedzieć, czy to co widzi, to kot, czy pies). Rozwój fotografii, zwłaszcza tej mobilnej oraz Internetu powodował, że istniał coraz łatwiejszy dostęp do coraz większej liczby zdjęć. W roku 2009 profesor Standfordu, Fei-Fei Li, „wypuściła” ogromną, darmową bazę zdjęć, nazwaną ImageNet, która zawierała w tamtym momencie aż 14 milionów otagowanych fotografii w 1000 kategoriach. Następnie, biorąc pod uwagę obie wyżej wymienione okoliczności, rewolucję rozpoczął rok 2012, w którym światło dzienne ujrzała splotowa sieć neuronowa (CNN) AlexNet autorstwa Alexa Krizhevsky'ego.

Sztuczna Inteligencja w fotografii - przeszłość, teraźniejszość i przyszłość - Wstęp i trochę o historii
Rys. A. Krizhevsky, ImageNet Classification with Deep Convolutional Neural Networks

Była to architektura oparta o LeNet5 (z 1998 roku!), lecz zdecydowanie bardziej skomplikowana. Dostosowano ją do bardziej skomplikowanych celów, niż rozpoznawanie znaków – do rozpoznawania zdjęć. Samo jej wytrenowanie (przy pomocy dwóch procesorów graficznych GTX 580 GPU) zajmowało naukowcom od 5 do 6 dni. Faktem jest jednak, że AlexNet wygrał wiele konkursów związanych z wizją komputerową, w tym konkurs ImageNet. I świat w końcu usłyszał o Deep Learningu.


Poprzedni rozdział