Politechnika Lubelska

advertisement
Politechnika Lubelska
Wydział Zarządzania i Podstaw Techniki
Temat:
Sieć neuronowa do klasyfikacji rodzaju
węgla kamiennego.
Prowadzący:
Dr Popko Artur
Wykonał:
Marek Harasimiuk
ETI 5.3. (gr. lab. 5.5)
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
Przykład sieci do rozpoznawania próbek
węgla
Do rozpoznawania próbek węgla moŜna zastosować 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.
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).
Schemat sieci Kohonena do klasyfikacji
rodzajów węgla
Sieć ta posiada 5 neuronów wejściowych oraz 36 neuronów wyjściowych
2
Pomysł budowy innej sieci do
klasyfikacji węgla kamiennego.
Z racji złoŜoności utworzenia sieci Kohonena, postanowiłem
skonstruować inną sieć, która wykonuje identyczne działania polegające na
klasyfikacji węgla kamiennego, jednak jest inaczej zbudowana. Skonstruowana
sieć jest prostsza w budowie od sieci Kohonena na naszym etapie zapoznania
z projektowaniem sieci neuronowych.
Sieć przeze mnie wykonana posiada 25 neuronów wejściowych
(o odpowiednich parametrach danych) oraz 10 wyjściowych (10 rodzajów
węgla kamiennego). Ilość neuronów w warstwie ukrytej otrzymam na drodze
badania sieci i jej uczenia.
Do uczenia sieci zakładam błąd uczenia sieci (Target net error) równy 0.01.
Polska klasyfikacja węgla
wg PN-54/G-97002
Tabela 1
3
Projektowanie sieci
W celu zbudowania sieci do klasyfikacji rodzajów węgla kamiennego
naleŜy przede wszystkim dokładnie przeanalizować tabelę 1 – Polska
klasyfikacja węgla.
Z analizy tabeli moŜna wywnioskować Ŝe do klasyfikacji rodzajów węgla
naleŜy przyjąć porównanie pięciu parametrów węgla:
- zawartość części lotnych,
- zdolność spiekania,
- ciśnienie rozpręŜania,
- skurcz,
- grubości warstwy plastycznej.
Ciepło spalania jest nieznormalizowane w większości rodzajów węgla,
dlatego jego porównanie w celu klasyfikacji węgla jest niemoŜliwe.
Projektowanie sieci
Dalsza analiza polega na podziale całego zakresu przyjmowanego przez
poszczególne parametry na pewne zakresy, w których dany parametr ma się
mieścić.
W tym przypadku przyjąłem, Ŝe 5 zakresów dla kaŜdego spośród
parametrów jest liczbą wystarczającą dla prawidłowego działania sieci
neuronowej.
W początkowej fazie projektowania sieci przyjmuję 2 neurony w warstwie
ukrytej, liczba ta będzie się zmieniać w trakcie uczenia sieci aŜ do uzyskania
wartości optymalnej.
W taki sposób powstało 25 neuronów wejściowych sieci, które są
odpowiedzialne za prawidłowe pozyskanie parametrów próbek węgla.
Warstwa wyjściowa to z kolei neurony określające 10 rodzajów węgla
kamiennego według Polskiej klasyfikacji węgla.
Budowa warstwy wejściowej oraz wyjściowej są przedstawione na
kolejnych slajdach.
4
Budowa sieci
Zbudowana przeze mnie sieć ma następujące neurony w warstwie wejściowej.
Zrzut ekranowy przedstawia konfigurację neuronów dla jednego z rodzajów węgla –
węgiel semikoksowy.
Budowa sieci
Warstwa wyjściowa sieci przedstawia się następująco
Poszczególne 10 neuronów określa 10 rodzajów węgla według Polskiej
klasyfikacji węgla
Podświetlony neuron jest wynikiem konfiguracji neuronów
wejściowych z poprzedniego slajdu.
5
Uczenie sieci
Po zbudowaniu sieci neuronowej, niezbędnym do jej prawidłowego
działania jest jej nauczenie, czyli sporządzenie lekcji, z której sieć dowie się
jakie kombinacje aktywacji neuronów wejściowych odpowiadają aktywacji
poszczególnych neuronów wyjściowych.
Schematy aktywacji neuronów warstwy wejściowej są przedstawione na
kolejnych slajdach. Są one zamieszczone w celu wizualnego przedstawienia
kombinacji ich aktywacji.
Schematy te posłuŜą do prawidłowego przygotowania lekcji dla uczenia
sieci neuronowej.
Do uczenia sieci zakładam błąd uczenia sieci (Target net error) równy
0.01.
Schematy aktywacji neuronów dla
poszczególnych rodzajów węgla
Korzystając z tabeli 1 - Polska klasyfikacja węgla wg PN-54/G-97002
utworzyłem odpowiedni schemat aktywacji neuronów warstwy wejściowej dla
kaŜdego rodzaju węgla. Schemat ten przedstawiony jest poniŜej.
6
Schematy aktywacji neuronów warstwy wejściowej c.d.
Badanie sieci
Po sporządzeniu odpowiedniej lekcji moŜna przystąpić do uczenia sieci.
Nasza praca to juŜ tylko uruchomienie nauczania. Dalsza część wykonuje się
samoczynnie, my moŜemy tylko obserwować wyniki uczenia sieci na wykresie
błędów.
JeŜeli wynik uczenia sieci nas nie satysfakcjonuje (np. zbyt długi proces
uczenia), naleŜy przebudować sieć wprowadzając nowe neurony do warstwy
ukrytej.
W sieci tej za kaŜdym razem dodawałem do warstwy ukrytej
po 2 neurony, po kaŜdej zmianie znów przeprowadzałem uczenie sieci
sprawdzając liczbę cykli uczenia do chwili osiągnięcia załoŜonego na początku
błędu uczenia sieci.
Po kaŜdym cyklu uczenia sieć była sprawdzana w celu weryfikacji
poprawności działania.
7
Badanie sieci
PoniŜsza tabela przedstawia wyniki badania sieci neuronowej. MoŜna
zaobserwować, Ŝe zwiększenie neuronów w warstwie ukrytej przyspiesza cykl
uczenia sieci.
Tabela 2
Wykres błędu sieci dla dwóch neuronów
w warstwie ukrytej
Jak zostało to juŜ przedstawione w tabeli wyników, siec o dwóch
neuronach w warstwie ukrytej nie jest w stanie nauczyć się zadanych lekcji. Na
potwierdzenie tego faktu zamieszczam wykres błędów sieci dla tego właśnie
przypadku.
Błąd uczenia sieci
nie spadł poniŜej
wartości w dolnej
części
okna
wykresu.
8
Błąd uczenia sieci
Dla porównania zamieszczam wykres błędów sieci dla 30 neuronów w
warstwie ukrytej (jest to optymalna liczba neuronów).
Jak widać na oknie
wykresu, załoŜony
błąd sieci został
osiągnięty
dość
szybko.
Wykres błędów uczenia
PoniŜszy wykres przedstawia jak zmieniała się liczba cykli uczenia do
chwili nauczenia sieci dla zwiększającej się liczby neuronów w warstwie ukrytej. Z
wykresu wyraźnie widać, Ŝe zwiększenie liczby neuronów szczególnie przy małej
ich liczbie znacznie wpływało na przyspieszenie procesu uczenia sieci.
90000
80000
70000
Liczba cykli
60000
50000
40000
30000
20000
10000
0
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
Ilość neuronów
Wykres wykonany na podstawie wyników z tabeli 2
9
Finalny wygląd sieci neuronowej
PowyŜsza sieć zawiera optymalną ilość neuronów w warstwie ukrytej. Widoczny jest tutaj
efekt działania sieci dla węgla semikoksowego.
Uwagi i obserwacje po nauczaniu sieci.
Podczas uczenia sieci neuronowej wystąpił problem z nauczeniem
sieci o 2 neuronach w warstwie ukrytej. Późniejsze próby z większą ilością
neuronów kończyły się sukcesem.
Optymalną liczbą neuronów w warstwie ukrytej okazała się liczba
30 neuronów. Po przekroczeniu tej liczby neuronów, sieć zaczęła się uczyć
wolniej. Liczba 30 neuronów w warstwie ukrytej pozostała w sieci.
Sieć zapisana w pliku (siec.mbn) jest siecią nauczoną, posiada ona takŜe
optymalną dla sieci ilość neuronów w warstwie ukrytej. Dodatkowo załączam
do opracowania plik z lekcją dla sieci (siec_lekcje.mbl).
Sprawdzenie sieci po kaŜdym procesie nauczania potwierdziło poprawne
działanie sieci. Sieć prawidłowo klasyfikuje rodzaje węgla na podstawie
podanych parametrów.
10
Uwagi i obserwacje po nauczaniu sieci.
Podczas kontroli działania sieci zauwaŜyłem, Ŝe sieć w pewnym zakresie
ma moŜliwość prawidłowego klasyfikowania węgla na podstawie nawet
niekompletnych danych.
Dla prawidłowej klasyfikacji rodzaju węgla na podstawie niekompletnych
danych wymagane jest, aby podane parametry były charakterystyczne dla
danego rodzaju węgla, w przeciwnym razie sieć moŜe podać inny, bardziej dla
niej prawdopodobny wynik.
Najbezpieczniej jest oczywiście podawać wszystkie parametry węgla,
co gwarantuje prawidłową klasyfikację jego rodzaju.
11
Download