ZarzÄ…dzanie wiedzÄ… Sphinx, Detreex, Neuronix, PC Shell


Praktyczne wykorzystanie programu Sphinx
(moduły: DeTreex, PC-Shell i Neuronix.)
ZarzÄ…dzanie wiedzÄ…
1
Wstęp
Sztuczna inteligencja (ang. Artificial Intelligence  AI ) to technologia i kierunek badan
na styku informatyki, neurologii i psychologii. Jego zadaniem jest konstruowanie maszyn i
oprogramowania zdolnego rozwiązywać problemy nie poddające się algorytmizacji w sposób
efektywny, w oparciu o modelowanie wiedzy (inaczej: zajmuje siÄ… konstruowaniem maszyn,
które robią to, co obecnie ludzie robią lepiej). Problemy takie bywają nazywane AItrudnymi i
zalicza się do nich miedzy innymi analiza (i synteza) języka naturalnego, rozumowanie
logiczne, dowodzenie twierdzeń, gry logiczne (szachy, warcaby, go) i manipulacja wiedza -
systemy doradcze, diagnostyczne.
Korzystanie z nauczonej sieci jest dość proste i szybkie. Niestety nie jest tak z samym
uczeniem się. Uczenie się to  po prostu dobieranie wag połączeń między neuronami w taki
sposób, aby po podaniu na wejściu sieci jakiś wartości, na jej wyjściu uzyskać odpowiedni
wynik przy założeniu uzyskania jak najniższego błędu. Można wyróżnić kilka sposobów
uczenia siÄ™: uczenie pod nadzorem (inaczej uczenie z nauczycielem) gdy znamy odpowiedz
na dany ciąg danych wejściowych. Odmianą tego sposobu jest uczenie się z krytykiem.
Różnica polega na tym, że nie znamy dokładnej żądanej odpowiedzi a mamy jedynie
informację o tym czy zmiana wartości wag daje wartości pozytywne (przyśpieszające) czy
negatywne (opózniające).Uczenie samoorganizujące się typu Hebba opiera się na obserwacji
neurobiologicznej, zgodnie z którą waga powiązań między dwoma neuronami wzrasta przy
stanie ich jednoczesnego pobudzenia, w przeciwnym wypadku maleje. Uczenie z konkurencjÄ…
opiera się na współzawodnictwie neuronów ze sobą, aby stać się z aktywnymi
(pobudzonymi). Tylko jeden neuron może być aktywny, pozostałe muszą pozostać w stanie
spoczynku. W przypadku sieci jednokierunkowych (w których sygnał rozprowadzany jest od
warstwy We do Wy, w jednym kierunku) uczy się je najczęściej w następujący sposób.
Przygotowuje się zestaw danych wejściowych wraz z odpowiadającymi im wynikami, jakie
powinna uzyskać sieć. Wagi sieci inicjalizuje się w sposób przypadkowy. Następnie podaje
się kolejno, wiele razy, wszystkie zestawy danych wejściowych i patrzy, na ile odpowiedz
sieci różni się od poprawnego wyniku. Oblicza się różnicę i następnie w odpowiedni sposób
koryguje się wagi połączeń wewnątrz sieci. (poczynając od połączeń od ostatniej warstwy
ukrytej do warstwy wyjściowej, i tak dalej, aż do warstwy wejściowej). Jeśli będziemy
wystarczająco cierpliwi i przygotujemy dane w odpowiedni sposób, to dostaniemy w wyniku
sieć nauczoną, tj. mającą wartości wag takie, jakie trzeba, aby efektywnie rozwiązać
2
postawione jej zadanie. Niestety, istotnym mankamentem SSN jest fakt, iż uczenie zazwyczaj
jest procesem bardzo pracochłonnym. Nauczenie sieci oczywiście nie jest ostatnim etapem jej
projektowania  potem trzeba jeszcze ją przetestować  do tego wykorzystuje się kolejny
zestaw danych wejściowych i wyjściowych, ale takich, które nie były wykorzystane podczas
uczenia. Jeśli na tym zestawie sieć wypadnie pomyślnie, można się spodziewać, że w
sytuacjach przyszłych (dla jakiś nieznanych danych) też tak będzie. Jeśli nie  trzeba
powtórzyć uczenie, ewentualnie zmieniając budowę sieci albo zestaw danych uczących. Do
uczenia i weryfikacji danych, stosuje się odpowiednie metody statystyczne. Chodzi o to, żeby
w czasie uczenia sieć miała styczność z danymi wejściowymi z wszystkich możliwych do
przewidzenia kategorii, jakie mogą się pojawić pózniej, na etapie stosowania już nauczonej
sieci.
Uczenie nie jest też pierwszym stadium projektowania sieci. Najpierw trzeba ustalić, jak
będzie ona zbudowana. Ilość neuronów wejściowych i wyjściowych jest określona z góry dla
danego problemu, natomiast ilość neuronów w warstwach ukrytych (oraz ilość samych
warstw, choć zazwyczaj stosuje się jedną, góra dwie) można regulować. Generalnie rzecz
biorąc, tylko jeden układ przestrzenny sieci jest optymalny. Jeśli warstwy ukryte mają zbyt
wiele neuronów, sieć nadmiernie dopasowuje się do nauczanych danych jej
wynik bliższy interpolacji) i przez to traci zdolność uogólniania. O takiej sieci mówi się, że
jest  przeuczona . Jeśli natomiast neuronów w warstwie ukrytej jest za mało, sieć nie jest w
stanie poprawnie odtworzyć uczonej funkcji, jest  niedouczona. Istnieją pewne ogólne,
empiryczne zasady doboru tych wartości i struktura każdorazowo powinna być
optymalizowana. Można do tego stosować np. metody optymalizacji genetycznej. Mając
nauczoną sieć można ją przetestować i, jeśli sprawdziła się, stosować w praktyce.
Trudno wymienić wszystkie zastosowania sieci neuronowych. Ze względu na specyficzne
cechy i niepowtarzalne zalety obszar zastosowań sieci neuronowych jest rozległy, stosujemy
je wszędzie tam, gdzie nie wymagane są odpowiedzi ilościowe, a jakościowe na przykład:
- diagnostyka układów elektronicznych;
- badania psychiatryczne;
- prognozowanie sprzedaży;
- interpretacja badań biologicznych;
- prognozy cen;
- prognozowania postępów w nauce;
- analiza problemów produkcyjnych.
Jedną z najważniejszych zalet SSN z punktu widzenia to, że SSN nie wymagają
3
programowania. Wystarczy stworzyć sieć, a ona uczy się sama. Rola programisty 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. Analogicznie jest w przypadku każdego z nas. Aby być w jakiejś dziedzinie
fachowcem, trzeba po pierwsze mieć wrodzone uzdolnienia w danej dziedzinie (odpowiednią
strukturę własnej sieci neuronowej, jaką jest mózg), a po drugie - mieć dobrego nauczyciela.
Inną zaletą siei neuronowych jest to, że w przypadku poważnego uszkodzenia działa nadal.
Oczywiście do pewnego stopnia. Kolejną ważną zaletą SSN jest zdolność uogólniania
zdobytej wiedzy. Znaczy to dokładnie tyle, że jeśli sieć nauczy się, powiedzmy, rozpoznawać
kolory: czerwony i żółty, to rozpozna również różowy i bladożółty, czyli kolory podobne do
znanych. Wymienione zalety to oczywiście tylko część tego, czym SSN może nam
zaimponować.
Istnieją również wady sieci neuronowych. Sieci neuronowe nie przydadzą się przede
wszystkim tam, gdzie potrzeba jasnych i precyzyjnych wyników - czyli przy rozmaitych
skomplikowanych obliczeniach, obsłudze kont bankowych, itp. Wynika to z faktu, iż SSN jest
odbiciem ludzkiego mózgu, ten zaś nie jest przystosowany do precyzyjnego operowania
liczbami. SSN operuje tzw. pojęciami rozmytymi. Często jeśli oczekujemy od sieci
odpowiedzi "tak" lub "nie", ona odpowie: "raczej tak", lub: "chyba nie". Ta ostatnia skłonność
sieci może być zarówno wadą, jak i zaletą - zależy, jak na to patrzeć. SSN nie zdaje egzaminu
także wtedy, gdy specyfika problemu wymaga zastosowania wieloetapowego rozumowania.
Kiedy trzeba mozolnie dochodzić do pewnych wniosków na podstawie efektów
wcześniejszego rozumowania, a z tych wniosków wyciągać kolejne  sieć "odpada". Ona
"woli" rozwiązać zadanie na raz, w jednym  rzucie . Jeśli nawet pojawiają się jakieś wnioski
pośrednie, to i tak nie ma do nich dostępu. Ta ostatnia cecha może się wydać
dziwna komuś, kto oswoił się już z myślą, że SSN symuluje działanie mózgu. Przecież
człowiek rozumuje krok po kroku, z jednych wniosków wyciągając następne. To fakt, ale
rozumowanie można podzielić na pojedyncze etapy, w których działamy "na raz". Mamy
jakieś dane i wyciągamy z nich wniosek. Ten wniosek posłuży do wyciągnięcia następnego,
również w takim jednorazowym procesie.
Przykładem polskiego zintegrowanego pakietu sztucznej inteligencji jest system Sphinx,
którego struktura zostanie w niniejszym projekcie przybliżona. Składa się on z ośmiu
modułów:
1. CAKE 4.0,
2. DemoViewer,
4
3. DeTreex 4.0,
4. Dialog Edytor,
5. HybRex 4.0,
6. Neuronix 4.0,
7. PC-Shell 4.0,
8. Predyktor 4.0.
Niniejszy projekt zawiera przykłady wykorzystania modułów: DeTreex, PC-Shell i
Neuronix.
Opis problemu: Firma  X analizuje jaki wpływ na wzrost przychodów ze sprzedaży
miało zastosowanie różnych rodzajów kampanii reklamowych w napoju gazowanego. Firma
chce sprawdzić, która z kampanii przyniosła najlepszy rezultat i zastosować podobny chwyt
marketingowy e stosunku do własnego produktu.
Pierwszym krokiem przy budowie drzewa decyzyjnego jest przedstawienie danych
wejścia i wyjścia dla omawianego problemu (tab. 1.1). W tabeli zamieszczono 30
przypadków z różnych firm. Zaprezentowane tam dane zostały odpowiednio przetworzone i
zapisane w notatniku z rozszerzeniem pliku -  *.lrn , czyli jako zbiór uczący.
1. DeTreex
DeTreex jest narzędziem służącym do wspomagania procesu pozyskiwania wiedzy -
dzięki zastosowanej indukcyjnej metodzie  uczenia maszynowego możliwe jest budowanie
drzew decyzyjnych i zapis tych drzew w postaci reguł (reguły są najczęściej stosowana
metoda reprezentacji wiedzy w bazach wiedzy systemów ekspertowych). DeTreex może być
stosowany wszędzie tam, gdzie pojawia się problem:
·ð podejmowania decyzji (klasyfikacji obiektów);
·ð szybkiego pozyskania reguÅ‚ decyzyjnych ze zbioru przykÅ‚adów uczÄ…cych;
·ð szybkiej weryfikacji pozyskanych reguÅ‚.
Najważniejsza pozycja menu głównego jest Drzewo decyzyjne, dzięki niemu mamy dostęp
do następujących funkcji systemu: generuj drzewo, przerwij pracę, pokaż dziedzinę, pokaz
drzewo graficzne, pokaz drzewo tekstowe , testuj drzewo, testowych zapisanych w
dodatkowym pliku, zapisz reguły do bazy wiedzy, zapisz reguły do zródła czy uruchom bazę
wiedzy w PC-Shell u.
5
Tab. 1.1. Dane wejścia i wyjścia dla omawianego problemu.
Czas trwania
Lp. Charakter przekazu Rodzaj przekazu Nośnik Zasięg kampanii Wynik sprzedaży
[miesiÄ…ce]
1 śmieszny spot reklamowy radio regionalny 1 wzrost
2 poważny ulotka agencja regionalny 1 spadek
3 poważny graficzny gadżet krajowy 3 bez zmian
4 śmieszny graficzny gadżet regionalny 2 bez zmian
5 śmieszny piosenka radio regionalny 2 wzrost
6 poważny spot reklamowy telewizja regionalny 2 bez zmian
7 poważny artykuł sponsorowany prasa regionalny 1 wzrost
8 śmieszny graficzny prasa regionalny 2 wzrost
9 poważny spot reklamowy radio regionalny 2 bez zmian
10 śmieszny graficzny gadżet regionalny 4 wzrost
11 śmieszny piosenka radio krajowy 2 bez zmian
12 śmieszny ulotka prasa regionalny 1 wzrost
13 śmieszny ulotka prasa krajowy 1 wzrost
14 śmieszny spot reklamowy telewizja regionalny 1 bez zmian
15 śmieszny spot reklamowy telewizja regionalny 2 wzrost
16 śmieszny spot reklamowy telewizja regionalny 3 wzrost
17 śmieszny piosenka gadżet regionalny 1 wzrost
18 śmieszny piosenka radio regionalny 2 wzrost
19 śmieszny piosenka radio krajowy 3 wzrost
20 śmieszny reklama internetowa internet krajowy 2 spadek
21 poważny reklama internetowa internet regionalny 1 bez zmian
22 śmieszny reklama internetowa internet regionalny 2 wzrost
23 poważny reklama internetowa internet regionalny 1 bez zmian
24 śmieszny spot reklamowy radio regionalny 1 wzrost
25 śmieszny spot reklamowy telewizja regionalny 1 bez zmian
26 śmieszny piosenka radio regionalny 2 wzrost
27 śmieszny piosenka radio regionalny 1 wzrost
yródło: Opracowanie własne.
6
Tab. 1.1. Dane wejścia i wyjścia dla omawianego problemu, c.d.
Czas trwania
Lp. Charakter przekazu Rodzaj przekazu Nośnik Zasięg kampanii Wynik sprzedaży
[miesiÄ…ce]
28 śmieszny ulotka prasa regionalny 1 bez zmian
29 poważny reklama internetowa internet regionalny 1 spadek
30 poważny artykuł sponsorowany prasa regionalny 1 wzrost
yródło: Opracowanie własne.
Zbiór uczący powstały w oparciu o zawartość powyższej tabeli prezentuje się następująco:
we we we we we wy
#Charakter przekazu #Rodzaj przekazu #Nośnik #Zasięg Czas trwania
kampanii #Wynik sprzedaży
smieszny spot reklamowy radio regionalny 1 wzrost
poważny ulotka agencja regionalny 1 spadek
poważny graficzny gadżet krajowy 3 bez zmian
smieszny graficzny gadżet regionalny 2 bez zmian
smieszny piosenka radio regionalny 2 wzrost
poważny spot reklamowy telewizja regionalny 2 bez zmian
poważny artykuł sponsorowany prasa regionalny 1 wzrost
smieszny graficzny prasa regionalny 2 wzrost
poważny spot reklamowy radio regionalny 2 bez zmian
smieszny graficzny gadżet regionalny 4 wzrost
smieszny piosenka radio krajowy 2 bez zmian
smieszny ulotka prasa regionalny 1 wzrost
smieszny ulotka prasa krajowy 1 wzrost
smieszny spot reklamowy telewizja regionalny 1 bez zmian
smieszny spot reklamowy telewizja regionalny 2 wzrost
smieszny spot reklamowy telewizja regionalny 3 wzrost
smieszny piosenka gadżet regionalny 1 wzrost
smieszny piosenka radio regionalny 2 wzrost
smieszny piosenka radio krajowy 3 wzrost
smieszny reklama internetowa internet krajowy 2 spadek
poważny reklama internetowa internet regionalny 1 bez zmian
smieszny reklama internetowa internet regionalny 2 wzrost
7
poważny reklama internetowa internet regionalny 1 bez zmian
smieszny spot reklamowy radio regionalny 1 wzrost
smieszny spot reklamowy telewizja regionalny 1 bez zmian
smieszny piosenka radio regionalny 2 wzrost
smieszny piosenka radio regionalny 1 wzrost
smieszny ulotka prasa regionalny 1 bez zmian
poważny reklama internetowa internet regionalny 1 spadek
poważny artykuł sponsorowany prasa regionalny 1 wzrost
Istotne było, aby pierwsze litery atrybutów nie były znakami specjalnymi, gdyż
wówczas DeTreex nie mógłby wygenerować drzewa decyzyjnego. Na rysunkach poniżej
przedstawiono otrzymane drzewa decyzyjne: graficzne i tekstowe (rys. 1.1, rys. 1.2).
Rys. 1.1. Otrzymane drzewo tekstowe problemu.
yródło: Opracowanie własne.
8
Rys. 1.2. Otrzymane drzewo graficzne problemu.
yródło: Opracowanie własne.
9
Wnioski z dokonanej analizy za pomocą modułu DeTreex są następujące:
·ð jeÅ›li zastosowanym Å›rodkiem przekazu bÄ™dzie prasa to istniejÄ… bardzo duże szanse na
powodzenie kampanii, czyli wywołanie wzrostu sprzedaży,
·ð równie skuteczna bÄ™dzie reklama radiowa ze Å›miesznym przekazem o regionalnym
zasięgu,
·ð pozostaÅ‚e warianty reklamy przynoszÄ… nikÅ‚e efekty lub wrÄ™cz żadne,
·ð wykorzystanie agencji jako noÅ›nika reklamy, a także stworzenie kampanii reklamowej
w internecie o śmiesznym charakterze i na skalę krajową przyniosą spadek sprzedaży.
W tym przypadku korzystniejsza będzie reklama regionalna.
2. PC-Shell
PC-Shell jest pierwszym polskim - w pełni komercyjnym - szkieletowym systemem
ekspertowym. Stanowi dziedzinowo niezależne narzędzie służące do budowy systemów
ekspertowych. Może być zastosowany w dowolnej dziedzinie: począwszy od bankowości i
finansów, a na zastosowaniach technicznych kończąc. Typowe obszary zastosowań systemu
PC-Shell to:
o systemy doradcze i wspomagania decyzji,
o dydaktyka (wyższe uczelnie i szkoły średnie).
Język opisu bazy wiedzy systemu PC-Shell służy do formalnego opisu wiedzy eksperckiej z
określonej dziedziny. Językami tego typu posługują się przede wszystkim inżynierowie
wiedzy. Ich podstawowym zadaniem jest pozyskanie wiedzy od specjalisty, stosując różne
techniki wypracowane przez teorię i praktykę dziedziny systemów ekspertowych i
zakodowanie jej za pomocą jakiegoś języka formalnego. PC-Shell jest systemem regułowym,
stąd całość wiedzy o charakterze heurystycznym jest kodowana za pomocą reguł i faktów.
Podstawową strukturą reprezentacji wiedzy jest tu trójka: obiekt-atrybut-wartość.
2.1. Ogólne zasady budowy aplikacji tablicowych
System PC-Shell zawiera elementy architektury tablicowej, co oznacza, że zapewnia
obsługę tzw. zródeł wiedzy. yródła wiedzy stanowią specjalistyczne bazy wiedzy, ujęte w
10
osobne pliki przeznaczone do rozwiązywania problemów wyodrębnionych w problemie
głównym. Aplikacja wykorzystująca architekturę tablicową musi się składać z modułu
głównego, rozpoczynającego się wyrażeniem knowledge base oraz pewnej liczby zródeł,
rozpoczynających się wyrażeniem kdowledge source.
2.2. Tworzenie aplikacji  Wynik sprzedaży
Pierwszym krokiem będzie otworzenie generatora nowej bazy i wpisanie nazwy bazy
wiedzy oaz wybranie opcji  do Pliku . Po wprowadzeniu danych pojawia się okno, w którym
ma powstać program.
Deklaracja zródeł wiedzy
PC-Shell jest systemem hybrydowym o architekturze tablicowej. Oznacza to, że do
rozwiązywania problemów może wykorzystywać wiele heterogenicznych zródeł wiedzy.
Dostępne są dwa typy właściwości zródła: type oraz file. Wybrano type oraz typ zródła: kb,
czyli eksperckie bazy wiedzy. Wyrażenie file określa plik, w którym przechowywane jest
zródło wiedzy. Po słowie file określana jest nazwa pliku i opcjonalnie ścieżka dostępu.
Deklaracja what_is określa zródła w formie baz wyjaśnień tekstowych
Opis faset
Faseta to zbiór deklaracji odnoszących się do wybranych atrybutów. Bloa faset zawiera
wykaz wszystkich atrybutów używanych w bazie wiedzy, w tym również zawartych w
zródłach wiedzy wraz z przypisanymi do nich fasetami. Nie wszystkie atrybuty musza być
opisane fasetami, ale wszystkie muszą być zadeklarowane w bloku faset. W module PC-Shell
występują następujące rodzaje faset: ask, single, unit, val oraz querty. Spośród wymienionych
musi wystąpić co najmniej jedna. Kolejność deklaracji jest dowolna.
Poniżej zostaną scharakteryzowane użyte rodzaje faset:
·ð single  umożliwia zadeklarowanie, że w bazie wiedzy może wystÄ…pić tylko jeden
fakt zawierający atrybut, do którego odnosi się ta faseta. Ma to najczęściej miejsce w
odniesieniu do atrybutów, których wartości wzajemnie się wykluczają.
·ð val oneof  deklaruje dozwolony zbiór wartoÅ›ci atrybutu, z którym ta faseta jest
związana. Wartości mogą być wyłącznie liczbami lub łańcuchami znakowym. Użycie
tej fasety zakłada domyślnie wartość yes dla fasety single.
11
·ð querty  umożliwia zdefiniowanie wÅ‚asnej treÅ›ci zapytać o prawdziwość okreÅ›lonych
warunków aktywnych reguł lub o wartości atrybutów występujących w tych
warunkach.
·ð picture  umożliwia powiÄ…zanie atrybutów z rysunkami. System pozwala przypasać
rysunek bezpośrednio do atrybutu lub przypisuje każdej wartości odrębny rysunek.
W PC-Shell użycie nawiasów klamrowych {  i } zapisanych niewytłuszczonym drukiem
oznacza konieczność wybrania jednego z ujętych między nimi wariantów.
Blok opisu faktów
Blok opisu faktów umożliwia zapisanie wiedzy o charakterze faktograficznym, będącej
zbiorem faktów na jakiś temat. Najczęściej są to informacje stałe o charakterze parametrów
dla bazy wiedzy. W praktyce blok ten musi wystąpić. Podstawowym elementem faktów jest
trójka obiekt-atrybut-wartość ( trójka OAW ), która może być poprzedzona znakiem negacji.
Podczas ładowania bazy wiedzy fakty umieszczane są na początku (przed regułami).
Blok opisu reguł
Blok reguł pełni główną rolę z punktu widzenia reprezentacji wiedzy eksperckiej.
Standardowo składnia reguł składa się z konkluzji oraz części warunkowej. Konkluzja oraz
część warunkowa są oddzielone słowem kluczowym if. Część warunkowa musi zawierać
przynajmniej jeden warunek. Kolejne reguły są od siebie oddzielane przecinkiem lub znakiem
 & .
W wyniku pracy w programie PC-Shell jest stworzenie aplikacji  Wynik sprzedaży (rys.
2.1).
Rys. 2.1. Okno powitalne aplikacji  Wynik sprzedaży .
yródło: Opracowanie własne.
12
Rys. 2.2. Okno aplikacji  określenie czasu trwania kampanii reklamowej.
yródło: Opracowanie własne.
Rys. 2.3. Okno aplikacji  wybór nośnika kampanii reklamowej.
yródło: Opracowanie własne.
13
Rys. 2.4. Okno aplikacji  wybór charakteru przekazu kampanii reklamowej.
yródło: Opracowanie własne.
Rys. 2.5. Okno aplikacji  wybór rodzaju przekazu kampanii reklamowej.
yródło: Opracowanie własne.
Wnioski
Dokonując wyborów wartości poszczególnych atrybutów problemu dochodzi się do jego
rozwiązania (rys. 2.6). Tak więc dla atrybutów:
14
·ð czas_trawania_kampanii = 3,
·ð nosnik = radio,
·ð charakter_przekazu = smieszny,
·ð zasieg = regionalny rozwiÄ…zanie problemu to  wzrost . Oznacza to, że taka strategia
kampanii reklamowej przyniesie firmie sukces.
Używając aplikacji można symulować jakie skutki przyniesie wybrany przez firmę rodzaj
kampanii.
Program, który posłużył do stworzenia aplikacji zamieszczono poniżej (rys. 2.2).
Aplikację można również utworzyć dzięki zapisaniu reguł z programu Detreex jako bazy
danych. Jest to znacznie łatwiejszy sposób ponieważ opanowanie języka modułu PC-Shell
jest bardzo czasochłonne.
Rys. 2.6. Rozwiązanie problemu za pomocą modułu PC-Shell.
yródło: Opracowanie własne.
15
Rys. 2.2. Program utworzony w module PC-Shell.
yródło: Opracowanie własne.
16
Rys. 2.2. Program utworzony w module PC-Shell, c.d.
yródło: Opracowanie własne.
3. Neuronix
System Neuronix jest narzędziem służącym do wszechstronnej analizy danych, a
potencjalne pole jego zastosowań jest nieograniczone. Został zbudowany na bazie teorii
sztucznych sieci neuronowych, dzięki temu pozwala na symulowanie procesów
przybliżonego rozumowania człowieka. Ideą sieci neuronowych jest naśladownictwo
złożonego jak nie wyjaśnionego procesu zdobywania wiedzy o otaczającym świcie przez
17
człowieka, a następnie uogólnienie tej wiedzy i indukcję nowych zachowań nie mieszczących
się w zbiorze zachowań wyuczonych. Sztuczna sieć neuronowa jest tylko nieudolną próbą
naśladowania procesu myślenia abstrakcyjnego.
Główne funkcje systemu Neuronix to:
·ð realizacja procesu projektowania sieci,
·ð wspomaganie niektórych etapów projektów za pomocÄ… wbudowanych kreatorów,
·ð możliwość pracy na danych numerycznych i tekstowych konwertowanych do postaci
numerycznej automatycznie, za pomocą specjalnego moduły transformującego,
·ð budowa aplikacji hybrydowych wykorzystujÄ…cych sieć neuronowÄ… oraz szkieletowy
system ekspertowy PC-Shell,
·ð dynamiczna wizualizacja struktury dziaÅ‚ajÄ…cej sieci neuronowej wraz z
wyświetlaniem wartości wejść i wyjść,
·ð monitorowanie, wizualizacja oraz automatyczne zapisywanie parametrów uczenia,
·ð tworzenie dowolnych raportów dziaÅ‚ania sieci poprzez wykorzystanie funkcji
neuronowych pobierających dane bezpośrednio z pracującej sieci.
Najważniejszą zaletą Neuronix jest możliwość uwzględnienia na wejściu i wyjściu danych
lingwistycznych w postaci tekstowej. Umożliwia to budowanie modeli operujących pojęciami
języka używanego przez człowieka.
Opis problemu
Celem tej części projektu jest zobrazowanie sposobu funkcjonowania modułu Neuronix
na przykładzie notowań giełdowych pewnej spółki. W oparciu o dane historyczne z 90 dni
program stworzy prognozÄ™ na kolejne 10 dni.
3.1. Utworzenie plików
Pierwszym krokiem przy pracy z modułem Neuronix jest uruchomienie kreatora instalacji
którego zadaniem jest prowadzenie procesu tworzenia podstaw programu. Jest on
podstawowym narzędziem, od którego zaczyna się budować projekt. Oprócz kreatora
projektu po lewej stronie wyświetla się okno  Zasoby projektu (rys. 3.1), które w momencie
rozpoczęcia pracy jest puste. Kliknięcie przycisku  > powoduje przejście do kolejnego etapu
projektu. Pierwszym zadaniem, które zostanie rozwiązane za pomocą kreatora jest utworzenie
pliku wag. W tym pliku sieć neuronowa będzie zapisywać obliczone wagi połączeń
międzyneuronowych. Plik ten posiada rozszerzenie *.wgt
18
Rys. 3.1. Okno dialogowe zasoby projektu uruchomione przy starcie kreatora.
yródło: Opracowanie własne.
Po utworzeniu pliku wag (rys. 3.2) kreator przechodzi do zapytania o stworzenie pliku z
rozszerzeniem *.bw, który umożliwi uruchomienie aplikacji hybrydowych. Po odhaczeniu
 Tak, chcę utworzyć i przejściu dalej w oknie dialogowym  Zasoby projektu pojawia się
wzmianka o nowym pliku (rys. 3.3).
Rys. 3.2. Okno dialogowe zasoby projektu po utworzeniu pliku wag.
yródło: Opracowanie własne.
Rys. 3.3. Okno dialogowe zasoby projektu po utworzeniu pliku z rozszerzeniem *.bw..
yródło: Opracowanie własne.
19
W kolejnym kroku kreator informuje o konieczności utworzenia pliku uczącego (z
rozszerzeniem *.lrn) i pliku testowego (*.tst) (rys. 3.4). Dalej użytkownik pytany jest o to czy
posiada dane, które chce przetwarzać za pomocą sieci neuronowej. Jeśli tak, proszony jest o
kontynuowanie procesu. Jeśli nie, proces tworzenia projektu razem z kreatorem ulega
zakończeniu.
Rys. 3.4. Okno dialogowe zasoby projektu z wszystkimi plikami.
yródło: Opracowanie własne.
Do arkusza Neuronix wprowadzono dane przygotowane wcześniej w programie Ms Excel
(rys. 3.5). W nagłówkach oznaczono dane wejściowe (x+n).
20
Rys. 3.5. Arkusz z danymi notowań giełdowych wprowadzony do Neuronix.
yródło: Opracowanie własne.
Na dalszym etapie otwierany jest okno parametrów generacji plików (rys. 3.6), w którym
ustala się rozmiar pliku uczącego (80%) i uczącego (20%). Odhaczana zostaje również opcja
 Losowe wartości w plikach , co zwiększy szybkość i efektywność pracy sieci. Praca z
kreatorem zostaje zakończona. Należy nadpisać nazwy wszystkich plików, w których
wystąpiły zmiany.
21
Rys. 3.6. Zmiana parametrów generacji plików.
yródło: Opracowanie własne.
3.2. Zdefiniowanie parametrów uczenia sieci neuronowej
Przy generacji plików, plik wag nie otrzymał żadnych wartości więc pierwszą rzeczą,
którą należy zrobić, aby zacząć uczenie sieci jest wygenerowanie tychże wag. Chcąc to
uzyskać trzeba uruchomić Sieć Uczenie sieci.
Niestety przy próbie uruchomienia uczenia sieci pojawił się komunikat o błędzie (rys.
3.7), którego autorka projektu nie potrafiła rozwiązać. Wobec tego dalsze kroki postępowania
zostaną przybliżone zgodnie z podręcznikiem załączonym do programu Neuronix.
Rys. 3.7. Błąd uniemożliwiający dalszą pracę w programie Neuronix.
yródło: Opracowanie własne.
22
Po kliknięciu zakładki  Uczenie sieci pojawia się okno dialogowe monitoringu
procesu uczenia (rys. 3.8). Należy wybierać opcję inicjacja wag, a następnie zapis wag.
Operacja ta przygotuje początkowe wagi powiązań pomiędzy neuronami w sieci. Po tej
operacji można przejść do okna, w którym określane będą parametry uczenia sieci. Aby to
osiągnąć należy wejść w menu narzędzia i wybierać opcję parametry sieci.
Rys. 3.8. Monitoring procesu sieci.
yródło: [4]
Następnie należy otworzyć okno opcji sieci neuronowej i ustalić parametry strukturalne
sieci (rys. 3.9). Służą one wyuczeniu sieci.
Rys. 3.9. Parametry strukturalne sieci.
yródło: [4]
23
Druga zakładka (rys. 3.10) pozwala, na zdefiniowanie parametrów procesu uczenia.
Rys. 3.10. Parametry procesu uczenia.
yródło: [4]
W zakładce parametry procesu testowania ustalana jest częstość automatycznego
testowania. Warunkiem używania tej opcji jest wcześniejsze zdefiniowanie pliku z danymi
testowymi. Jeżeli wprowadzona zostanie wartość  0 , to proces testowania nie będzie
przeprowadzony.
Wybór jednej z przedstawionych wartości jest określeniem, kiedy proces uczenia ma być
uznany przez sieć za zakończony. Deklarując wybór którejkolwiek ze zmiennych, zakańcza
się proces, w którym określaliśmy parametry sieci neuronowej i możemy przystąpić do próby
jej uczenia.
3.3. Uczenie sieci
Aby móc w trybie ciągłym monitorować postępy uczenia sieci neuronowej, autorzy
programu Neuronix dostarczyli wspomniane wcześniej narzędzie. W menu sieć uruchamiamy
opcje uczenie sieci. Dla pewności czy wszystkie wprowadzone przez nas zmiany w ilościach
neuronów w poszczególnych warstwach zostały poprawnie wprowadzone, ponownie
inicjujemy wagi wiązań między neuronowych.
24
W programie isteniej również możliwość wizualnego przedstawienia zbudowanej sieci
neuronowej (rys. 3.11).
Rys. 3.11. Wizualizacja struktury sieci neuronowej.
yródło: [4]
3.4. Używanie sieci
Po etapie zebrania danych, ich przygotowania, stworzenia projektu sieci i jej wyuczenia,
nadchodzi czas na jej użycie. W tym etapie wyjdzie na jaw czy stworzona sieć jest siecią
działającą poprawnie, czy też nie. Aby do tego przystąpić, należy posiadać w tym przypadku
11 notowań wartości akcji omawianej spółki nieużytych w czasie uczenia ani testowania sieci
oraz notowania spółki odległe o 10 dni od ostatniego z poprzedniego ciągu danych. Ta
ostatnia wartość będzie podlegała prognozie.
W tym celu z menu sieci należy wybrać opcję  Uruchom sieć . Do arkusza, który się
pojawi należy wpisać 10 wartości kolejnych notowań akcji. Wartość, którą chcemy
prognozować oznacza się jako typ wy. Klikając prawym przyciskiem myszy i w rozwiniętym
menu wybieramy opcjÄ™  Uruchomienie sieci . WewnÄ…trz programu nastÄ…pi uruchomienie
sieci neuronowej z podanymi wagami oraz przełożenie ich na dane, które tutaj wprowadzono.
W ostatniej komórce pojawić się powinna wartość wyprognozowana przez sieć.
Wnioski
Niestety nie udało się przeprowadzić w całości prognozy za pomocą modułu Neuronix.
Jednak dzięki zasobom literatury można było przedstawić sposób funkcjonowania systemu.
25
Warto zauważyć, że przy prognozowaniu takich wartości jak notowania giełdowe istnieje
możliwość szybkiego i dokładnego zweryfikowania, czy otrzymana po uruchomieniu sieci
wartość rzeczywiście pokrywa się z praktyką.
Bibiografia
[1] FLORCZYK R., ZYCH S.: Zintegrowany pakiet sztucznej inteligencji Sphinx 4.0
[2] MICHALIK K.: Neuronix. Symulator sztucznych sieci neuronowych. Katowice: AITECH
2006
[2] MICHALIK K.: PC-Shell Szkieletowy system wiedzy część 2. Podręcznik inżyniera.
Katowice: AITECH 2006
[3] TANAS P.: Zastosowanie sieci neuronowych w prognozowaniu zmian wartości walorów
na Giełdzie Papierów Wartościowych na przykładzie Warszawskiego Indeksu Giełdowego 20
największych przedsiębiorstw notowanych na GPW. Katowice 2011
26


Wyszukiwarka

Podobne podstrony:
Zarządzanie Wiedzą2 Ogólne zasady oceny zgodności maszyn
Narzędzia zarządzania wiedzą
06 ZarzÄ…dzanie wiedzÄ…idb19
B Mikuła, Zarządzanie Wiedzą Do egzaminu
Zarządzanie wiedzą wykłady, prof UEK Bogusz Mikuła
ZarzÄ…dzanie wiedzÄ…, Time Based Management
Zarzadzanie Wiedza
zarzÄ…dz wiedzÄ… cz2
PC SHELL SZKIELETOWY SYSTEM EKSPERTOWY
ZarzÄ…dzanie wiedzÄ…
Zagadnienia zwiazane z zarzadzaniem wiedza cz 2 oraz modele zarzÄ…dzania wiedzÄ…
INTERAKCJE TEORII I PRAKTYKI ZARZADZANIA WIEDZA
7 Technologie zarzÄ…dzania wiedzÄ…

więcej podobnych podstron