pełny tekst - Zeszyty Naukowe Wyższej Szkoły Oficerskiej Wojsk
Transkrypt
pełny tekst - Zeszyty Naukowe Wyższej Szkoły Oficerskiej Wojsk
ZESZYTY NAUKOWE WSOWL Nr 4 (162) 2011 NAUKI EKONOMICZNE Artur DUCHACZEK Dariusz SKORUPKA ZASTOSOWANIE SZTUCZNYCH SIECI NEURONOWYCH W SYSTEMACH WSPOMAGANIA DECYZJI Z OBSZARU ZARZĄDZANIA LOGISTYKĄ W artykule przedstawiono możliwości wykorzystania komponentu TFannNetwork, opartego na bibliotece FANN wersja 2.0, do budowy aplikacji komputerowych wykorzystywanych w procesie zarządzania logistyką. Możliwości komponentu zaprezentowano na przykładzie zastosowania sztucznych sieci neuronowych do szacowania ładowności pojazdów transportowych na podstawie ich gabarytów. Słowa kluczowe: zarządzanie logistyczne, sztuczne sieci neuronowe, sieci neuronowe, biblioteka FANN Zarządzanie logistyką obejmuje obszary zarządzania związane z przepływem materiałów od źródeł zaopatrzenia do użytkownika gotowych wyrobów. Uwzględnia ono zarówno elementy planowania, integrowania i koordynowania, jak i kontroli działań z zakresu logistyki, tak aby rynki zbytu były zaopatrywane najbardziej efektywnie z punktu widzenia kosztów [1]. Można przyjąć, że logistyka jest działalnością wspomagającą wszystkie celowe procesy, w takim zakresie, aby środki niezbędne do realizacji zadań wytwórczych i usługowych były dostępne w odpowiedniej ilości, jakości i we właściwym czasie oraz miejscu [2]. Transport jest oczywiście integralną część procesu logistycznego, gdyż stanowi on działalność polegającą na zaplanowanym przemieszczaniu ładunków oraz osób [3]. Pojęciem związanym z transportem jest spedycja. Jest to działalność oparta na organizowaniu przewozu ładunków na zlecenie osoby prawnej - - WSTĘP - - - mjr dr inż. Artur DUCHACZEK, płk dr hab. inż. Dariusz SKORUPKA, prof. nadzw. WSOWL – Wydział Zarządzania Wyższej Szkoły Oficerskiej Wojsk Lądowych ZASTOSOWANIE SZTUCZNYCH SIECI NEURONOWYCH W SYSTEMACH… lub fizycznej i na wykonaniu czynności dodatkowych, które wynikają ze specyfiki danego zlecenia [4]. Ze względu na szeroki zakres działalności firm podczas realizacji zadań związanych z transportem i spedycją pomocne mogą okazać się nowoczesne systemy wspomagania decyzji (SWD). Pozwalają one decydentowi wykorzystać dane i modele dla rozpoznania, zrozumienia i sformułowania problemu [5]. Wspomagają one także tworzenie rozwiązań, umożliwiają wielokierunkowe prognozy i analizy ich efektywności, niezbędne do oceny wariantów i wyboru wariantu optymalnego. Zadaniem SWD jest jednak przede wszystkim wspieranie procesu rozumowania, a nie eliminowanie go [5]. W praktyce w przypadku zadań nieustrukturalizowanych lub słabo ustrukturalizowanych celowe może być stosowanie w SWD sztucznych sieci neuronowych (SSN). Jak podaje B. Bartkowski [6], jedną z najważniejszych zalet SSN jest fakt, że nie wymagają one programowania. Stworzona sieć uczy się sama, a rola użytkownika ogranicza się do zaprojektowania takiej struktury sieci, która najlepiej będzie nadawała się do rozwiązania danego problemu, a następnie do umiejętnego pokierowania procesem uczenia sieci. W zwykłym programie najmniejszy błąd może doprowadzić do wadliwego działania systemu, utraty danych, oraz do innych problemów. Jeśli chodzi o sieci neuronowe to nawet w przypadku poważnego uszkodzenia działa ona nadal [6]. W artykule zaprezentowane zostaną możliwości wykorzystania komponentu TFannNetwork, opartego na bibliotece FANN wersja 2.0, do budowy aplikacji komputerowej wspomagającej procesy podejmowania decyzji w obrębie działalności związanej z szeroko rozumianym transportem. - - 1. KRÓTKI OPIS BIBLIOTEKI FANN Biblioteka FANN (Fast Artificial Neural Network) jest projektem open-source implementującym wielowarstwową, jednokierunkową sieć neuronową z obsługą zarówno w pełni, jak i słabo połączonych sieci [7]. FANN jest łatwa w użyciu, wszechstronna, dobrze udokumentowana i szybka w działaniu. Dostępne są powiązania z ponad 15 językami programowania [8], w tym również z programem Delphi 7, który to zostanie omówiony w niniejszym artykule. TFannNetwork jest komponentem Delphi (stworzonym przez Pereira Maia), który łączy naszą aplikację z biblioteką FANN. Oczywiście nie trzeba instalować TFannNetwork, aby używać FANN w Delphi, ale komponent ten sprawia, że biblioteka jest bardziej przyjazną dla środowiska Delphi [7]. - - - Rys. 1. Możliwości wyboru wartości wybranych właściwości komponentu FannNetwork Źródło: Opracowanie własne – zrzut ekranu z programu Delphi 7 271 Artur DUCHACZEK, Dariusz SKORUPKA Komponent TFannNetwork posiada możliwość ustawienia (z poziomu aplikacji) dziewięciu podstawowych właściwości, dzięki którym, w błyskawiczny sposób, użytkownik może stworzyć prostą aplikację wykorzystującą sztuczną inteligencję. Właściwości te mogą być ustawiane na stałe bezpośrednio w ObjectInspector (rys. 1) lub w czasie uruchomienia aplikacji zmieniane programowo za pomocą odpowiednich procedur (funkcji). Do właściwości tych zaliczamy m.in. [8]: wybór funkcji aktywacji warstwy ukrytej (ActivationFunctionHidden) i warstwy wyjściowej (ActivationFunctionHidden); określenie wartości współczynnika kontrolującego ilość połączeń wewnątrz sieci (ConnectionRate); budowa struktury sieci, tj. ustalenie liczby warstw ukrytych i liczby neuronów w każdej z nich (Layers); ustalenie wartości współczynnika bezwładności (LearningMomentum); ustalenie wartości współczynnika uczenia (LearningRate); wybór algorytmu uczenia (TrainingAlgorithm). Kompotent TFannNetwork nie daje nam natomiast możliwości ustawienia wartość stromizny funkcji aktywacji, czyli wartość parametru s (steepness). Podczas tworzenia nowej sieci jego wartość jest automatycznie ustawiana na 0,5. Oczywiście pobranie lub ustawienie tego parametru dla warstw ukrytych i warstwy wyjściowej można zrealizować za pomocą funkcji i procedur dostępnych z poziomu biblioteki FANN, takich jak np. funkcja fann_get_activation_steepness_hidden, czy procedura fann_set_activation_steepness_hidden [7]. Niewątpliwą zaletą omawianej biblioteki jest fakt, że jest to produkt typu opensource, a mimo to zarówno sama biblioteka, jak i omawiany komponent posiadają dość profesjonalną i zwięzłą dokumentację [7]. Zdaniem autorów pracy, komponent TFannNetwork jest idealny zarówno do testów, porównania wyników uzyskanych z innych programów (np. Statistica, czy Matlab), jak i zastosowań dydaktycznych zaprezentowanych m. in. w niniejszej pracy. Niestety biblioteka FANN, a przez to i omawiany komponent aktualnie umożliwia implementacje jedynie sieci jednokierunkowych [7]. Tak naprawdę jednak z dotychczasowego doświadczenia autorów wynika, że w większości przypadków występujących w praktyce inżynierskiej jest to wystarczające. W pracy przedstawiono możliwość zastosowania SSN do oceny ładowności pojazdów transportowych na podstawie ich gabarytów. Organizacja przewozu ładunków uzależniona jest od posiadanego taboru, a szczególnie od jego ładowności. W czasie działań wojennych, bądź innych sytuacjach kryzysowych może dojść do sytuacji, że osoba funkcyjna (kierownik itp.) odpowiedzialna za organizację ewakuacji osób i mienia będzie musiała szybko oszacować ładowność posiadanych, a przede wszystkim pozyskanych z gospodarki narodowej środków transportowych. Wydaje się, że z pomocą mogą tu przyjść przygotowane zawczasu SWD wykorzystujące SSN. W pracy wykorzystano materiały firmy „HINET - Transport i Spedycja”, - - - - - 2. PRZYKŁAD ZASTOSOWANIA SSN W ZAGADNIENIACH ZWIĄZANYCH Z ZARZĄDZANIEM LOGISTYKĄ 272 ZASTOSOWANIE SZTUCZNYCH SIECI NEURONOWYCH W SYSTEMACH… dostępnych na stronie www omawianej firmy [9]. Analizie poddano tylko pojazdy, które nie posiadały przyczep lub naczep (tabela 1). W analizowanym zagadnieniu regresyjnym celem jest oszacowanie wartości ciągłej zmiennej wyjściowej, w sytuacji gdy znane są wartości zmiennych wejściowych. Problemy regresyjne reprezentowane są przez zbiory danych, w których zmienna wyjściowa nie jest zmienną nominalną, lecz ma charakter numeryczny [10]. W analizowanym przypadku wektor uczący składał się z czterech argumentów: W={D, S, W, Ł} (1) Pierwsze trzy to dane wejściowe niezależne: D - długość pojazdu, S – szerokość pojazdu i W - wysokość pojazdu. Czwartą wielkością była ładowność pojazdu (Ł) jako wielkość zależna (wyjściowa). Tabela1. Rodzaje pojazdów transportowych użytych do badań [9] Nazwa pojazdu Bus Dostawczy 3-tonowy Mała ubraniówka 8-tonowy „solówka” Naczepa „duży TIR” Długość [m] 3,6 3,6 5,2 6,0 7,8 13,6 Szerokość [m] 1,8 1,7 2,3 2,4 2,4 2,4 Wysokość [m] 1,7 1,7 2,3 2,6 2,4 2,7 Ładowność [T] 1,5 0,9 3,0 2,5 8,0 24,0 Źródło: [9] Zarówno zmienne niezależne, jak i zależne należało przeskalować, ponieważ w przypadku użycia funkcji logistycznej wartość wyjściowa neuronu znajduje się zawsze w przedziale (0; 1), zaś przedział wartości wejściowych, na które funkcja jest wrażliwa jest niewiele większy od przedziału (-1; +1) [10]. Omawiane wartości przeskalowano liniowo według zależności (2) i przedstawiono w tabeli 2, wykorzystując je w procesie uczenia i walidacji sieci neuronowej. Y = (X - Min) / (Max - Min); (2) gdzie: Y - to wartość przeskalowana (tabela 2), a X wartość oryginalna danej uczącej (tabela 1). Natomiast Min to wartość najmniejsza, a Max to wartość największa spośród danych w zbiorze uczącym. W analizowanym zadaniu było to odpowiednio 0,9 i 24. Tabela 2. Zestaw danych używanych w procesie uczenia i walidacji - - - - - Lp. 1 2 3 4 5 6 Zmienne wejściowe D S W 0,117 0,039 0,035 0,117 0,035 0,035 0,186 0,061 0,061 0,221 0,065 0,074 0,299 0,065 0,065 0,550 0,065 0,078 Zmienna zależna Ł 0,026 0,000 0,091 0,069 0,307 1,000 Źródło: Opracowanie własne 273 Artur DUCHACZEK, Dariusz SKORUPKA Jak podaje M. Szaleniec [11], w skrajnej sytuacji gdy dysponujemy bardzo małą liczbą przypadków (wzorców), można zrezygnować z grupy testowej. Zdecydowano się zatem wyłącznie na podział danych tylko na zbiory uczący i walidacyjny w stosunku 2:1. Parametrami, które mówiły o jakości sieci, były błędy predykcji dla grupy przypadków uczących i walidacyjnych. Istotne jest, aby błędy walidacyjne nie były znacząco większe od błędów uczących, gdyż taki objaw wskazuje na słabą zdolność sieci do generalizowania. Jeżeli sieć zaczyna się przeuczać, tzn. jest zbyt dobrze dopasowywana do danych uczących, następuje wzrost błędu walidacji przy jednoczesnym dalszym obniżaniu błędu uczenia. [11] Podział dostępnych wzorców (6 przypadków) na zbiór uczący i walidacyjny odbywał się na początku procesu uczenia sieci, w oparciu o tzw. próbkowanie typu bootstrapowego, procedurę opisaną w instrukcji programu STATISTICA Sieci Neuronowe [10]. W pierwszej kolejności losowano bez zwracania dwa przypadki do zbioru walidacyjnego. Następnie z pozostałych czterech przypadków bootstrapowo (tzn. ze zwracaniem) losowano podzbiór uczący. Założono, że podzbiór uczący ma dwanaście przypadków, gdyż przyjęto podwójną liczbę wszystkich wzorców. Było to możliwe ponieważ losowano ze zwracaniem, a więc podzbiór ten mógł być dowolnie duży. W standardowej procedurze [10] podzbiór testowy tworzony jest z przypadków, które pozostały po bootstrap. Ponieważ jednak w naszym przypadku zbiór ten nie był tworzony więc automatycznie te przypadki były wprowadzane do zbioru uczącego, w miejsce ostatnich wylosowanych. W wyniku przeprowadzonych analiz zdecydowano się przyjąć sieć MLP o strukturze 3:3-3-1:1. Zakładając maksymalną liczbę epok równą 1000 do analiz wybrano sigmoidalną funkcję aktywacji warstwy ukrytej i warstwy wyjściowej (fann_sigmoid) i algorytm uczenia fann_train_batch. Jak podaje Ł. Frankowski [7], jest to standardowy algorytm propagacji wstecznej, który aktualizuje wagi neuronów po obliczeniu średniego błędu kwadratowego dla wszystkich zestawów treningowych (w jednej iteracji), czyli wagi są aktualizowane tylko raz na epokę. Wynika z tego, że średni błąd kwadratowy jest tutaj obliczany precyzyjniej niż w metodzie standardowej (fann_train_incremental) [7]. Wartość współczynnika bezwładności (LearningMomentum) wynosiła 0,01, natomiast wartość współczynnika uczenia (LearningRate) 0,3. Przyjęto wartości współczynnika kontrolującego ilość połączeń wewnątrz sieci (ConnectionRate) równą 1. Na rysunku 2 zaprezentowano przebieg zmian wartości błędu RMS podczas uczenia i walidacji sieci MLP, w kolejnych epokach uczenia algorytmem wstecznej propagacji błędu. Obliczenia wykonano autorskim programem stworzonym w programie Delphi 7, wykorzystaniem komponentu TFannNetwork. Wartość błędu RMS wraz z postępem uczenia maleje, a obserwowana zbieżność wartości błędów dla zbioru walidacji i uczenia świadczy z całą pewnością o prawidłowym przebiegu procesu uczenia. - - - - - Przyjęta w procesie modelowania struktura sieci (architektura, funkcja aktywacji neuronów ukrytych oraz algorytm uczenia) charakteryzuje się najniższą wartością błędu RMS (Root Square Error). 274 ZASTOSOWANIE SZTUCZNYCH SIECI NEURONOWYCH W SYSTEMACH… Rys. 2. Okno autorskiej aplikacji komputerowej realizującej proces uczenia sieci i rejestrującej przebieg zmian wartości błędu RMS podczas uczenia i walidacji Źródło: Opracowanie własne W tabeli 3 przedstawiono wyniki obliczeń parametrów regresji zmiennej wyjściowej modelu bazującego na sieci MLP, uczonej algorytmem wstecznej propagacji błędu. Zaprezentowane charakterystyki regresyjne wyznaczono łącznie dla wszystkich zbiorów jednocześnie (tzn. uczącego i walidacyjnego). Na podstawie danych wartości zmiennej, określono charakterystyki regresyjne, z których najważniejszą jest iloraz odchyleń standardowych [12]. Wyznacza się go jako iloraz odchylenia standardowego błędów predykcji i odchylenia standardowego zmiennej wyjściowej [10]. Iloraz ten stanowi główny wskaźnik jakości zbudowanego modelu, gdyż wskazuje na stopień dokładności predykcji. Małe wartości ilorazu odchyleń standardowych dla błędów mogą świadczyć o zadowalającej realizacji regresji przez sieć [12]. Tabela 3. Parametry regresji zmiennej wyjściowej modelu bazującego na sieci MLP Lp. Wyszczególnienie Sieć MLP 3:3-2-1: l Lp. Wyszczególnienie Sieć MLP 3:3-2-1: l 1. Średnia 6,558 4. Odchylenie standardowe błędu 0,768 2. Odchylenie standardowe 7,478 5. Iloraz odchyleń 0,103 3. Średni błąd 0,092 6. Korelacja 0,998 - - - - - Źródło: Opracowanie własne Wydaje się, że ostatnie dwa parametry z tabeli 3 potwierdzają dobrą jakość stworzonego modelu MLP. Iloraz odchyleń standardowych (błędów i danych) dla stworzonego zbioru (podzbioru uczącego i walidacyjnego) osiągnął wartość 0,103. Odchylenie standardowe danych (występujące w mianowniku ilorazu) jest określone dla 275 Artur DUCHACZEK, Dariusz SKORUPKA danych podlegających analizie zarówno w procesie uczenia, jak i walidacji. Jak podaje T. A. Grzeszczyk [13], stosunkowo mała wartość ilorazu świadczy o niedużej wartości odchylenia standardowego błędów (znajdującego się w liczniku ilorazu) w relacji do odchylenia danych rzeczywistych. Z tego względu można uznać tę wartość ilorazu za zadowalającą. Współczynniki korelacji między wartościami rzeczywistymi i wyznaczonymi za pomocą modelu MLP dla stworzonego zbioru osiągnęły również bardzo dobrą wartość, tj. 0,998. PODSUMOWANIE Analiza przeprowadzona na opisanym przykładzie umożliwia zaprezentowanie zalet stosowania SSN do rozwiązywania zadań słabo strukturalizowanych, jak również przedstawienie możliwości wykorzystania samego komponentu TFannNetwork. Zastosowanie stworzonej i wyuczonej w ten sposób sieci SSN w autorskich SWD jest bardzo proste i nie powinno nastręczać większych kłopotów osobom, które zajmują się programowaniem w Delphi tylko w sposób „amatorski”. Oczywiście, że zaimplementowanie w aplikacjach sieci stworzonych w programach profesjonalnych, takich jak np. Statistica Sieci Neuronowe jest również możliwe [10], ale wymaga od programisty znacznie większych umiejętności, jak również dodatkowej licencji, np. na produkt firmy StatSoft Polska Sp. z o.o. Wydaje się zatem, że przybliżenie możliwości komponentu TFannNetwork było jak najbardziej uzasadnione. Tym bardziej, że ze względu na prostotę jego obsługi, wydaje się, że powinien być on często stosowany przez inżynierów i kierowników do rozwiązywania problemów wymagających wsparcia sztucznej inteligencji, a niedających się zlogarytmizować w prosty sposób. Obszarem takim będą na pewno wszelkie zagadnienia związane z szeroko rozumianym zarządzaniem logistyką. Znajomość biblioteki FANN, jak i samego komponentu TFannNetwork, może znacznie ułatwić rozpoczęcie „zabawy” z sieciami neuronowymi. Oczywiście FANN wymaga jeszcze dopracowania w wielu szczegółach, o których pisze bardzo obszernie m.in. Ł. Frankowski w pracy [7]. Wydaje się jednak, że w przyszłości może stać się w pełni profesjonalnym produktem, jak i inne programy typu open-source. LITERATURA: [1] Pastuszak Z., Zarządzanie logistyczne. Podstawowe definicje, [online]. [dostęp: 17.06.2011]. Dostępny w Internecie: http://umcs.net.pl/index.php?act= Attach& type=post&id=2800. [2] Chaberek M., Główne problemy badawcze w zakresie rozwoju logistyki na obszarze Unii Europejskiej, Współczesne problemy ekonomiki transportu, [w:] „Zeszyty Naukowe”, nr 435, Wydawnictwo Uniwersytetu Szczecińskiego, Szczecin, 2006. [4] Rydzykowski W., Wojewódzka-Król K., Transport, Wydawnictwo Naukowe PWN, Warszawa 2002. [5] System Wspomagania Decyzji. [online]. [dostęp: 23.05.2011]. Dostępny w Internecie: http://mfiles.pl/pl/index.php/System_wspomagania_decyzji. - - - - - [3] Marszałek S., Ekonomika, organizacja i zarządzanie w transporcie, Wydawnictwo Śląskiej Wyższej Szkoły Zarządzania, Katowice, 2001. 276 ZASTOSOWANIE SZTUCZNYCH SIECI NEURONOWYCH W SYSTEMACH… [6] Bartkowski B., Zalety i wady sieci neuronowej, [online]. [dostęp: 23.01.2011]. Dostępny w Internecie: http://www.neuron.kylos.pl/pliki/ogolne/ogolne3.html. [7] Frankowski Ł., Fast Artifical Neural Network. Opis biblioteki FANN. Bydgoszcz 2005, [online]. [dostęp: 1.02.2011]. Dostępny w Internecie: http://www.l0co. webpark.pl/edu/fann/fann_ref.pdf. [8] FANN - Fast Artificial Neural Network Library. [online]. [dostęp: 1.02.2011]. Dostępny w Internecie: http://leenissen.dk/fann/wp/. [9] [online]. [dostęp: 23.05.2011]. Dostępny w Internecie: http://www.hinet.com.pl/ rodzaje.html. [10] Instrukcja obsługi programu STATISTICA Sieci Neuronowe.(pliki pomocy z programu STATISTICA Sieci Neuronowe - wersja 6.0). [11] Szaleniec M., Sieci neuronowe i regresja wieloraka – czyli jak okiełznać złożoność w badaniach naukowych? [online]. [dostęp: 17.06.2011]. Dostępny w Internecie: http://www.statsoft.pl/czytelnia/artykuly/sieci%20neuronowe.pdf. [12] Grzeszczyk T. A., Zintegrowana metoda prognozowania w zarzadzaniu przedsiębiorstwem, StatSoft, Kraków 2003. [13] [online]. [dostęp: 27.06.2011]. Dostępny w Internecie: www.statsoft.pl/czytelnia/ badanianaukowe/d2ekon/zintegrowanametoda.pdf. [14] Czoków M., Piersa J., Wstęp do sieci neuronowych, wykład 13-14, Walidacja jakości uczenia. Metody statystyczne. [online]. [dostęp: 17.06.2011]. Dostępny w Internecie: www-users.mat.umk.pl/~piersaj/content/wsn2010/wsn-lec13-wali dacja.pdf. APPLICATION OF ARTIFICIAL NEURAL NETWORKS IN DECISION SUPPORT SYSTEMS IN LOGISTICS MANAGEMENT Summary The article presents the possibility of using a TFannNetwork component, based on the FANN library (version 2.0), for building computer applications used in logistics management. The potential of the component is exemplified with the application of artificial neural networks to estimate the capacity of transport vehicles based on their dimensions. - - - - - Key words: logistic management, artificial neural networks, neural networks, FANN library 277