Technologie inteligentne
Systemy informatyczne możemy podzielić na transakcyjne (OLTP1) i analityczne (OLAP2). Generalnie można przyjąć, że systemy OLTP dostarczają danych źródłowych do hurtowni danych, natomiast systemy OLAP pomagają w ich analizie.
W obu tych sytuacjach występują procedury i algorytmy, które albo obejmują sobą proste operacje arytmetyczno-logiczne, wraz z prostymi pytaniami (OLTP), albo wykorzystują modelowanie statystyczne, ekonometryczne, rachunek prawdopodobieństwa, optymalizację, symulację oraz pytania złożone, jak też procedury korzystania z wielowymiarowych baz danych (OLAP). Wszystkie te metody i techniki, traktowane łącznie, należą do klasy algorytmów klasycznych, tj. oferujących dostarczenie użytkownikowi wiedzy standardowej, zarówno prostej, jak i złożonej.
Zastosowanie hurtowni danych, umożliwiających rozpatrywanie zgromadzonych w nich danych i informacji na różnych poziomach agregacji, włączając w to dochodzenie do danych elementarnych (w razie potrzeby) i to w różnych przekrojach, stworzyło nową sytuację w odniesieniu do organizacji danych wejściowych. Z jednej strony, możliwość korzystania z danych agregowanych, prezentowanych w różnych układach, umożliwiło ich wykorzystanie do przeprowadzania analiz ekonomicznych, techniczno-ekonomicznych i podejmowania racjonalnych decyzji. Z drugiej strony - możliwość dotarcia do danych elementarnych, i to w przekrojach danych historycznych, postawiło do dyspozycji użytkownika terabajty danych jednostkowych, umożliwiając badanie ukrytych w nich relacji i współzależności, niemożliwych do odkrycia w oparciu o metody standardowe (proste i złożone), a istotnych dla funkcjonowania SG.
Powstała w związku z tym konieczność wypracowania specjalnych technologii wykrywania takich ukrytych wzorców i współzależności, zachodzących w masowych danych wejściowych, pod warunkiem, że wyniki uzyskiwane będą w czasie akceptowanym przez użytkownika, a więc stosunkowo krótkim, tj. dostosowanym do jego rytmu pracy. Zespół takich technologii został nazwany technologiami wydobywania danych (data mining). Technologie te orientowane są na rozwiązywanie konkretnie zdefiniowanego uprzednio problemu, w oparciu o nietrywialną ekstrakcję poprzednio nieznanej wiedzy z danych przechowywanych w bazach i hurtowniach danych (Knowledge Discovery in Data Bases - KDDB).
Technologie te opierają się - oprócz posługiwania się metodami statystycznymi, matematycznymi i ekonometrycznymi, na technologiach „inteligentnych", tj. wykorzystujących tzw. sztuczną inteligencję (Artificial Intelligence - Al). Takich technologii jest wiele, z tym że największe zastosowanie znalazły tu: algorytmy genetyczne, sieci neuronowe oraz systemy ekspertowe.
Sztuczna inteligencja
Sztuczną inteligencją (SI) określamy tę część informatyki, która bada procesy rozumowania symbolicznego i niealgorytmicznego oraz reprezentację symbolicznie ujętej wiedzy, w celu użycia ich do wnioskowania za pomocą maszyny.
Można wyodrębnić dwa podejścia do SI: funkcjonalne oraz technologiczne. W ujęciu funkcjonalnym zwraca się uwagę na następujące własności SI:
uznanie doświadczenia życiowego i doznań człowieka za źródło poznania rzeczywistości,
w sprzężeniu z posiadaną przez niego wiedzą, jak i za źródło uczenia;
znajdowanie właściwych reakcji w obliczu napotkania sytuacji niespodziewanych, niepowtarzalnych i złożonych;
umożliwienie poprawnego sposobu myślenia, wnioskowania i przewidywania przy rozwiązywaniu złożonych problemów;
umożliwienie rozpatrywania oraz szacowania istotności różnych okoliczności i uwarunkowań, zachodzących w określonej sytuacji;
symulowanie procesów myślenia oraz procesów dostosowywania się do a priori ustalonych celów.
W ujęciu technologicznym zwraca się uwagę na to, aby SI:
stosowana jako technologia komputerowa, uczyniła z komputera narzędzie bardziej użyteczne i zachowujące się bardziej „sprytnie" niż przy stosowaniu algorytmów klasycznych;
używała komputera do przetwarzania symbolicznego.
Przykładem takich symboli mogą być wyrażenia:
ekonomista;
55;
teoria ekonomii;
Szkoła Główna Handlowa.
Przetwarzanie takich symboli występuje w programach komputerowych SI w postaci tzw. struktur symbolicznych. Przykładem takich struktur mogą być następujące konstrukcje:
(wybitny ekonomista);
(to 55);
(wykłada teorię ekonomii);
(w Szkole Głównej Handlowej).
Z takich struktur tworzyć można różne interpretacje rzeczywistości w rodzaju np: „wybitny ekonomista wykłada teorię ekonomii", „wybitny ekonomista ma lat 55", czy też „wybitny ekonomista lat 55 wykłada teorię ekonomii w SHG", polegające na przetwarzaniu symboli, ale w sposób niealgorytmiczny. Oznacza to, że komputer może stosować nie tylko algorytmy obliczeniowe (numeryczne), ale również operować na symbolach, stanowiących sobą słowa i liczby, przy czym ich użycie jest oparte o algorytmy heurystycze (poszukiwawcze), choć sensowne, ale nie dające pewności osiągnięcia sukcesu (np. generowanie pomysłów, koncepcji możliwych rozwiązań problemu itp.).
Technologie komputerowe funkcjonują na trzech zasadniczych poziomach: danych, informacji oraz wiedzy. Najprostsze rozwiązania technologiczne występują na poziomie danych. Ich celem jest wydobywanie danych jawnych (umieszczonych na nośnikach maszynowych). Przykładem może tu być sortowanie zbioru danych (np. liczba mężczyzn zatrudnionych w firmie). W praktyce, najczęściej komputer jest używany na drugim poziomie, którego cechą jest tworzenie z danych określonych informacji w postaci komunikatów (datalogicznych), o różnym stopniu złożoności. Dominują tu metody i techniki OLTP oraz OLAP.
Metody sztucznej inteligencji stosowane są na trzecim poziomie - wiedzy, którą należy rozumieć jako określanie ukrytych związków, relacji i współzależności zachodzących między informacjami prowadzanymi na wejścia informacyjne, na których SI działa, i gdzie stosowanie OLTP i OLAP staje się niewystarczające.
Jeśli przyjąć, że inteligencja jest to właściwość psychiczna człowieka, polegająca na rozumieniu otaczających go sytuacji i znajdowania na nie właściwych, celowych, oraz efektywnych reakcji, powstaje pytanie, czy - a jeśli tak, to czym - różni się inteligencja człowieka od SI? Podstawowa różnica polega na tym, że inteligencja ludzka ma charakter kreatywny. Oznacza to, że człowiek, znajdujący się w sytuacji wymagającej działania, ma do dyspozycji pełny zakres posiadanej wiedzy obiektywnej o danej sytuacji. Dysponuje również pełnym zakresem doświadczeń i przeżyć, na podstawie których kształtuje własne poglądy i programy działania, jego zdaniem najlepiej dostosowane do sytuacji, która wymaga od niego określonego zachowania. Natomiast SI jest w tym zakresie istotnie ograniczona. Ograniczenia te dotyczą informacji wejściowych na temat problemu, który SI ma rozwiązać, pochodzących zarówno z informacji przechowywanych w pamięci komputera, jak i z informacji oraz wiedzy, dostarczonej mu przez ekspertów (odpowiednich specjalistów). Taka wiedza może być nie tylko niekompletna, ale nawet wewnętrznie sprzeczna, gdyż zależna jest od poglądów, aktualnie głoszonych przez ekspertów, przy czym jest ona orientowana wyłącznie na zadany problem, rozwiązywany przez SI, a więc jest ograniczona (wycinkowa) w stosunku do wiedzy człowieka i jego doświadczeń, oferujących w sumie o wiele bogatszą paletę możliwości.
Podobna sytuacja występuje w zakresie stosowania procedur postępowania. W SI procedury takie, aczkolwiek oparte w dużym stopniu o heurystykę, są poklasyfikowane w pewne ich rodzaje i do danego typu rozwiązywanego problemu wybrany zostaje określony ich rodzaj. Można co prawda łączyć ze sobą rodzaje takich procedur (procedury hybrydowe), ale i tak stwarzają one o wiele mniej możliwości od tych, którymi dysponuje ludzki mózg, który w tym zakresie jest nieporównywalnie bardziej elastyczny. Stąd SI jest na tyle efektywna, na ile umożliwia to stopień poprawności doboru wejść informacyjnych, jak i stopień poprawności zastosowania odpowiedniego rodzaju technologii opartej o SI.
Mimo powyższych ograniczeń, stosowanie SI jest rozwiązaniem niosącym w praktyce bardzo duze korzyści dla SG. Korzyści te dotyczą tego, że stosowanie SI:
jest o wiele tańsze niż włączenie ekspertów do rozwiązywania problemów;
jest niezależne od ekspertów, gdyż raz zgromadzona wiedza w pamięci komputera może być przechowywana i wielokrotnie wykorzystywana w zakresie zagadnień i problemów danej klasy;
jest o wiele szybsze niż praca ekspertów;
może uwzględnić usprawnienia w zakresie posiadanej wiedzy SI, podczas gdy wiedza ludzka może być obarczona błędem, przy każdorazowym jej stosowaniu;
zezwala na dokumentowanie wiedzy, w odróżnieniu od wiedzy człowieka, ze względu
m.in. na jego psychologiczne cechy (emocje, zmiany poglądów, postawy, itp.);
może wspierać określone prace w bardziej efektywny sposób niż to czynią ludzie.
Z wymienionych względów technologie SI znalazły zastosowania w wielu dziedzinach, jak np.:
zadania klasyfikacyjne (rozpoznawanie obrazów):
rozumienie mówionego języka naturalnego;
automatyczne dowodzenie twierdzeń;
automatyczne programowanie komputerów;
podejmowanie decyzji;
wyszukiwanie informacji w dużych bazach danych na podstawie skojarzeń kontekstowych;
rozwiązywanie problemów trudnych w warunkach niepełnej informacji itp.
Wydobywanie danych
Wydobywanie danych (data mining) jest to zbiór szczegółowych technologii wykorzystujących w istotnym stopniu SI, służących do znajdowania ukrytych wzorców i relacji występujących w dużych bazach danych (transakcyjnych i hurtowniach danych) oraz do wyciągania na tej podstawie wniosków i konkluzji dla przewidywań zachowania się SG w przyszłości, w sytuacji, gdy techniki OLAP stają się niewystarczające.
Znajdowanie takich ukrytych wzorców i relacji oparte jest o określone typy informacji, których się poszukuje w oparciu o wydobywanie danych. Do głównych typów takich informacji zaliczyć należy:
informacje skojarzeniowe z innym zdarzeniem;
skojarzenia sekwencyjne;
klasyfikacje;
klasteryzacje.
Informacje skojarzeniowe z innym zdarzeniem - zbadanie w jakim stopniu występowanie zjawiska A, powoduje równocześnie wystąpienie zjawiska B. Np. badanie sprzedaży w okresie T w supersamie X, przeprowadzone na poziomie transakcji elementarnych, w oparciu o wystawione jednostkowe paragony stwierdziło, że jeśli nabywany jest wyrób A, to jednocześnie w 50 % transakcji zakupu w tym okresie kupujący nabył wyrób B. Jeśli jednak w innym okresie o tej samej długości T, supersam zorganizował akcję promocyjną sprzedaży wyrobu A (np. przez obniżenie jego ceny detalicznej o 10%), to wtedy udział łącznego zakupu wyrobu A i B wzrósł do 70% wszystkich transakcji sprzedaży w tym okresie. Informacje tego typu mogą mieć duże znaczenie w planowaniu struktury sprzedaży w następnych okresach, jak też przy analizie czynników, aktywizujących wzrost obrotów supersamu.
Skojarzenia sekwencyjne - jest to odmiana informacji skojarzeniowych, dotycząca sytuacji, gdy wystąpienie zjawiska A w momencie f, powoduje wystąpienie zjawiska B w momencie t2 (tt < t2), czyli w sekwencji momentów czasu. Przykładem może tu być sytuacja domu handlowego sprzedającego wyposażenie mieszkań. Np. jeśli wiadomo, że osoba X zmieniła mieszkanie w momencie tt (zjawisko A), to w okresie np. jednego miesiąca od daty tej zamiany (f2), nabyła w domu handlowym dywany, co dotyczy 40% wszystkich zawartych w tym okresie transakcji zakupu (zjawisko B). Natomiast w ciągu dwóch miesięcy (f3) od daty zmiany mieszkania (zjawisko A), 30% przeprowadzonych w tym okresie w tym domu handlowym transakcji sprzedaży, dotyczyło zakupu mebli przez nowych nabywców mieszkania (zjawisko C). Takie badanie może mieć znaczenie np. w sytuacji, gdy dom handlowy jest zlokalizowany blisko lub w ramach nowopowstającego osiedla mieszkaniowego pod warunkiem odpowiednio przygotowanej ankietyzacji klientów.
Klasyfikacja - wykrycie określonych podzbiorów danego zbioru elementów, które charakteryzują się zdefiniowanymi własnościami, ale uprzednio nie branymi pod uwagę i nie występującymi w bazach danych. Np. bank lub towarzystwo ubezpieczeniowe obserwuje zjawisko stopniowej utraty swej klienteli. Badanie klasyfikujące zezwala na ustalenie odpowiedzi, jakie ustalone z góry, interesujące cechy klientów (np. wiek, stopień zamożności, wysokość stanu konta itp.) charakteryzują grupy osób, które przenoszą się do innych banków, lub innych towarzystw ubezpieczeniowych. Analiza takich danych i informacji zezwala na przeprowadzenie dalszych analiz, dotyczących przyczyn takich zjawisk oraz na podjęcie działań zaradczych. Innym przykładem może być badanie ryzyka bankowego przy udzielaniu kredytów, w oparciu o z góry ustalone charakterystyki wniosków kredytowych. Celem jest tu minimalizacja ryzyka.
Klasteryzacja - jest odmianą klasyfikacji. Ma za zadanie wykrycie określonych podzbiorów danego zbioru elementów, o własnościach nie branych dotąd pod uwagę i nie występujących w bazach danych, z tym jednak, że nie definiuje się z góry, wg jakich cech mają być tworzone te podzbiory. Przykładem może być zainteresowanie towarzystwa ubezpieczeniowego nieznanymi wcześniej cechami posiadaczy różnych typów ubezpieczeń, oferowanych klientom. Analiza takich informacji może być istotna przy tworzeniu strategii rozwoju towarzystwa.
Algorytmy genetyczne
Pojęcie ewolucji
Algorytmy genetyczne są to programy komputerowe naśladujące (symulujące) przebieg ewolucji naturalnej żywych organizmów. Ewolucja naturalna żywych organizmów oparta jest o strategię przeżycia populacji początkowej, składającej się z N osobników. Strategia taka zakłada, że populacja początkowa, drogą losowego kojarzenia par wchodzących w jej skład osobników, tworzy następną ich generację (reprodukcja). Osobniki, które wykazują najlepsze przystosowanie do istniejących warunków, mają duże szanse przetrwania, a pozostałe osobniki - o niewystarczającym stopniu dostosowania - albo giną, albo przeżywają w postaci nielicznej. Jeśli taki proces powtarza się wielokrotnie, prowadzi on do takich reprodukcji generacji początkowej, w których w coraz większym stopniu reprezentowane są osobniki o dobrym przystosowaniu, a pozostałe zostają z generacji usunięte. Inaczej mówiąc, u podłoża ewolucji leży jakość doboru naturalnego osobników danej populacji, zależna od doboru naturalnego dziedziczonych cech.
Każdy osobnik dowolnej populacji reprezentowany jest przez dziedziczone geny (jednostki dziedziczenia), określające jego poszczególne cechy. Nosicielem genów jest chromosom, w którym zapisany jest kod genetyczny (ciąg posiadanych genów). Przez naturalny dobór osobników (rodziców), proces reprodukcji (tworzenie nowej generacji) polega na zmianach genów w następnej populacji. Co za tym idzie - na zmianach struktury jej chromosomów, a w konsekwencji i kodu genetycznego. W ten sposób ewolucja doprowadza do stałego „uszlachetniania” kodu genetycznego w chromosomach, przez co tworzą się osobniki o najlepszym przystosowaniu.
Podstawowe zasady konstrukcji algorytmu genetycznego
Aby zastosować algorytm genetyczny, należy przestrzegać kolejności następujących kroków:
zdefiniowanie problemu, który ma być rozwiązany w oparciu o algorytm genetyczny;
wybór populacji początkowej;
zdefiniowanie reguły decyzyjnej;
wstępne przetworzenie problemu na „język” algorytmu genetycznego;
wyrażenie reguły decyzyjnej w „języku” algorytmu genetycznego;
ustalenie funkcji dopasowania;
zastosowanie operatorów genetycznych:
g1 – reprodukcji,
g2 – krzyżowania,
g3 – mutacji;
8) porównania wyników działania algorytmu genetycznego z funkcją dostosowania.
1. Zdefiniowanie problemu. W sferze gospodarczej algorytmy genetyczne znajdują zastosowanie m.in. w odniesieniu do:
identyfikacji reguł do prognozowania rentowności przedsiębiorstwa;
ustalania preferencji konsumenta;
prognozowania na rynku finansowym;
analizie bankructwa i klasyfikacji ryzyka kredytowego;
ustalania optymalnego czasu reklamowego w TV;
zadań transportowych;
optymalizacji sieci dystrybucyjnej;
ustalania harmonogramów (zarządzanie produkcją, projektem).
Przytoczone zastosowania obejmują określone obszary tematyczne. W ramach tych obszarów, problem rozwiązywany przez algorytmy genetyczne musi być ściśle zdefiniowany. Problemem takim może być np. minimalizacja ryzyka bankowego przy przyznawaniu kredytów osobom prawnym.
2. Wybór populacji początkowej polega na określeniu zbioru zdarzeń elementarnych, które będą poddane działaniu algorytmu genetycznego. Przypuśćmy, że w określonym przedziale czasu napłynęła do konkretnego banku duża ilość wniosków od osób prawnych (np. przedsiębiorstw) o udzielenie im kredytu. Populacją początkową będzie tu n-elementowy zbiór takich wniosków, z których każdy stanowi zdarzenie elementarne.
Zdefiniowanie reguły decyzyjnej jest niczym innym jak określeniem wzorca oceny uzyskanych wyników działania algorytmu genetycznego. Np. taką regułą może być określenie przez bank cech (parametrów) wniosków kredytowych, składanych w banku przez osoby prawne, których spełnienie zminimalizowałoby ryzyko przyznania takiego kredytu przez bank, a brak spełnienia dałoby podstawę do nieudzielenia przez niego kredytu. Załóżmy że jednym z takich parametrów jest średnie tempo sprzedaży w ostatnich trzech latach, wyrażone w procentach, i że tempo to powinno być wyższe niż 5,0%.
Wstępne przetworzenie (preprocessing) populacji początkowej na „język” zrozumiały przez algorytm genetyczny związany jest z faktem, że algorytm ten operuje tylko na ciągach cyfr binarnych (0 lub 1). Oznacza to, że każde zdarzenie elementarne musi być wyrażone ciągiem zero-jedynkowym odpowiedniej długości. Każda cyfra zero-jedynkowa jest odwzorowaniem genu, zaś ciąg cyfr zero-jedynkowych, opisujących zdarzenie jednostkowe jest odwzorowaniem chromosomu. Tak więc np. każdy parametr wniosku kredytowego do banku (zdarzenie elementarne) musi być odwzorowany przez odpowiedni ciąg genów (zer i jedynek) (minimalnie przez 0 lub 1). natomiast ciąg taki opisujący cały wniosek jest ilustracją chromosomu.
Załóżmy, że we wniosku kredytowym firma X stwierdziła, że jej przeciętny wzrost sprzedaży w ostatnich trzech latach wyniósł 3%. W takim wypadku, liczba dziesiętna 3 ma swój odpowiednik w kodzie binarnym równy 0011 i taki ciąg zero-jedynkowy jest wprowadzany do oznaczenia tego parametru dla tej firmy. Te same zasady obowiązują w sytuacji, gdy parametr ma charakter opisowy.
Wstępne przetworzenie reguły decyzyjnej na ciągi zero-jedynkowe dokonuje się w analogiczny sposób, jak poprzednio. Załóżmy, że określony fragment reguły decyzyjnej, wyrażający pogląd banku na warunki udzielenia kredytu brzmi: „wnioskodawca powinien wykazać przeciętny wzrost sprzedaży w ostatnich trzech latach większy niż 5,0%”. Zakodowanie tej zasady w konwencji zero-jedynkowych ciągów przebiega następująco, przyjmując, że przedział wzrostu sprzedaży w puli złożonych wniosków zamyka się w przedziale od 0 do 10%. Przedział ten dzielimy np. na 16 przedziałów cząstkowych, o granicznej wartości 0,625, ustalamy te przedziały narastająco i każdemu z nich przyporządkowujemy cztero cyfrową liczbę binarną. Procedurę tę podajemy niżej.
|
Wartość binarna | Wartość w % |
Wartość binarna | Wartość w % |
Wartość binarna | Wartość w % |
Wartość binarna |
---|---|---|---|---|---|---|---|
0,000 | 0000 | 2,500 | 0100 | 5,000 | 1000 | 7,500 | 1100 |
0,625 | 0001 | 3,125 | 0101 | 5,625 | 1001 | 8,125 | 1101 |
1,250 | 0010 | 3,750 | 0110 | 0,250 | 1010 | 8,750 | 1110 |
1,875 | 0011 | 4,375 | 0111 | 6,875 | 1011 | 9,375 | 1111 |
W regule decyzyjnej zawarty jest warunek „większy niż 5,0%” W tym celu dodajemy jedną cyfrę binarną, której wartość 1 oznacza „większy niż”, zaś wartość 0 oznacza „mniejszy, lub równy”. W tym stanie rzeczy fragment reguły decyzyjnej dotyczącej średniego wzrostu sprzedaży ponad 5,0%, jest zakodowany ciągiem binarnym 11000.
6. Ustalenie funkcji dopasowania polega na wskazaniu, które chromosomy w populacji początkowej i w jakim stopniu, spełniają warunki reguły decyzyjnej. Funkcja ta przyznaje każdemu chromosomowi (łańcuchowi cyfr binarnych) określoną wartość rzeczywistą. Im wartość ta jest wyższa, tym dany chromosom jest bardziej dopasowany do reguły decyzyjnej. Stąd zadaniem algorytmu genetycznego jest optymalizacja możliwych rozwiązań. Jeśli w populacji początkowej występuje n chromosomów, zaś fj(j=1,...,n) oznacza wartość funkcji dopasowania j-tego chromosomu, wtedy łączna wartość funkcji dopasowania dla całej populacji początkowej wyniesie $F = \sum_{j = 1}^{n}f_{j}$. Stosunek funkcji dopasowania dla j-tego chromosomu (wniosku kredytowego) do funkcji dostosowania dla całej populacji początkowej, czyli stosunek fj/F wyznacza możliwość przetrwania j-tego chromosomu. Sposób ten oparty jest o losowy dobór „rodziców” metodą kola ruletki. Pole metody jest podzielone na sektory, z których każdy odpowiada prawdopodobieństwu wyboru chromosomu do pary rodzicielskiej, a prawdopodobieństwo to jest równe udziałowi wyboru w funkcji dopasowania dla całej populacji początkowej. Stąd prawdopodobieństwo określone jest wzorem fj/F. Warto w tym miejscu podkreślić, że istnieją inne możliwości tworzenia funkcji dopasowania, niż metoda koła ruletki, jak też to, że zbyt jednostronne zwracanie uwagi na dobór chromosomów o wysokich funkcjach dopasowania prowadzi do istotnego ograniczenia obszaru przeszukiwania kandydatów na pary rodzicielskie, co nie zawsze jest procedurą korzystną.
7. Stosowanie operatorów genetycznych tj. reprodukcji, krzyżowania oraz mutacji przebiega w ramach realizacji algorytmu genetycznego bez bezpośredniego nadzoru użytkownika. Najpierw algorytm selekcjonuje łańcuchy (chromosomy) z najwyższymi wartościami funkcji dopasowania i losowo dobiera ich pary. Inaczej mówiąc reprodukcja polega na losowym wyborze par „rodziców”, pochodzących z populacji początkowej, z pośród tych chromosomów, które wykazują najwyższe wartości funkcji dopasowania. Po wylosowaniu tych par, algorytm genetyczny stosuje operator krzyżowania. Przebiega on w ten sposób, że algorytm genetyczny wybiera w sposób losowy tzw. punkt krzyżowania, po czym następuje właściwe krzyżowanie, czyli wymiana genów, w wyniku czego powstaje potomek następnej generacji (nowy chromosom). Istnieje wiele sposobów (metod) krzyżowania. Zaprezentujemy tu najprostsze krzyżowanie jednopunktowe. Niech będą dane dwa chromosomy, składające się np. z 9 genów (długość chromosomu = 9) i niech losowo algorytm wybrał punkt krzyżowania po trzecim genie. Sytuację tą przedstawić można np. w postaci:
101|100101
001|110010
gdzie pionowa kreska oznacza punkt krzyżowania. W wyniku krzyżowania symbole po punkcie krzyżowania zostają wymienione między chromosomami, wskutek czego powstaje nowa para chromosomów następnej generacji o postaci:
101|110010
001|100101
Istnieje również możliwość ustalenia większej ilości punktów krzyżowania. I tak np. dla dwóch punktów krzyżowania, wybranych losowo, np. po trzecim i piątym chromosomie, mamy następującą sytuację:
• para rodzicielska, po wyborze dwóch punktów krzyżowania ma postać:
101|10|0101
001|11|0010
• po krzyżowaniu, następna generacja potomków ma postać:
001|10|0010
101|11|0101
Wymianie podległy ciągi trzech pierwszych i czterech ostatnich genów, a dwa środkowe pozostały bez zmian.
Operator mutacji polega na sporadycznej, tzn. zachodzącej z małym stopniem prawdopodobieństwa, wymianie przypadkowej jednego genu. W praktyce oznacza to zamianę w parze rodzicielskiej 0 na 1 lub 1 na 0. Celem takiej operacji jest „ulepszenie” potomstwa, ale losowość tej procedury sprawia, że można osiągnąć skutek odwrotny od zamierzonego. Stąd operator ten stosowany jest sporadycznie.
8. Porównanie wyników osiągniętych przez działanie algorytmu genetycznego z regułą decyzyjną jest oparte na optymalizacyjnym charakterze tego algorytmu. Inaczej mówiąc algorytm podaje rozwiązanie najbardziej zbliżone do wzorca (reguły decyzyjnej) biorąc pod uwagę chromosomy występujące w populacji początkowej Zezwala to na ocenę przykładowych wniosków kredytowych przez bank. poprzez wybór tych, które najbardziej spełniają kryteria udzielenia takiego kredytu.
Przykład zastosowania algorytmu genetycznego
Aby przybliżyć zrozumienie zasad działania algorytmu genetycznego w praktyce, posłużymy się przykładem gry VECTOR.
Opis
Gra jest prowadzona przez dwie osoby, z których jedna zapisała w sposób ukryty przed drugim graczem ciąg sześciu cyfr. Każda z tych cyfr może mieć wartość albo 0 albo 1. W naszym przykładzie jest to ukryta liczba 001010. Drugi gracz musi próbować domyśleć się, jaka to jest liczba, i to tak szybko, jak to jest możliwe. Wszystko to, co może zrobić drugi gracz, polega na zareprezentowaniu pierwszemu graczowi określonej liczby, ten zaś może oświadczyć temu drugiemu, jak wiele cyfr zero-jedynkowych jest zgodnych w podanej liczbie z ukrytym wzorcem, ale bez podawania na którym miejscu w ciągu cyfr zgodność ta zachodzi. Np. gdyby taki domysł był propozycją 110101, to ciąg ten nie miałby żadnej prawidłowej cyfry (ilość trafień - 0). Zgodność innego ciągu 111101 wykazuje tylko jedną poprawną cyfrę (trzecią od lewej strony). Stąd wartość domysłu (albo wartość rozwiązania) = 1.
Próba losowa i błąd
Istnieje 64 możliwości zbudowania sześciocyfrowych liczb zero-jedynkowych. Jeśli dobór tych liczb następuje w sposób losowy, potrzeba będzie przeciętnie 32 prób, aby uzyskać prawidłowy ciąg sześciu cyfr. Czy można tego dokonać szybciej? Z pewnością tak, o ile gracz drugi skorzysta z sprzężenia zwrotnego, umożliwionego przez pierwszego gracza. Jest to dokładnie to, co wykonuje algorytm genetyczny.
Rozwiązanie w oparciu o algorytm genetyczny
Krok 1
Drugi gracz (odgadujący), proponuje pierwszemu cztery ciągi cyfr wybrane losowo (ilość czterech ciągów została wybrana dowolnie dla tego przykładu: w drodze eksperymentu można stwierdzić, że pięć lub sześć ciągów mogłoby być lepsze). Drugi gracz wybiera te cztery ciągi:
(A) 110100 - prawidłowa: jedna cyfra;
(B) 111101 - prawidłowa: jedna cyfra;
(C) 011011 - prawidłowe: cztery cyfry;
(D) 101100 - prawidłowe: trzy cyfry.
Biorąc pod uwagę, że żaden z czterech ciągów nie jest w pełni prawidłowy, proces jest kontynuowany.
Krok 2
Opuszczamy (A) i (B), jako ciągi o niskim stopniu domysłu. Nazwijmy (C) oraz (D) rodzicami. „Kojarzymy” geny rodziców przez podział każdego ciągu, jak niżej:
(C) 01 | 1011;
(D) 10 | 1100.
Teraz łączymy pierwsze dwie cyfry (C) z ostatnimi czterema cyframi (D) (jest to krzyżowanie). W wyniku otrzymujemy (E), czyli pierwsze potomstwo:
• (E) 011100 - prawidłowe: trzy cyfry.
Krok 3
Podobnie łączymy pierwsze dwie cyfry (D). z ostatnimi czterema (C). W rezultacie otrzymujemy (F). drugie potomstwo:
• (F) 101011 - prawidłowe: cztery cyfry.
Wynik wskazuje, że potomstwo nie uzyskało więcej, niż rodzice.
Krok 4
Przepisujemy ciągi początkowe (C), (D).
Krok 5
Kojarzymy i skrzyżujemy nowych rodziców, ale używamy innych podziałów. Otrzymujemy dwóch nowych potomków (G) i (H):
(C) 0110 | 11;
(D) 1011 | 00;
(G) 0110 | 00 - prawidłowe: cztery cyfry;
(H) 1011 | 11 - prawidłowe: trzy cyfry.
Krok 6
Powtarzamy Krok 2; wybieramy najlepsze „pary” z wszystkich poprzednich rozwiązań, celem reprodukcji Występuje tu wiele opcji (takich jak G i C). Wybieramy (G) i (F). Następnie kojarzymy oraz krzyżujemy. Otrzymujemy w wyniku:
(F) 1 | 01011;
(G) 0 | 11000;
(I) 111000 - prawidłowe trzy cyfry;
(J) 001011 - prawidłowe: pięć cyfr.
Krok 7
Teraz możemy wygenerować więcej potomstwa (z tych samych rodziców):
(F) 101 | 011;
(G)011 | 000;
(K) 101000-prawidłowe: cztery cyfry;
(L) 01 1011 - prawidłowe: cztery cyfry.
Krok 8
Powtarzamy proces z (J) oraz (K), jako rodzicami i krzyżujemy:
(J) 00101 | 1;
(K) 10100 | 0;
(M) 001010- prawidłowe: sześć cyfr (!).
I o to chodzi. Gracz drugi osiągnął wynik w 13 podejściach. Nie jest to wynik zły, wobec przeciętnej 32 losowych wyborów z ogólnej ilości 64 różnych możliwości.
Na tle tej gry warto podkreślić, że funkcja dopasowania dla całej populacji początkowej wynosi 1 + 1 +4+3 = 9, zaś w ramach tej populacji (cztery pierwsze losowania) funkcja dopasowania wynosi kolejno: 1 /9, 1 /9, 4/9 oraz 3/9. dla wylosowanych ciągów liczb.
Sztuczne sieci neuronowe
Sztuczne sieci neuronowe (SSN) są to programy komputerowe, stanowiące część technologii informatycznych, opartych o sztuczną inteligencję, orientowane na proces uczenia się przy pomocy komputera (maszynowe uczenie się), wykorzystywany do rozwiązywania trudnych problemów decyzyjnych, tzn. tak skomplikowanych, że stosowanie złożonej wiedzy standardowej staje się niewystarczające.
Proces uczenia się jest bardzo złożony. Z jednej strony występuje wiele modeli uczenia się (np. przez poszukiwanie analogii, przez obserwację czy przez analizę określonych przykładowych sytuacji itp.), a z drugiej powstaje pytanie, w jaki sposób wybrać najwłaściwszy model uczenia do rozwiązania konkretnego problemu. Jednoznacznych odpowiedzi na te problemy, jak dotąd nie ma.
Proces uczenia się u człowieka przebiega w mózgu w drodze przekazywania bodźców elektrochemicznych między jego podstawowymi komponentami, jakimi są neurony, czyli komórki nerwowe. Powiązane między sobą tworzą sieć neuronów, spełniającą wiele różnych funkcji. Za realizację danej funkcji odpowiada zespół neuronów i zespoły te również są wzajemnie połączone.
SSN symuluje działanie biologicznych sieci neuronowych, oparte o programy komputerowe. Na powstanie takich programów wpływ wywarły zarówno wiedza o budowie ludzkiego mózgu, jak również matematyka, logika, statystyka, informatyka oraz psychologia uczenia się. Takie interdyscyplinarne podejście spowodowało wykształcenie się wielu metod, podejść i technik stosowanych przy budowie SSN, przy czym mogą one występować samoistnie przy rozwiązywaniu danego problemu, jak również występować w sprzężeniu z innymi technologiami opartymi na sztucznej inteligencji, np. wraz z algorytmami genetycznymi czy systemami ekspertowymi (hybrydowe SSN).
Biologiczny i informatyczny model neuronu
Mózg ludzki zawiera około 1011 neuronów (komórek nerwowych). Każda z nich ma około 1000 wypustek (dendrytów), odbierających impulsy elektrochemiczne z innych neuronów. Łącznie, neurony i dendryty tworzą około 1014 złącz (synaps), czyli miejsc, gdzie następuje przekazanie pobudzenia (jego wzmocnienia, osłabienia, lub pozostawienie pobudzenia bez zmiany) do następnego neuronu lub neuronów. Inaczej mówiąc, każdy neuron działa jak przełącznik, pobudzając inne neurony i będąc sam przez nie pobudzony.
Każdy neuron posiada swój tzw. próg bodźca. Jeśli dochodzący do neuronu bodziec ma wartość niższą lub równą temu progowi, neuron nie zostaje pobudzony. Jeśli zaś bodziec przekracza ów próg, następuje aktywacja neuronu.
Rys. Model neuronu biologicznego
Legenda:
- jądro
- ciało komórki
- dendryty
- akson
- synapsa
Podkreślić należy, że w organizmach żywych występują setki różnych rodzajów neuronów. Ponadto, neurony są podzielone na powiązane ze sobą grupy, w zależności od spełnianych przez nie funkcji.
SSN są nieporównywalnie uboższe tak pod względem ilości neuronów, jak i sposobów działania w porównaniu z sieciami neuronów biologicznych, tym nie mniej są skutecznym narzędziem przy rozwiązywaniu problemów, wymagających zastosowania wiedzy niestandardowej.
SSN symulują zatem proces uczenia się, zachodzący w mózgu. Sieci takie stosowane są w odniesieniu do konkretnego problemu, który należy rozwiązać. Stąd zadany problem jest opisany przez ciąg jego cech, przy czym obowiązuje zasada, że wszystkie cechy muszą być wyrażone liczbowo. Stąd, jeśli opis problemu zawiera cechy jakościowe, wymagane jest przetworzenie wstępne, transformujące wejścia jakościowe w ilościowe. Ogólny opis sztucznego neuronu jest następujący: podobnie jak w systemach biologicznych, sztuczny neuron jest powiązany z jego danymi wejściowymi przez wejścia informacyjne (dendryty).
Wyjścia z neuronu mogą być dwojakiego rodzaju: albo są to wyjścia, podające wynik ostateczny działania sieci, albo też mogą stanowić wejścia informacyjne do innego neuronu. Wyjścia z neuronu mogą być osłabione lub wzmocnione (synapsa), co zależy od sposobu działania neuronu.
Rys. Model sztucznego neuronu
Podany opis sztucznego neuronu jest bardzo ogólny.
Sposób działania sztucznego neuronu
Każdy sztuczny neuron odgrywa rolę samodzielnego centrum przetwarzania skierowanych do niego danych wejściowych. Proces takiego przetwarzania uwzględnia:
pobranie danych wejściowych;
ustalanie wag dla każdego wejścia;
zastosowania funkcji sumującej;
zastosowanie funkcji transformacji;
uwzględnienie stopnia szybkości uczenia się.
1. Pobieranie danych wejściowych. Załóżmy, że do neuronu skierowanych jest n wejść xi (i = 1,..., n). Wejścia te mają charakter treningowy, tzn. że na nich SSN będzie przeprowadzała stosowne obliczenia w procesie uczenia się. Generalnie można stwierdzić, ze wejścia te stanowią liczbowe charakterystyki cech rozwiązywanego przez SSN problemu.
2. Poszczególne wejścia do neuronu, ilustrujące cechy ilościowe rozwiązywanego problemu mają względem niego różny stopień istotności (ważności). Z tego powodu, każde indywidualne wejście do neuronu ma nadaną mu wagę. Jeśli zatem do neuronu skierowano n wejść xi (i = 1,..., n), to każde wejście otrzymuje przyporządkowaną mu wagę wi (i = 1,..., n).
3. Stosowanie funkcji sumującej. Jeśli wszystkie wejścia do neuronu otrzymały odpowiednie wagi, neuron stosuje funkcję sumującą: $F = \sum_{i = 1}^{n}{x_{i} \bullet w_{i}}$ czyli sumę ważoną jego wejść. Zasada ta jest wspólna dla wszystkich neuronów w SSN.
4. Zastosowanie funkcji transformacji. Neuron może być pobudzony do działania w różnym stopniu, albo może nie być pobudzony. Powstaje pytanie w jakich sytuacjach występują takie zachowania sztucznego neuronu? Pobudzenie neuronu określone jest funkcją, w oparciu o którą on działa. Funkcja ta jest wyrazem stopnia wewnętrznej aktywacji neuronu. Stosunek zachodzący między stopniem aktywacji neuronu, a wynikiem jego działania może mieć zarówno
charakter liniowy, jak i nieliniowy. W najprostszym przypadku funkcja, w oparciu o którą działa sztuczny neuron, przyjmuje postać tzw. wartości progowej (threshold value). Wartość ta ustalana jest zazwyczaj jako liczba z przedziału (0-1). Np. ustalenie wartości progowej na poziomie 0,5 oznacza, że jeśli wartość funkcji sumującej będzie mniejsza, lub równa 0,5, wtedy wyjściem z neuronu jest 0, w przeciwnym wypadku wyjście przyjmuje wartość 1. Stosowanie
takiej funkcji jest jednak zbyt proste, biorąc pod uwagę, że nie istnieje tu możliwość obliczania wartości pośrednich, zaś działanie neuronu jest bardziej złożone niż w omawianej sytuacji. Stąd w praktyce przyjmuje się różne postacie funkcji transformacji sztucznego neuronu. Najczęściej stosuje się tu dwie funkcje: funkcję logistyczną (od jej kształtu zwaną też funkcją sigmoidalną) oraz funkcję tangensa hiperbolicznego.
Funkcja logistyczna ma postać:
$\gamma_{\text{WY}} = \frac{1}{1 + e^{- Y}}$,
gdzie γWY jest wartością wynikową obliczoną przez neuron, zaś Y jest wartością funkcji sumującej. Konkretny kształt funkcji logistycznej zależy od stopnia jej stromości. Stromość funkcji jest wyznaczona przez odpowiedni parametr β, który w większości zastosowań przyjmuje wartość 1, stąd pominięty jest we wzorze funkcji. Funkcja logistyczna przyjmuje wartości z przedziału (0,1), a jej przebieg zachodzi w granicach (-∞, +∞).
Rys. Przebieg funkcji logistycznej
Funkcja tangensa hiperbolicznego dana jest wzorem: $\gamma_{\text{WY}} = \frac{1 - e^{- Y}}{1 + e^{- Y}}$ (oznaczenia analogiczne jak dla funkcji logistycznej). Graficzny kształt tej funkcji jest podobny do funkcji logistycznej, z tym, że przebiega ona wartości od — 1 do +1, a jej zakres jest również w granicach (-∞, +∞).
Rysunek 8.4. Przebieg funkcji tangensa hiperbolicznego
Załóżmy przykładowo, że do neuronu skierowane są trzy wejścia x1, x2, x3 o odpowiednich wartościach: 1, 3, 5. Wagi tych wejść są następujące: w1 = 0,1, w2 = 0,2 i w3 = 0,3. Stąd funkcja sumująca Y = 2,2, natomiast γWY = 0,9 (dla funkcji logistycznej).
5. Uwzględnienie stopnia szybkości uczenia się. Proces uczenia się SSN jest procesem dochodzenia do optymalnego rozwiązania zadanego problemu. Proces ten może przebiegać szybciej lub wolniej i powinien być określony, zanim SSN zacznie działać. Idea problemu szybkości uczenia się wychodzi z założenia, że dochodzenie do wartości optymalnej w rozwiązaniu problemu polega na minimalizacji błędu obliczeń, w stosunku do rozwiązania najlepszego w danych warunkach. Uczenie się jest pewną funkcją, na ogół ciągłą, podczas gdy w praktyce uczenie się odbywa skokowo. Ten skok (zwany gradientem) może być różnej wielkości. Ustalenie zbyt dużego gradientu skraca wprawdzie czas uczenia się, ale grozi powstaniem sytuacji, że obliczenia SSN ominą punkt optymalny na funkcji uczenia się i mogą oscylować wokół niego. Z drugiej strony, ustalenie małej wartości gradientu, oddala niebezpieczeństwo nieosiągnięcia optimum, ale wydłuża czas uczenia się.
Najczęściej ustala się parametr szybkości uczenia się w tej samej wartości dla wszystkich neuronów SSN w granicach 0,5-0,9, ale nie jest to regułą. Parametr ten powinien być ustalany eksperymentalnie.
Schemat sztucznej sieci neuronowej
SSN składa się zawsze z trzech warstw:
warstwy wejściowej;
warstwy wyjściowej;
warstwy ukrytej.
1. Warstwa wejściowa (input layer) do SSN zawiera liczbowe dane, typowe dla wykonywanego przez SSN zadania. Jest to warstwa „bierna", tzn. nie uczestnicząca bezpośrednio w pracy SSN, a jedynie dostarczająca do niej informacyjnego „surowca". Wejścia informacyjne muszą być wyrażone liczbowo, co wymaga wstępnego przetworzenia danych jakościowych. W zależności od rodzaju takich jakościowych wejść, np. słów, czy obrazów, nastąpić musi ich digitalizacja, czyli ich transformacja zerojedynkowa.
I tak np. treść słowna danej wejściowej może być przetworzona na kod ASCI (np. litera a jest odwzorowana przez ciąg 01000001).
2. Warstwa wyjściowa (output layer) z SSN stanowi wynik rozwiązania problemu. Wynik ten może być ustalony z góry (wzorzec), może też być ustalony przez SSN. W pierwszym wypadku, obliczone wyjście przez SSN uznane jest za ostateczne, gdy albo pokrywa się z wzorcem, albo też – w sytuacji przeciwnej - SSN zminimalizowała zaistniałą różnicę. W wypadku drugim, nie występuje wzorzec i wtedy określone rozwiązanie, dokonane przez SSN. traktuje się jako ostateczne. Istnienie wzorca lub jego brak jest związane z rodzajem uczenia się SSN, o czym jest mowa nieco dalej.
Rodzaj wyjścia z SSN może być różny, zależny od problemu. Na przykład może to być wyjście zerojedynkowe (Tak-Nie). Może również być oparte na jego klasach (np. duże ryzyko, średnie ryzyko, małe ryzyko udzielenia przez bank kredytu: stopnie ryzyka mogą być wyrażone np. w przedziałach procentowych).
3. Warstwa ukryta (hidden layer) stanowi właściwą SSN. Warstwa ukryta składa się z jednej lub więcej warstw, każda zaś warstwa zawiera określoną ilość sztucznych neuronów. Ilość warstw w praktyce ograniczona jest do kilku (3-5), każda zaś warstwa może zawierać od 10 do 1000 neuronów.
Nie ma ścisłej odpowiedzi na pytanie z ilu neuronów powinna się składać SSN w odniesieniu do konkretnego problemu? W praktyce stosuje się odpowiednie procedury do szacowania tej ilości, ale w takich sytuacjach dojść może albo do niedoszacowania, albo do przeszacowania ilości neuronów. Inne metody pozwalają budować sieć przyrostowo, lub ograniczać już istniejącą sieć w zależności od przebiegu procesu uczenia się. Można też zastosować do tego celu metody hybrydowe przez połączenie SSN z algorytmami genetycznymi.
Warstwa ukryta może wykazywać różną architekturę. Do najczęściej stosowanych, należą:
sieci jednokierunkowe, w których sygnały przesyłane są zawsze i tylko z warstwy k do warstwy k + 1 (w przód). Są to tzw. sieci perceptronowe. Sieci takie najczęściej są tzw. sieciami w pełni połączonymi, co oznacza, że każdy neuron, tak w warstwie wejściowej, jak i ukrytej jest połączony z wszystkimi neuronami następnej, kolejnej warstwy. W przeciwnym wypadku, neuron niepołączony ma wagę równą zeru;
sieci rekurencyjne, w których sygnał wychodzący z neuronu, jest przekazywany bezpośrednio, lub pośrednio (poprzez inne neurony), na jego wejście. Stosowana jest tu metoda wstecznej propagacji (back propagation), której zasada pokazana jest na poniższym rys. (Dajemy wlasny numer).
Zasada ta polega na porównaniu obliczonego wyjścia z neuronu j-go, z wyjściem żądanym (w warstwie wyjściowej) oraz na obliczeniu różnicy, wynikłej z takiego porównania, która wyznacza skalę błędu (Δ). Wartość tą mnoży się przez pochodną funkcji aktywacji neuronu i o tą nową wartość koryguje się pierwotne wagi nadawane każdemu wejściu do neuronu j, w poprzedzającej go warstwie. Jeśli użyjemy funkcji logistycznej, jako funkcji aktywacji neuronu, to oznaczając ją przez g jej pierwsza pochodna dg/dx = g(1-g). Stąd korekta wag (φ) dana jest wzorem:
φ = Δ dg/dx = Δ g(1 - g).
Procedura ta powtarza się dopóki wyjście z neuronu nie osiągnie wartości żądanej, bądź wartości minimalizującej błąd;
• sieci komórkowe, oparte o zasadę połączeń, zachodzących między neuronami występującymi w sąsiedztwie (Zieliński. 2000).
8.5.5. Algorytm uczenia się neuronu
Algorytm uczenia się neuronu stanowi o sposobie, w jaki neuron przetwarza dochodzące do niego dane. Takich algorytmów jest używanych w praktyce ponad 100. Dają się one ująć w dwie podstawowe grupy:
algorytm uczenia się z nadzorem (supevrised learning), zwany też uczeniem się z nauczycielem, W tej sytuacji znany jest wzorzec wyjściowy z SSN. Uzyskane rozwiązanie przez SSN jest porównywane ze wzorcem, i w takiej sytuacji, stosuje się często metodę propagacji wstecznej;
algorytm uczenia się bez nadzoru (unsupervised learning) zwany też uczeniem się bez nauczyciela, polega na tym. że jedynie znana jest warstwa wejściowa do SSN, natomiast sieć neuronowa jest siecią samoorganizującą się. Oznacza to, że każdy neuron generuje samodzielnie wyjście w stosunku do otrzymanych wejść, włączając w to ich korygowanie tak, aby osiągnąć prawidłowy wynik. Inaczej mówiąc, brak jest wzorca w warstwie wyjściowej.
Przykład działania SSN
Celem ilustracji sposobu działania SSN. przedstawimy prosty przykład, zaczerpnięty z pracy E. Turbana (Turban. 1998. s. 666-669).
„Rozważmy pojedynczy neuron, który uczy się wyłącznie operacji „lub", klasycznej operacji alternatywy w logice symbolicznej. Mamy tu dwa elementy wejściowe: X1 oraz X2. Jeśli oba te elementy, lub jeden z nich jest prawdziwy, wtedy wynik (alternatywa przyp. WF) jest też prawdziwa. Można to przedstawić jak niżej: (0 - fałsz, 1 - prawda. WF)
|
---|
Stan |
1 |
2 |
3 |
4 |
Neuron musi nauczyć się rozpoznawać wzorce wejściowe i sklasyfikować je w celu otrzymania odpowiedniego wyjścia. Procedura polega na przedstawieniu neuronowi sekwencji czterech wzorców wejściowych tak, że wagi będą dla nich przystosowane przez komputer po każdej iteracji (używając sprzężenia zwrotnego dla powstałego błędu, obliczonego przez porównanie estymowanego wyniku z wynikiem żądanym). Ten krok jest powtarzany dotąd, aż wagi zbiegną się do jednolitego zbioru wartości, który pozwoli neuronowi poprawnie sklasyfikować każdą z czterech wejść.
Wyniki ilustruje poniższa tabela. W tym prostym przykładzie użyta jest funkcja skokowa do oszacowania sumowania wartości wejściowych. Po obliczeniu wyjść, miara błędu (Delta) między wyjściem, a pożądaną wartością użyta jest w celu aktualizacji wag kolejno wzmacniających prawidłowy wynik. W każdym kroku przetwarzania przez neuron j zakładamy, że Δ = Zj — Yj, gdzie Z oraz Y oznaczają odpowiednio pożądaną i aktualną wartość wyjścia. Stąd. uaktualnione wagi wyjścia obliczone są wg reguły:
Wi* (końcowe) = Wi-(początkowe) + a Δ Xi (i = 1,2)
gdzie a jest parametrem szybkości uczenia się neuronu. (Zakłada się, że a = 0.2, natomiast wartość progowa neuronu wynosi 0.5 WF)
Jak wynika z powyższej tabeli, każde obliczenie dotyczy jednego elementu z pary X1 i X2 oraz odpowiadających im wartości operacji alternatywy, zgodnie z początkowymi wartościami wag neuronowych W1 i W2. W tym przykładzie wartość wag początkowych określona jest losowo, zaś stopa uczenia (α) ustalona jest na niskim poziomie. Parametr Δ użyty jest do obliczenia końcowych wag, które stają się wagami początkowymi w następnej iteracji (rzędzie).
Początkowe wartości wag dla każdego wejścia podlegają transformacji przy zastosowaniu wyżej podanej reguły, używanej w kolejnym wejściu (rzędzie). Wartość progowa powoduje, że wartość Y wynosi 1 w następnym rzędzie, jeśli suma ważona wejść jest większa niż 0,5; w przeciwnym wypadku wyjście równa się zeru. W przykładzie, w pierwszym kroku, dwa z czterech wyjść są nieprawidłowe, gdyż Δ = 1 i nie znaleziono prawidłowych wag. W następnych krokach algorytm uczenia usprawnia wyniki, dotąd, aż w końcu utworzy wagi, dające prawidłowy rezultat (0,7 dla obu wag)".
Otrzymane wyniki należy interpretować w następujący sposób: jeśli w konkretnych zastosowaniach, alternatywa określona jest z prawdopodobieństwem większym niż 0,7, wtedy jest ona prawdziwa. Jeśli zaś prawdopodobieństwo to jest mniejsze lub równe 0,7, alternatywa jest fałszywa.
Zastosowania SSN
Zastosowania SSN w dziedzinie ekonomii oraz zarządzania obejmują coraz to nowe dziedziny i problemy. Bezpośrednio SSN stosowane są m.in. do wykrywania stałych wzorców zachowań klientów, prognozowania zapotrzebowania na energię elektryczną, prognozowania cen na rynkach kapitałowych, określania profilu klienta, transakcji na rynkach kapitałowych (np. minimalizacji ryzyka bankowego przy udzielaniu kredytów) czy do rozpoznawania typowych wzorców zachowania rynków.
Systemy ekspertowe
Systemy ekspertowe (SE) (Expert Systems), są to technologie oparte o sztuczną inteligencję, operujące na wyspecjalizowanej wiedzy w zakresie specyficznego obszaru ludzkiej działalności. Wiedza ta zorganizowana jest w ten sposób, że umożliwia SE wejść w interakcyjny dialog z użytkownikiem, w wyniku czego, system może oferować rozsądne rady lub proponować rozsądne decyzje oraz objaśniać sposób rozumowania, leżący u podstaw tych rad i propozycji (Flakiewicz, 1990). Tak więc podstawowym zadaniem SE jest symulowanie procesu wnioskowania, zachodzącego w mózgu człowieka.
Wiedza gromadzona w SE pochodzi z różnego rodzaju ekspertyz. Pojęcie ekspertyzy jest bardzo szerokie. W najogólniejszym rozumieniu jest to badanie specjalistyczne przeprowadzone przez ekspertów (specjalistów w danej dziedzinie), w celu wydania opinii lub orzeczenia w danej sprawie. Ekspertyza może dotyczyć zarówno teorii stosowanych w sferze danego problemu, stojącego do rozwiązania, jak i reguł oraz procedur możliwych do zastosowania w danej sytuacji, heurystyk, odpowiadających na pytanie: co można zrobić w danym, konkretnym wypadku, strategii rozwiązania problemu, czy też faktów istotnych w danej sytuacji. (Turban, 1998). Wyniki takich ekspertyz, dokonanych przez odpowiednio dobranych specjalistów, powinny rozpoznać i zdefiniować problem rozwiązywany przez SE, określić sposób jego rozwiązania, zinterpretować takie rozwiązanie, jak też określić jego istotność dla użytkownika SE:
Z powyższych powodów, dla każdego problemu, rozwiązywanego przez SE należy wyodrębnić:
sposób pobierania wiedzy (od ekspertów i z innych źródeł);
metody reprezentacji wiedzy SE (w postaci bazy wiedzy, złożonej z bazy faktów i reguł);
proces wnioskowania, stosowany przez SE;
przesłanie uzyskanej, wynikowej wiedzy do użytkownika;
Stąd w każdym SE możemy wyróżnić:
moduł pozyskiwania wiedzy;
moduł bazy wiedzy (bazy faktów i reguł);
moduł wnioskowania;
interfejs użytkownika.
Ogólną strukturę SE ilustruje Rys. 8.6. Poszczególne części SE omówione będą kolejno.
Rys. Ogólna struktura systemu ekspertowego
On-line Transaction Processing - charakteryzuje się dużą ilością prostych transakcji zapisu i odczytu. Główny nacisk kładziony jest na zachowanie integralności danych w środowisku wielodostępowym oraz na efektywność mierzoną liczbą transakcji w danej jednostce czasu.↩
On-line Analytical Processing - charakteryzuje się stosunkowo nielicznymi, ale złożonymi transakcjami odczytu. Miarą efektywności jest czas odpowiedzi. Powszechnie wykorzystuje sie go w technikach związanych z Data Mining'iem.↩