Sztuczna Inteligencja w fotografii - przeszłość, teraźniejszość i przyszłość
1. Wstęp i trochę o historii
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.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.
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).
![]() 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.
![]() Rys. K. Fukushima, Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position |
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.
![]() Rys. Y. Lecun, Gradient-Based Learning Applied to Document Recognition |
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.
![]() Rys. A. Krizhevsky, ImageNet Classification with Deep Convolutional Neural Networks |