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