Mateusz KOSIKOWSKI Politechnika KoszaliĔska ZASTOSOWANIE SIECI NEURONOWYCH DO KOMPRESJI OBRAZU 1. WstĊp Sztuczna inteligencja jest najbardziej rozwijającą siĊ dziedziną nauki, informatyki i elektroniki ostatnich kilkudziesiĊciu lat. Sztuczne sieci neuronowe (SSN), jako jedna z odmian szeroko pojĊtej sztucznej inteligencji, wykorzystywane są do rozwiązywania wszelakiego rodzaju problemów zarówno algorytmicznych, jak i nie algorytmicznych. Przykáadem zagadnienia nie algorytmicznego moĪe byü chociaĪby przewidywanie pogody. ZaleĪnoĞü od wielu parametrów, z których nie wszystkie da siĊ w sposób jednoznaczny okreĞliü, powoduje, Īe jest to problem, dla którego ciĊĪko jest wyznaczyü model matematyczny. Bazując na obserwacjach i wiedzy meteorologów, moĪliwe jest nauczenie programu komputerowego – SSN, okreĞlania warunków pogodowych dla partykularnych przypadków. Dobrze wytrenowana sieü potrafi okreĞliü stany poĞrednie dla zjawisk przyrodniczych, których nie zostaáa nauczona – wáaĞciwoĞci uogólniające. Ten prosty przykáad obrazuje, jakim wielkim narzĊdziem staáy siĊ SSN. Kompresja obrazu, do której wykorzystuje siĊ coraz czĊĞciej SSN, jest problemem, dla którego nie da siĊ jednoznacznie okreĞliü algorytmu w funkcji stopnia kompresji, gdyĪ w tym przypadku nie narzuca siĊ ordynarnie wspóáczynnika kompresji, lecz wynika ona z charakteru sieci i obrazów kompresowanych. Bezstratne upakowanie danych jest okreĞlone wzorem, modelem, który jednoznacznie wyznacza stopieĔ kompresji. Algorytmiczna kompresja stratna daje moĪliwoĞü zmniejszenia iloĞci danych kosztem jakoĞci obrazu. Jednak nie moĪna sobie pozwoliü na zbyt duĪe straty jakoĞci detali zawartych w obrazie. Kompresja stratna przy zastosowaniu SSN pozwala na wzglĊdnie duĪe zwiĊkszenie stopnia kompresji, bez znaczących strat jakoĞci obrazu. Jest to jednak uzaleĪnione od iloĞci obrazów, lub sekwencji obrazów jakie sieü neuronowa ma przetwarzaü. Nie da siĊ uzyskaü duĪego stopnia upakowania danych dla pojedynczego obrazka przetwarzanego w caáoĞci. Kompresując wiĊkszą liczbĊ obrazów, iloĞü miejsca potrzeba na zapisanie danych, znacząco maleje, a adekwatnie to tego roĞnie wspóáczynnik kompresji. Jest to jedną z przyczyn, dla których nie uczy siĊ sieci neuronowej caáego obrazu na raz, lecz kolejno jego poszczególnych czĊĞci, symulując w ten sposób wystĊpowanie wielu obrazów. Taka sieü jest mniejsza jeĞli chodzi i jej budowĊ, szybciej siĊ uczy, jak równieĪ sam algorytm nauczania jest mniej záoĪony. 46 Mateusz Kosikowski 2. Model i nauczanie SSN „Sztuczna sieü neuronowa, w pojĊciu ogólnym, jest modelem matematycznym procesów zachodzących w mózgu czáowieka”[1]. Stwierdzenie to mówi nie tylko o budowie SSN, ale równieĪ dotyczy sposobu uczenia, który jest bardzo zbliĪony do przyswajania wiedzy przez czáowieka. Aby pokazaü analogiĊ mózgu czáowieka do SSN, spójrzmy na rysunku 1a, nie patrząc na pozostaáe. NiemoĪliwe jest wyobraĪenie dokáadnej zawartoĞci obrazu. Dzieje siĊ to dlatego, Īe nigdy wczeĞniej nie widzieliĞmy tego obrazu i nie nauczyliĞmy siĊ (podĞwiadomie) jego zawartoĞci. Przyglądając siĊ obrazowi 1b, zapamiĊtujemy jego zawartoĞü coraz dokáadniej. IloĞü iteracji związana z nauczaniem sieci neuronowej roĞnie, maleje báąd – dokáadnoĞü odwzorowania. Po pewnym czasie stwierdzamy, Īe nauczyliĞmy siĊ obrazu i potrafimy go odwzorowaü. Jednak nigdy nie bĊdzie to odwzorowanie w 100% dokáadne. Mniej záoĪone obrazy, takie jak na rysunku 1c, zapamiĊtujemy znacznie szybciej. Analogicznie SSN równieĪ jest w stanie w duĪo krótszym czasie przyswoiü te informacje. a) b) c) Rys.1. Uzupeánienia zasáoniĊtej czĊĞci obrazu przez mozg czáowieka – analogia do SSN Sztuczna sieü neuronowa, w porównaniu do naturalnej, ma doĞü powaĪną wadĊ. Za kaĪdym razem, chcąc nauczyü ją czegoĞ nowego, musi zostaü ona nauczona caáej swej wiedzy ponownie, aby równieĪ ją zachowaü. OczywiĞcie ludzki mózg zachowuje siĊ w podobny sposób, ale degradacja wiedzy nastĊpuje w duĪo mniejszym stopniu. 2.1. Opis formalny sieci Do kompresji i przetwarzania obrazów stosuje siĊ sieci neuronowe wielowarstwowe, przewaĪnie z algorytmem wstecznej propagacji báĊdów jako metodą nauczania (BPN, ang. Back Propagation Net) [2]. Model takiej sieci przedstawia rysunek 2. W praktyce wykorzystuje siĊ sieci o 3 warstwach: wejĞciowej, wyjĞciowej i ukrytej. IloĞü neuronów warstwy ukrytej wpáywa znacząco na stopieĔ uzyskanej kompresji. Zastosowanie sieci neuronowych do kompresji obrazu 47 S ie ü k o m p re s u ją c a Warstwa wyjĞciowa Warstwa wejĞciowa Warstwa ukryte 255 Obraz oryginalny 0 255 1.0 1.0 0.0 0.0 0 Obraz po dekompresji Sieü dekompresująca Rys. 2. Schemat kompresji z modelem sieci BPN W przypadku kompresji pojedynczego elementu obrazu wspóáczynnik kompresji jest równy stosunkowi iloĞci neuronów warstwy wyjĞciowej do ukrytej. W rzeczywistoĞci wartoĞü ta jest nieco inna, gdyĪ w przypadku kompresji obrazu neurony wejĞciowe zawierają wartoĞci caákowite, natomiast neurony warstwy ukrytej mogą zawieraü wartoĞci rzeczywiste. Ponadto, do odtworzenia obrazu, poza zawartoĞcią neuronów warstwy Ğrodkowej, naleĪy równieĪ przechowaü wartoĞci poáączeĔ miĊdzy neuronami. Sieü neuronowa charakteryzuje siĊ okreĞloną topologią (1), w skáad której wchodzą macierz warstw W oraz macierz poáączeĔ P. T = (W, P) (1) W = {l1, l2, … , ln} (2) li = {ni.j} (3) P = {wi , j → k ,l } (4) gdzie: l1 l2, …, ln-1 ln ni, j wi , j → k ,l – – – – – warstwa wejĞciowa, warstwy ukryte, warstwa wyjĞciowa, identyfikuje j-ty neuron i-tej warstwy, waga poáączenia j-go neuronu z i-tej warstwy z l-tym neuronem k-tej warstwy. Dla tak opisanej sieci, okreĞliü moĪna dokáadnie wartoĞci neuronów, oraz poáączeĔ pomiĊdzy nimi w funkcji iteracji uczenia sieci, oczywiĞcie w zaleĪnoĞci od zastosowanego algorytmu nauczania. WartoĞci neuronów warstwy wejĞciowej (5) zaleĪne są od zbioru wejĞciowego (uczącego lub testowego - A). Zbiór uczący charakteryzuje siĊ ciągiem liczb uáoĪonych w okreĞlonej kolejnoĞci. Liczba elementów zbioru uczącego ustalona jest przez sumĊ iloĞci neuronów wejĞciowych i wyjĞciowych. 48 Mateusz Kosikowski n1, j (t + 1) = am, j § li · ni , j (t + 1) = f ¨¨ ¦ ni −1, k (t + 1) ⋅ wi −1, k →i , j (t ) ¸¸ © k =0 ¹ f ( x) = (5) dla i ≠ 1 1 1 + e− x gdzie: am,j ∈ A – t – (6) (7) j-ty elementu m-tego podzbioru uczącego A, numer iteracji nauczania sieci. WartoĞci neuronów warstw ukrytych i wyjĞciowej zaleĪne są ĞciĞle on funkcji aktywacji neuronu (7). Od tego czynnika zaleĪy równieĪ algorytm uczenia sieci. Do kompresji obrazu wykorzystano standardowy algorytm wstecznej propagacji báĊdu z sigmoidalną funkcją aktywacji. Báąd warstwy wyjĞciowej okreĞla siĊ na podstawie róĪnicy wartoĞci oczekiwanej i wartoĞci neuronów wyjĞciowych w kaĪdej iteracji. Báąd neuronów kolejnych warstw jest wyznaczany na podstawie báĊdu warstwy nastĊpnej, pochodnej funkcji aktywacji neuronu oraz wspóáczynnika uczenia. 3. Nauczanie SSN Nie jest moĪliwe, aby w jednoznaczny sposób okreĞliü liczbĊ wymaganych iteracji potrzebnych do nauczenia sieci. Jest ona ĞciĞle zaleĪna od wielkoĞci zbioru uczącego, iloĞci neuronów warstw ukrytych oraz zaáoĪonego, dopuszczalnego báĊdu, jaki moĪe generowaü sieü. Mimo Īe przebieg nauczania sieci z przeznaczeniem do kompresji obrazu jest wzglĊdnie szybki, gdyĪ dane wejĞciowe oraz oczekiwane na wyjĞciu sieci są dokáadnie takie same, wzrost rozmiaru zbioru uczącego moĪe jednak znacznie spowolniü ten proces. NaleĪy zatem zadaü sobie pytanie, czy niedouczona sieü neuronowa moĪe dziaáaü poprawnie. OczywiĞcie w wielu przypadkach jest to moĪliwe. Dowodem tego jest eksperyment przeprowadzony na sieci typu ADALINE. Rysunek 3a obrazuje poáoĪenie wektorów uczących na páaszczyĨnie. Sieü neuronowa z neuronem wyjĞciowym typu ADALINE jest jedną z najprostszych sieci neuronowych. SáuĪy do rozwiązywania problemów, których rozwiązania są liniowo separowalne, tzn. istnieje linia prosta jednoznacznie oddzielająca obszary przynaleĪnoĞci pewnych podzbiorów uczących [3]. Podczas eksperymentu bezbáĊdne nauczenie sieci, dla 50 róĪnych punktów páaszczyzny wchodzących w skáad zbioru uczącego (rysunek 3a), nastąpiáo po 45 iteracjach. OdpowiedĨ SSN podczas jej testowania byáa w 100% prawidáowa (rysunek 3b). Zakáócając zbiór uczący (rysunek 3c) spowodowano, iĪ sieü nie byáa w stanie siĊ nauczyü. Narzucono wiĊc liczbĊ 100 iteracji nauczania jako maksi- Zastosowanie sieci neuronowych do kompresji obrazu 49 mum, a nastĊpnie odczytano odpowiedzi sieci na zbiór testowy. Okazaáo siĊ, Īe sieü w niektórych przypadkach odpowiedziaáa báĊdnie. Báąd ten jednak wynosiá zaledwie 4,4% caáego zbioru testowego. a) b) c) d) Rys. 3. Wpáyw zakáócenia zbioru uczącego na nauczanie sieci Ten prosty przykáad pokazuje, Īe w wielu przypadkach SSN potrafi zostaü ukierunkowana na poprawne dziaáania, mimo Īe nigdy nie zostaáa nauczone caáej wiedzy. Wiadomo, Īe kompresja danych naleĪy do duĪo bardziej záoĪonych problemów, jednak pewne cechy sieci neuronowych są analogiczne, bez wzglĊdu na topologie. 4. Eksperyment 4.1. Ocena jakoĞci obrazu OkreĞlenie jakoĞci kompresowanego obrazu w stosunku do wielkoĞci uzyskanej kompresji uzaleĪnione jest od zdefiniowania metody porównania obrazów: oryginalnego i przetworzonego. Zazwyczaj stosuje siĊ metodĊ korelacji (8), a wiĊc bezpoĞredniego porównania pikseli poszczególnych obrazów [4]. 50 Mateusz Kosikowski 4.2. Problem skalowania Sieü neuronowa, ze wzglĊdu na okreĞloną funkcjĊ aktywacji neuronu, moĪe generowaü jedynie wartoĞci z przedziaáu [0,1]∈ R lub [-1,1]∈ R . W związku z powyĪszym wszystkie wartoĞci pikseli obrazu naleĪy przeskalowaü z przedziaáu [0;255] ∈ C na liczby rzeczywiste uáamkowe. Operacja ta, poprzez zaokrąglanie, niesie za sobą degradacjĊ informacji wiĊkszoĞci pikseli, która juĪ nigdy nie zostanie odzyskana. 4.3. Korelacja Badania jasno wskazują Īe korelacja obrazów oryginalnego oraz obrazu po dekompresji, w zaleĪnoĞci od stopnia upakowania danych jest zaleĪna odcinkami liniowo. Rysunek 4 obrazuje przykáad takiej zaleĪnoĞci. NaleĪy jednak zaznaczyü, Īe wykresy te zostaáy sporządzone dla róĪnych typów obrazów pod wzglĊdem zawartoĞci i zróĪnicowania pikselu. W rzeczywistoĞci wiĊc zaleĪnoĞci te mogą odbiegaü od przedstawionych poniĪej. E kor 1 a) 30 K 1 b) 30 1 c) 30 Rys. 4. ZaleĪnoĞü korelacji od stopnia kompresji, dla 1000 iteracji nauczania sieci. Obrazy z paletą: a) 16 kolorów, b) 128 kolorów c) 256 kolorów gdzie: K – wspóáczynnik kompresji, Ekor – korelacja. PrzyjĊto ponadto nastĊpujący wzór okreĞlający korelacjĊ: Ekor = 1 − Σ | k − k' | Σ k (8) Zastosowanie sieci neuronowych do kompresji obrazu gdzie: k k’ 51 – zawartoĞü piksela obrazu oryginalnego – zawartoĞü piksela obrazu po dekompresji Poza korelacją, obrazy przetwarzane przez SSN, porównuje siĊ za pomocą tzw. obrazów róĪnicowych, pokazując w ten sposób rzeczywiste róĪnice w obrazie (obserwuje siĊ róĪne, których stopieĔ wyznacza korelacja). Przykáad kompresowanego obrazu oraz obrazu róĪnicowego reprezentuje rysunek 5. Uzyskano stopieĔ kompresji równy 25, wynikający z budowy sieci neuronowej, która uczona byáa kolejno poszczególnych czĊĞci obrazu. Obraz podzielony zostaá na 900 obszarów (10 x 10 pikseli). W rzeczywistoĞci jednak skompresowany obraz zajmowaá 20 razy mniej od oryginaáu. Spowodowane jest to binarnym zapisem danych, oraz wielkoĞcią nagáówka pliku, w którym muszą znaleĨü siĊ informacje o budowie sieci dekompresującej (rysunek 2). a) b) c) Rys. 5. Przykáad kompresji obrazu ze wspóáczynnikiem upakowania równym 25. Wykonano 40000 iteracji nauczania sieci: a) obraz oryginalny, b) obraz po dekompresji, c) obraz róĪnicowy 4.4. Kompresja bezstratna SSN daje siĊ tak zaprojektowaü, aby uzyskaü kompresjĊ bezstratnej. Metoda polega na binaryzacji zawartoĞci obrazu, a wiĊc na kodowaniu pikseli kodem binarnym. Mając do czynienia z obrazem o 16 róĪnych kolorach, w reprezentacji kodowej na kaĪdy piksel przypada wiĊc 4-16 neuronów (w zaleĪnoĞci od. sposobu kodowania), a nie jak w metodzie stratnej – jeden. Metoda ta ma doĞü oczywistą wadĊ: czas potrzebny na nauczenie sieci znacząco wzrasta, a stopieĔ kompresji jest duĪo mniejszy, w związku tym jest to metoda praktycznie niestosowana. 52 Mateusz Kosikowski 5. Podsumowanie W artykule pokazano, iĪ kompresja obrazu za pomocą sieci neuronowych daje dobre efekty. Nie jest moĪliwe zapamiĊtanie duĪej liczby obrazów. Czas nauczania oraz rozmiar sieci, która miaáaby je spamiĊtaü, drastycznie roĞnie. Aby uniknąü problemów tego typu, stosuje siĊ hierarchiczny podziaá danych. Polega to na tym, Īe przeznacza siĊ wiĊkszą liczbĊ neuronów wejĞciowych i wyjĞciowych na elementy obrazu o duĪym zróĪnicowaniu, natomiast dla táa odpowiednio mniej. Kompresja taka przypomina wówczas kompresjĊ standardu JPG. Obraz róĪnicowy uzyskany poprzez odjĊcie obrazu przetworzonego przez SSN od oryginaáu, pokazuje wielkoĞü utraconych informacji. NiedoskonaáoĞü ludzkiego oka oraz doskonaáoĞü mózgu, jako narzĊdzia potrafiącego uzupeániü „braki” w obrazie, sprawia, Īe kompresja stratna jest powszechnie stosowana. Efekty uboczne – niedokáadnoĞü – są czĊsto stosowane w multimediach, a mimo duĪych rozmiarów, są praktycznie „niezauwaĪalne”. Bibliografia: 1. Sieci neuronowe. T. 6. Praca zbiorowa pod red. M. NaáĊcza. EXIT, Warszawa 2000. 2. Osowski S.: Sieci neuronowe do przetwarzania informacji, OWPW, Warszawa 2000. 3. Biaáko M.: Sztuczna inteligencja i elementy hybrydowych systemów ekspertowych, WUPK 2005. 4. Tadeusiewicz R.: Komputerowa analiza i przetwarzanie obrazów, WFPT, Kraków 1997.