Mateusz KOSIKOWSKI Zastosowanie sieci neuronowych do

advertisement
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.
Download