Zastosowanie sieci Kohonena do klasyfikacji próbek węgla

Transkrypt

Zastosowanie sieci Kohonena do klasyfikacji próbek węgla
Jarosław Bielak
Zastosowanie sieci Kohonena do klasyfikacji
próbek węgla kamiennego wg PN-54/G-97 002
Streszczenie
Sieci neuronowe Kohonena są układami mającymi zdolność przeprowadzania, bez korekty zewnętrznej, eksploracyjnej analizy zbioru informacji.
Przeprowadzono eksperyment, którego celem było przygotowanie sieci kohonenowskiej do rozpoznawania klas węgla kamiennego na podstawie odpowiednio dobranych parametrów wejściowych. Opracowanie danych użytych
do uczenia sieci, polegało na usunięciu ze zbioru danych jednej zmiennej nie
wnoszącej nowych informacji, wyzerowaniu w zbiorze wektorów uczących
tych wartości zmiennych, które były niepotrzebne do jednoznacznego określenia pewnych klas. Zbiór uczący przygotowano tak, aby przypadki w nim
zgromadzone tworzyły wyraźne skupienia. Po procesie uczenia sieć utworzyła wyraźne pola w wyjściowej warstwie tworzącej mapę topologiczną.
Wprowadzenie
Sztuczne sieci neuronowe są systemami przetwarzania informacji symulującymi działanie rzeczywistych, funkcjonujących w mózgu i uczących się struktur
rozpoznających obiekty. Sieci neuronowe są realizowane w dwóch formach:
jako programy komputerowe uruchamiane nawet na mikrokomputerach typu PC (rozbudowane systemy wymagają znacznie silniejszych komputerów)
oraz jako systemy specjalizowane — neurokomputery — komputery o architekturze dostosowanej do zadań modelowania sieci, obecnie wyposażane
także w specjalistyczne układy scalone elektronicznie odwzorowujące układy
nerwowe. Sieci neuronowe są wykorzystywane m.in. w rozpoznawaniu dźwięków i obrazów (w tym mowy i pisma), do prognozowania, klasyfikacji i oceny
stanów obiektów ekonomicznych, analizy zbiorów danych, czy też do zadań
optymalizacyjnych. Przykładami zastosowań na większą skalę są m.in. systemy kontroli bagażu pasażerów linii lotniczych w celu wykrycia ładunków
wybuchowych (system SNOOPE w USA), czy syntezy mowy na podstawie
tekstu pisanego (system Net Talk).
1. Charakterystyka sieci Kohonena
2
1. Charakterystyka sieci Kohonena
Jedną z klas sztucznych sieci neuronowych stanowią sieci Kohonena. Ich
budowa jest wzorowana na topologicznych właściwościach mózgu ludzkiego. Sieci te znane są również pod nazwą samoorganizujących się map cech
(SOFM — self-organizing feature maps). Sieci zaproponowane przez Kohonena w 1982 roku posiadają dwie warstwy neuronów: warstwę wejściową oraz
warstwę wyjściową.
Warstwa wejściowa zbudowana jest z tylu neuronów, ile zmiennych opisują
wektory danych wejściowych — np. jeśli do sieci wprowadza się wektory
sygnału wejściowego obejmujące wartości barwy, twardości, gęstości, układu
krystalograficznego, łupliwości oraz przezroczystości badanych minerałów,
warstwa wejściowa będzie posiadała sześć neuronów. Neurony tej warstwy
nie przetwarzają wprowadzanych do sieci danych, a tylko przekazują sygnał
wejściowy do neuronów warstwy wyjściowej. Pełnią zatem podobną rolę jak
tzw. neurony dwubiegunowe występujące w systemach percepcyjnych organizmów żywych — np. w siatkówce oka.
Warstwa wyjściowa sieci składa się z pewnej, ustalonej przez projektanta,
liczby neuronów wyposażonych w radialną funkcję wyznaczającą potencjał
postsynaptyczny (PSP — post synaptic potential function). Neurony tego typu obliczają kwadrat odległości pomiędzy dwoma punktami w N-wymiarowej
przestrzeni określonej przez liczbę wejść. Punkty, pomiędzy którymi wyznacza się odległość, odpowiadają odpowiednio wektorowi opisującemu sygnał
wejściowy oraz wektorowi wag neuronu. Neurony posiadające radialną funkcję PSP wytwarzają jednakowe wartości wyjściowe dla wszystkich sygnałów
wejściowych leżących na hipersferach, o środkach umieszczonych w punktach
odpowiadających wektorom wag neuronów, wyznaczonych w przestrzeni tych
sygnałów wejściowych. Wektory wag neuronów spełniają zatem rolę wzorców
sygnałów, na które dana sieć powinna reagować w określony sposób. Neurony
radialne realizują dzięki temu klasyfikację sygnałów wejściowych poprzez pomiar odległości punktów reprezentowanych przez wektory wejściowe od środków hipersfer wyznaczonych przez wektory wag poszczególnych neuronów
warstwy wyjściowej. Kwadrat odległości wyznaczany przez neurony radialne
mnożony jest przez wartość progową, która w neuronach radialnych pełni
rolę miary wartości dopuszczalnego odchylenia od środka hipersfery; w ten
sposób wyznaczana jest wartość wejściowa rozważanego neuronu.
2. Działanie neuronów radialnych.
Neurony pracujące w oprogramowaniu wykorzystanym do opracowania niniejszego zagadnienia (STATISTICA Neural Networks) działają w sposób
następujący:
1. Wartości wyjściowe neuronów warstwy poprzedniej, wagi skojarzone z połączeniami oraz wartość progowa wprowadzane są do funkcji PSP neuro-
2. Działanie neuronów radialnych.
3
nu. Funkcja ta generuje pojedynczą wartość (wartość wypadkowego wejściowego pobudzenia neuronu).
2. Wypadkowa wartość wejściowa neuronu przekształcana jest przez funkcję aktywacji neuronu; (funkcja aktywacji przekształca wartość łącznego
pobudzenia neuronu, tj. wartość wejściową, w jego wartość wyjściową).
W ten sposób wyznaczana jest pojedyncza wartość wyjściowa zwana poziomem aktywacji neuronu. Ponieważ w warstwie wyjściowej sieci Kohonena stosowana jest funkcja aktywacji w postaci pierwiastka kwadratowego z sumy kwadratów różnic pomiędzy wektorem wejściowym i wektorem
wag neuronu, wartość wyjściowa neuronu określa niejako odległość przypadku wejściowego od wzorca przypisanego do danego neuronu za pomocą
jego wektora wag (por. rys. 1).
Rysunek 1: Neuron radialny - schemat działania
Poziomy aktywacji neuronów warstwy wyjściowej są przedstawiane jako płaszczyzna tworząca mapę topologiczną. Neurony w tej warstwie, zwykle będącej dwuwymiarową przestrzenią, reprezentują skupienia danych wejściowych,
a rozmieszczone są w ten sposób, że neurony reagujące na podobne klasy
danych wejściowych położone są blisko siebie tworząc pewne regiony. W ten
sposób otrzymuje się graficzną reprezentację działania sieci, gdzie poszczególnym neuronom można przypisać etykiety informujące o tym, jakiej klasie
danych (jeśli jest znana) odpowiada neuron zwycięski.
Sieci Kohonena są zwykle używane do zadań klasyfikacji zbioru danych.
Po wprowadzeniu do sieci wektora wejściowego każdorazowo wyznaczany jest
neuron zwycięski, tzn. taki, którego funkcja aktywacji jest najmniejsza, czyli
którego wagi posiadają największą zgodność z wektorem wejściowym. Każdemu neuronowi (lub grupie neuronów) odpowiada pewna klasa danych. Takie
działanie sieci umożliwia odkrycie w dużym zbiorze danych z wielowymiarowej przestrzeni pomiarowej pewnej struktury obejmującej skupienia danych,
ich liczbę czy też podobieństwa między tymi skupieniami wyrażonego w odległości pomiędzy centrami owych skupień. Z drugiej zaś strony pozwala to na
użycie nauczonej już sieci do rozpoznawania i klasyfikowania zbioru danych,
co do których wiadomo, że reprezentują z góry określone i znane klasy.
Do uczenia sieci Kohonena stosuje się algorytm Kohonena. Algorytm ten
w trakcie procesu uczenia próbuje rozpoznać skupienia danych w zbiorze
uczącym, a następnie modyfikując wagi neuronów przypisuje centra skupień
4
3. Sieć Kohonena w problemie wieloklasowym
do radialnych neuronów warstwy wyjściowej. Tworzy w ten sposób dwuwymiarową mapę topologiczną. Uczenie rozpoczyna się od losowego nadania
wag wszystkim neuronom warstwy wyjściowej, a co za tym idzie do losowego rozmieszczenia centrów. Algorytm sprawdza każdy przypadek uczący
i rozpoznaje neuron reprezentujący najbliższe temu przypadkowi centrum.
Neuron ten (neuron zwycięzca) oraz neurony z nim sąsiadujące są następnie modyfikowane w ten sposób, aby zapisane w nich centra upodobniły się
do przypadku uczącego. W trakcie procesu uczenia stopniowo zmniejszany
jest współczynnik uczenia (odpowiadający za skalę każdorazowej modyfikację
neuronów) oraz wielkość sąsiedztwa. Dlatego też w początkowej fazie uczenia
algorytm tworzy przybliżona mapę topologiczną, którą następnie precyzyjnie
dostraja tak, aby pojedyncze neurony odpowiadały niewielkim skupieniom
podobnych do siebie przypadków wejściowych. Jak łatwo zauważyć algorytm
Kohonena przeprowadza uczenie nienadzorowane, tj. nie porównuje otrzymanych rezultatów uczenia z jakimkolwiek zbiorem wzorcowych oczekiwanych
wyników dla określonego zespołu danych uczących.
3. Sieć Kohonena w problemie wieloklasowym
Biorąc pod uwagę możliwość zastosowania sieci Kohonena w automatyce
przemysłowej przeprowadzono próbę przygotowania takiej sieci do rozpoznawania klas węgla kamiennego. Polska klasyfikacja węgla jest przedstawiona
w poniższej tabeli:
Tabela 1: Polska klasyfikacja węgla wg PN-54/G-97002
Typ węgla
Zawartość
części
lotnych
Nazwa
Znak
%
płomienny
31
>30
gazowo-płomienny
32
>30
gazowy
33
>30
gazowo-koksowy
34
>28
ortokoksowy
35
22–30
metakoksowy
36
17–22
semikoksowy
37
14–18
chudy
38
10–16
antracytowy
41
7–10
antracyt
42
3–7
Źródło: „Encyklopedia techniki. Chemia”,
Zdolność
spiekania
Ciśnienie
rozprężania
Skurcz
Grubość
warstwy
plastycznej
Ciepło
spalania
LR
kG/cm2
mm
mm
kcal/kg
0–10
>6800
Nie normuje się
10–35
>7800
30–55
<0,1
>20
<13
50–85
0,1–0,3
15–30
12–25
Nie
50–85
0,3–3,0
<22
13–25
normuje
25–55
0,3–3,0
<16
5–15
się
10–30
<0,5
<16
<5
0–10
0
0
0
Nie normuje się
0
0
Warszawa, WNT, 1966.
Polska norma wyróżnia 10 klas węgla określanych na podstawie 6 parametrów: zawartości części lotnych, zdolności spiekania, ciśnienia rozprężania,
dwu wskaźników plastometrycznych - skurczu i grubości warstwy plastycznej
oraz ciepła spalania. Przy czym części tych wskaźników dla pewnych typów
węgla nie normuje się.
Na podstawie tabeli przygotowano zbiór uczący w następujący sposób:
• Wszystkie wskaźniki znormalizowano przeskalowując wartości liczbowe na
przedział [0; 1],
3. Sieć Kohonena w problemie wieloklasowym
5
• Wartości parametrów nie normowanych przyjęto za równe zero,
• Pominięto zmienną opisującą wskaźnik plastometryczny skurczu,
• Skonstruowano 200 przypadków uczących tak, aby tworzyły wyraźne skupienia danych, tj. w wektorach wejściowych pominięto wszystkie wartości
bliskie krańcom przedziałów określonych w normie,
• Dodano 10 przypadków walidacyjnych (wg identycznej zasady) oraz 20
przypadków testowych obejmujących cały zakres zmienności parametrów
klasyfikacyjnych (łącznie z przypadkami granicznymi).
Podział danych uczących na trzy zbiory (uczący, walidacyjny, testowy) ma
istotne znaczenie. Zbiór uczący jest wykorzystywany do uczenia sieci, tj. do
modyfikowania wag neuronów, zbiór walidacyjny jest wykorzystywany do śledzenia błędu działania sieci w trakcie jej uczenia, do identyfikacji najlepszej
sieci i do zatrzymania algorytmu uczącego w przypadku przeuczenia sieci.
Zbiór testowy w procesie uczenia nie jest w ogóle wykorzystywany, a jest
przeznaczony do niezależnego określenia poprawności działania sieci po zakończeniu jej budowy i uczenia.
Następnie zbudowano sieć Kohonena o pięciu neuronach wejściowych, odpowiadających pięciowymiarowej przestrzeni zbioru uczącego, i 36 (6×6) neuronach w warstwie wyjściowej. Schemat sieci przedstawia rysunek:
Rysunek 2: Schemat sieci Kohonena
Do uczenia sieci użyto przygotowanego wcześniej zbioru uczącego i klasycznego algorytmu Kohonena, omówionego wyżej. Przyjęto następujące parametry
uczenia:
• Liczba epok — określająca liczbę epok, przez którą będzie działać algorytm; w trakcie każdej epoki, cały zbiór uczący jest prezentowany sieci
i zostaje wykorzystany do modyfikacji wag i wartości progowych w sieci —
110,
• Współczynnik uczenia — wartość początkowa: 0,7 — końcowa: 0,1,
• Sąsiedztwo — definiujące zasięg sąsiedztwa obejmującego sąsiednie wier-
3. Sieć Kohonena w problemie wieloklasowym
6
sze i sąsiednie kolumny w macierzy równomiernie rozmieszczonych neuronów w warstwie wyjściowej — wartość początkowa: 1 — końcowa: 0,
• Zastosowano mieszanie przypadków, zmieniające kolejność wprowadzania
przypadków uczących z epoki na epokę, oraz walidację, testującą jakość
sieci w trakcie każdej epoki.
Po uruchomieniu algorytmu otrzymano sieć charakteryzującą się następującymi parametrami przedstawionymi na rysunkach:
1. Błąd uczenia sieci — wykres błędu uczenia przedstawia błąd RMS (pierwiastek błędu średniokwadratowego) sieci w kolejnych epokach uczenia;
ponieważ w uczeniu Kohonena funkcja błędu jest odległością wektora wag
zwycięskiego neuronu radialnego od wektora wejściowego, błąd podawany na wykresie jest pierwiastkiem z sumy kwadratów błędów, dla całego
zbioru uczącego.
Rysunek 3: Błąd uczenia sieci
2. Częstość zwycięstw — w polach odpowiadających neuronom warstwy
wyjściowej sieci jest podana liczba przypadków, dla których dany neuron
był „zwycięzcą”, przypisana do każdego z neuronów. Zliczanie przeprowadzone jest oddzielnie dla zbioru uczącego, walidacyjnego i testowego.
Częstości zwycięstw wyświetlane są w arkuszu mającym taki sam układ,
jak układ neuronów na mapie topologicznej sieci.
3. Mapa topologiczna — warstwa radialna w sieci Kohonena, w której neurony ułożone są na dwuwymiarowej powierzchni. Nabyta przez sieć w wyniku uczenia zdolność do aktywowania położonych blisko siebie neuronów
w przypadku wprowadzenia podobnych danych wejściowych powoduje, że
zbiór sygnałów wyjściowych z sieci może być interpretowany jako mapa
odwzorowująca topologiczne zależności pomiędzy danymi wejściowymi w
przestrzeni wejściowych sygnałów. Na przedstawionej mapie poszczególnym neuronom przypisano już etykiety odpowiadające typom węgla wskazywanym przez neurony zwycięskie, zaś regiony mapy, obejmujące kilka
neuronów reagujących na tę sama klasę, zostały oznaczone kolorami.
7
Uwagi i wyjaśnienia
antracytowy
antracyt
chudy
semikoksowy
metakoksowy
ortokoksowy
ortokoksowy
chudy
semikoksowy
metakoksowy
metakoksowy
ortokoksowy
ortokoksowy
ortokoksowy
ortokoksowy
ortokoksowy
plomienny
plomienny
ortokoksowy
gazowo-koksowy
gazowo-koksowy
gazowo-plomienny
gazowo-plomienny
gazowy
gazowo-koksowy
gazowo-koksowy
gazowo-plomienny
gazowo-plomienny
gazowy
gazowo-koksowy
gazowo-koksowy
gazowy
Rysunek 4: Mapa topologiczna sieci
Po zakończeniu procesu uczenia i przeprowadzeniu etykietowania mapy topologicznej otrzymano sieć prawidłowo rozróżniającą typy węgla kamiennego, tj. zgodnie ze znormalizowaną tabelą, jednakże z jednym wyjątkiem —
wektory wyjściowe opisujące węgiel antracytowy oraz antracyt aktywowały
zawsze ten sam neuron.
Uwagi i wyjaśnienia
Podczas projektowania sieci Kohonena oraz jej uczenia wystąpiły następujące problemy, których gotowe rozwiązania przedstawione wyżej wymagają wyjaśnienia:
1. Z uwagi na to, że dla pewnych klas węgla niektórych parametrów nie normuje
się, przyjęto ich wartości za równe zero, gdyż norma nie podaje ich zakresu;
w związku z tym dla dowolnych danych opisujących daną próbkę węgla konieczne jest przeprowadzenie zerowania niektórych wartości zmiennych według
poniższego algorytmu:
• Jeśli zawartość części lotnych > 30 i zdolność spiekania < 30, zeruje się
wartości ciśnienia rozprężania i grubości warstwy plastycznej,
• Jeśli zawartość części lotnych < 16 i zdolność spiekania < 10, zeruje się
wartości grubości warstwy plastycznej i ciepła spalania,
• Jeśli próbka nie spełnia żadnego z dwu powyższych warunków, zeruje się
wartość ciepła spalania.
Po tym zabiegu należy oczywiście, przed wprowadzeniem danych do sieci, przeskalować wartości numeryczne parametrów na przedział [0; 1].
2. Sieć uczono wielokrotnie stopniowo zwiększając liczbę zmiennych wejściowych
(począwszy od dwóch) oraz stosując ich różne kombinacje do momentu, aż sieć
osiągnęła minimalną wartość błędu. Stwierdzono, że parametr opisujący wskaźnik plastometryczny skurczu nie poprawia zdolności sieci do rozpoznawania
klas danych i pominięto go, przyjmując pięciowymiarową przestrzeń opisującą
próbki.
3. Skonstruowano 200 przypadków uczących tak, aby tworzyły wyraźne skupienia danych, tj. w wektorach wejściowych pominięto wszystkie wartości bliskie
krańcom przedziałów określonych w normie. Był to zabieg konieczny, gdyż
przy zastosowaniu zbioru uczącego zawierającego cały zakres możliwych do
8
Podsumowanie
przyjęcia wartości zmiennych, nie udało się zbudować takiej sieci, która klasyfikowałaby próbki zgodnie z normą. Należało więc niejako „wskazać” sieci
centra skupień danych przez odpowiednie spreparowanie zbioru uczącego.
4. Polska klasyfikacja wyróżnia dziesięć klas węgla. Teoretycznie więc można byłoby zbudować sieć o 16 neuronach w warstwie wyjściowej - każdej klasie odpowiadałby przynajmniej jeden neuron. Jednak tak mała mapa topologiczna
okazała się niewystarczająca, sieć popełniała zbyt wiele błędów. Przykładową
mapę topologiczną o wymiarach 4×4 przedstawia rysunek 5. Kolorem czerwonym zaznaczono neurony, które były neuronami zwycięskimi równocześnie
dla kilku klas uniemożliwiając ich rozróżnienie. Eksperymentalnie ustalono,
że najbardziej optymalną siecią jest sieć o 36 neuronach wyjściowych, mimo
tego, że, jak już wspomniano, nie rozróżnia ona dwu typów minerału - węgla
antracytowego oraz antracytu. Jednakże zwiększanie liczby neuronów warstwy
wyjściowej nie niwelowało tego zachowania sieci.
semikoksowy
chudy
antracytowy
antracyt
plomienny
metakoksowy
semikoksowy
gazowy
gazowo-koksowy
gazowy
gazowo-koksowy
plomienny
gazowo-plomienny
plomienny
plomienny
gazowo-plomienny
gazowo-plomienny
metakoksowy
gazowo-koksowy
ortokoksowy
ortokoksowy
ortokoksowy
Rysunek 5: Mapa topologiczna sieci 4×4
5. Liczbę epok, przez którą będzie działać algorytm, ustalono eksperymentalnie
na 110. Uczenie przeprowadzane w kolejnych epokach zmniejszało tylko minimalnie błąd popełniany prze sieć, ale równocześnie zachodziło zjawisko przeuczenia sieci objawiające się powolnym, stałym zwiększaniem różnicy pomiędzy
błędem popełnianym na zbiorze uczącym a błędem dla zbioru walidacyjnego.
Podsumowanie
Specyficzne właściwości sieci Kohonena, konstruowanych na wzór żywych
sieci neuronowych występujących w przyrodzie, pozwalają na ich zastosowanie w skomplikowanych procedurach analizy, opracowywania i klasyfikacji
danych pochodzących praktycznie z dowolnego źródła. Dzięki temu, że sieci
te potrafią rozpoznawać skupienia danych i odpowiednio do ich struktury modyfikować swoją wewnętrzną kompozycję wag neuronów, można je również
używać do określania przynależności pewnych obiektów do znanych klas na
podstawie ich podobieństwa do zakodowanych w sieci wektorów wzorcowych.
Zastosowania sieci Kohonena do rozpoznawania próbek węgla kamiennego
wymagało pewnych zabiegów preprocessingu danych oraz kontroli, polegającej na porównywaniu wyników sieci z narzuconą z góry tabelą klasyfikacyjną.
Po wielu próbach i modyfikacjach tak sieci, jak i zbioru uczącego, otrzymano
sztuczną sieć neuronową poprawnie rozwiązującą postawiony problem klasyfikacyjny.