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