Sywester Jędrysiak - Marek Piasecki

Transkrypt

Sywester Jędrysiak - Marek Piasecki
Wydział Elektroniki
kierunek: Informatyka/INS
Informatyka systemów autonomicznych (1)
2006/2007
Systemy klasyfikujące
w modelowaniu sztucznego życia
Opracowanie:
Prowadzący:
Jędrysiak Sylwester – 133266
dr inż. Marek Piasecki
Wrocław 2007
SPIS TREŚCI
Informatyka systemów autonomicznych
Spis treści
1 System klasyfikujący
3
1.1
Definicja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Składniki systemu klasyfikującego . . . . . . . . . . . . . . . . . . . . . . .
3
2 Sztuczne życie
4
3 Historia
5
3.1
Gra w życie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3.2
Animki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
4 Kiedy gonić listonosza
7
Literatura
9
Politechnika Wrocławska
2
1 System klasyfikujący
1
Informatyka systemów autonomicznych
System klasyfikujący
1.1
Definicja
System klasyfikujący jest to system, który uczy się prostych syntaktycznie reguł (zwanych klasyfikatorami ), w celu koordynacji swoich działań w dowolnym środowisku. Jest to
specjalizowana aplikacja na bazie algorytmów genetycznych czasami nazywana agentem
adaptacyjnym.
Jedynym sposobem na stworzenie działającego systemu klasyfikującego jest sklasyfikowanie środowiska, w którym ma działać i efektywne wykorzystanie reguł. Jest to bardzo
ludzki sposób obserwacji świata. Ludzie zawszę obserwują środowisko, dzielą je na kategorie, podkategorie. Gdy napotykamy jakąś nieznaną sytuację, próbujemy użyć metody,
która wydaje się być najodpowiedniejsza w danym momencie.
Systemy klasyfikujące mają zdolność do kategoryzowania swojego środowiska i dynamicznego tworzenia reguł, dzięki czemu mogą przystosowywać się do zmiennych warunków.
1.2
Składniki systemu klasyfikującego
Podstawowymi elementami systemu klasyfikującego są:
1. środowisko wysyłające komunikaty,
2. dane wejściowe,
3. reguły,
4. algorytm genetyczny.
Układ przetwarzania komunikatów w systemie klasyfikującym stanowi szczególny przypadek systemu produkcji. Choć rozmaite warianty systemów produkcji różnią się szczegółami składniowymi, ogólnie biorąc produkcje mają w nich następującą postać:
jeśli < warunek > to < akcja >
Na pierwszy rzut oka ograniczenie się do tak prostego mechanizmu reprezentacji wiedzy
wydaje się zbyt restrykcyjne. Jednakże dowiedziono, że systemy produkcji są systemami
uniwersalnymi obliczeniowo. Co więcej są one dogodne w aspekcie algorytmicznym.
Systemy klasyfikujące dopuszczają jedynie reguły mające reprezentacje o stałej długości. Takie ograniczenie ma dwie zalety. Po pierwsze wszystkie ciągi symboli określonego
Politechnika Wrocławska
3
2 Sztuczne życie
Informatyka systemów autonomicznych
alfabetu są poprawnymi syntaktycznie regułami. Po drugie, reprezentacja w postaci słów
o ustalonej długości umożliwia zastosowanie operacji typu genetycznego. Dzięki temu powstaje możliwość wykorzystania algorytmu genetycznego do poszukiwań w przestrzeni
dopuszczalnych reguł.
W tradycyjnych systemach doradczych wartość określonej reguły w stosunku do innych
reguł zostaje ustalona przez programistę na podstawie ocen eksperta lub grupy ekspertów, których dany system ma emulować. W systemie uczącym się reguł nie ma miejsca na
taki luksus. Względna wartość różnych reguł jest właśnie jedną z podstawowych rzeczy,
których trzeba się wyuczyć. W celu wspomagania tego typu uczenia się systemy klasyfikujące zmuszają klasyfikatory do koegzystencji w ramach „rynku usług informacyjnych”.
Klasyfikatory konkurują ze sobą o prawo do reakcji na komunikaty, przyznawane tym
spośród nich, które składają najkorzystniejsze oferty, przy czym opłaty ponoszone z tego
tytułu służą jako źródło przychodu dla nadawców, których komunikaty zostały pomyślnie
odebrane. W ten sposób tworzy się łańcuch pośredników między producentem (detektory)
a konsumentem (akcje).
2
Sztuczne życie
Pojęcie „sztuczne życie” wydaje się mieć w sobie coś sztucznego. Jest to dość niefor-
tunne określenie. Przecież życie nie może być sztuczne. Życie z samego swojego założenia
jest „żywe” i nie można mówić o sztuczności. A jeśli coś jest sztuczne nie ma mowy o istnieniu życia. Pojęcie to sugeruje, że człowiek w swoim twórczym pędzie zabiera się do
stworzenia życia.
Życie w każdym swoim przejawie i na każdej płaszczyźnie opiera się na prostych interakcjach pomiędzy poszczególnymi jednostkami, które wzajemnie na siebie wpływają.
Widać tu bardzo silną analogię do systemów klasyfikujących. Ta prosta zasada obowiązuje w niezwykle złożonym i różnorodnym świecie żywych organizmów. Podobne zasady
wykorzystał w 1968 roku brytyjski matematyk John Conway, tworząc Grę w Życie (Game
of Life).
Politechnika Wrocławska
4
3 Historia
3
Informatyka systemów autonomicznych
Historia
3.1
Gra w życie
Gra ta polega na stosowaniu określonych reguł (pojęcie reguły pojawia się po raz
kolejny) dla każdego kwadratu reprezentującego komórkę w pewnej siatce. Te reguły to:
• Każdy czarny kwadracik (komórka) jest żywy. Każda biała komórka jest martwa.
• Każda komórka ma ośmiu sąsiadów.
• Każda komórka może jako żywa przejść do następnej generacji, jeżeli jej dwóch lub
trzech sąsiadów to żywe komórki.
• Jeśli więcej niż trzy (zatłoczenie) lub mniej niż dwie (izolacja) sąsiednie komórki są
żywe, to komórka umiera.
• Każda martwa komórka może zostać ożywiona, jeżeli jej trzech sąsiadów to żywe
komórki.
Stosowanie tych reguł za każdym razem dla każdej komórki jest równoznaczne z przechodzeniem z jednego pokolenia do drugiego. Kolejne generacje charakteryzują się zmianami wzorów powstających przy wizualizacji tego procesu. Po rozpoczęciu działania algorytmu od jakiegoś początkowego schematu komórek (losowego lub konkretnego) można
się spodziewać nawet wyjątkowo złożonych fascynujących kształtów. Niektóre układy komórek szybko stawały się nieuporządkowanym zbiorem i umierały, ale inne pozostawały
aktywne przez setki albo i tysiące pokoleń pozostając w skończonym układzie wzorów,
wśród których można wyróżnić tzw. szybowce, oczy, bramki logiczne czy pamięci binarne. Tak więc przechodzimy od prostoty początkowej formy i prostych reguł do wysokiej
złożoności otrzymywanych w ten sposób wyników.
3.2
Animki
Wszystkie istoty – automaty o złożonych regułach – w sztucznym życiu przejawiające
pewne zachowania prawdziwych zwierząt nazywane są animkami. Stewart Wilson pierwszy użył tego określenia, nazywając tak swoje wyewoluowane na komputerze poszukujące
pożywienia automaty w kształcie kwadratów. Usiłował on zrozumieć podstawowe reguły
uczenia się istot żywych prowadzące do lepszego dostosowania się do otoczenia i wymuszające odpowiednie zachowanie. W swoich badaniach wykorzystał systemy klasyfikujące
Politechnika Wrocławska
5
3.2 Animki
Informatyka systemów autonomicznych
w podobny sposób, w jaki wykorzystał je John Holland w swojej komputerowej żabie.
Żaba ta to indywiduum mogące określić jej stosunek do pojawiającego się w jej otoczeniu
obcego obiektu. Na podstawie odpowiednich właściwości obiektu jak wielkość, położenie
i odległość może podjąć albo atak, albo ucieczkę. Działanie systemu klasyfikującego pomaga jej odpowiedzieć na pytanie jak się zachować w jakiej sytuacji. Jeżeli obiekt jest
duży i jest blisko to należy założyć, że jest wrogiem, a jeśli mały, lata i do tego blisko, to
należy założyć, że jest pożywieniem. W pozostałych przypadkach żaba może nie reagować
na ten obiekt.
W ten sposób Wilson zaprogramował swojego pierwszego animka, którego głównym
celem było znajdowanie pożywienia. Aby to osiągnąć posiadał on trzy podstawowe zmysły: wzrok, węch i smak oraz możliwość odczuwania bólu i przyjemności. Nowo stworzony
animek po pewnym czasie wykorzystując swoje możliwości nauczył się odnajdować szybko jedzenie w swoim środowisku – znacznie szybciej niż tuż po stworzeniu. Wyglądało to
tak, że analizował otoczenie, sprawdzał swoje reguły i albo podejmował działanie na ich
podstawie albo dodawał sobie nową regułę, gdy spotkał się z czymś nowym. W czasie swojego istnienia pewne reguły można było uogólnić, a inne usunąć, gdy się nie sprawdzały.
W ten sposób utworzył sobie na własne potrzeby 8 podstawowych reguł i był w stanie za
każdym razem sprawnie odnaleźć pożywienie.
Na każdym poziomie życia, począwszy od reakcji biochemicznych w komórce, a skończywszy na ekosystemach, spotykamy ten sam schemat: pojedyncze jednostki mogące
wpływać na zachowanie się innych jednostek i jednocześnie modyfikujące własne zachowanie pod wpływem pozostałych jednostek. A więc: jednostki i reguły ich zachowania,
a w szczególności reguły „akcji i reakcji” przy spotkaniu z innymi jednostkami. Dla układów biologicznych jest przy tym charakterystyczne, że lokalne reguły są względnie proste,
zwłaszcza w porównaniu z zachowaniem się całego układu. Własności układu, choćby
najbardziej skomplikowane, muszą tu pojawić się jako skutek realizowania się jednostkowych reguł gry. Abstrahowanie od całej złożoności realnych układów niejednokrotnie już
w historii nauki pozwoliło na intelektualne uchwycenie nowych sposobów ujęcia starych
tematów.
Politechnika Wrocławska
6
4 Kiedy gonić listonosza
4
Informatyka systemów autonomicznych
Kiedy gonić listonosza
Można by się zastanowić dlaczego psy ganiają listonoszy. Na pewno mają ku temu jakiś
dobry powód, ale jedne psy to robią, inne nie. Zbudujmy system, który będzie podejmował
decyzję czy gonić listonosza czy nie.
Listonosz może różnie wyglądać i różnie się zachowywać. Może być duży, mały, szybki
wolny. Przyjmijmy więc, że tego typu cechy listonosza będą wpływać na decyzję psa. Problem jaki możemy sobie postawić to jaka akcja będzie najlepsza dla konkretnego rodzaju
listonosza.
Więc odnosząc się do definicji z punktu 1.2 można wymienić:
1. środowiskiem jest prosty świat składający się z psów czekających na listonosza,
2. dane wejściowe to ciągły strumień różnych typów listonoszy,
3. chcemy odkryć reguły, które powiedzą psu co powinien zrobić w konfrontacji z określonym listonoszem,
4. użyjemy algorytmu genetycznego do wyznaczenia najlepszych reguł (na początku
posiadamy jedynie losowe reguły postępowania)
Jak zawsze jeśli chcemy, aby komputer wykonał za nas jakąś pracę musimy problem
opisać w sposób dla niego zrozumiały. Przyjmijmy, że listonosza można opisać za pomocą
4 cech:
• wielkość
• szybkość
• czy boi się psów
• czy nosi karabin maszynowy
Posiadając wyżej wymienione cechy możemy stworzyć 16 różnych typów listonoszy. Jednego z nich możemy opisać np. tak:
DUŻY
SZYBKI
BOI SIĘ
NOSI KARABIN
1
1
0
0
czyli nasz listonosz jest duży, szybki, nie boi się psów i nie nosi karabinu.
Każdy typ listonosza musi posiadać regułę mówiącą jak ma się zachować pies na jego
widok. Najlepszym sposobem na wyznaczenie tych reguł jest pozwolić systemowi, aby sam
je znalazł metodą kontrolowanych prób i błędów przez operacje genetyczne. Standardowo
startujemy od reguł losowych.
Politechnika Wrocławska
7
4 Kiedy gonić listonosza
Informatyka systemów autonomicznych
Zdefiniujmy sposób opisu reguł:
IF [typ listonosza] THEN [akcja]
Akcja oparta jest na ograniczonej liczbie wyborów. W tym przykładzie mamy do wyboru
akcje:
1. goń listonosza,
2. uciekaj,
3. nic nie rób.
Pozostaje jeszcze opisać całą regułę w sposób prosty do obróbki dla komputera i dla algorytmu genetycznego. Np. regułę
IF [duży] AND [wolny] AND [boi się] AND [nie ma karabinu] THEN [goń listonosza]
można zapisać:
DUŻY
SZYBKI
BOI SIĘ
NOSI KARABIN
/
GOŃ
UCIEKAJ
NIC NIE RÓB
1
0
1
0
/
1
0
0
/
GOŃ
UCIEKAJ
NIC NIE RÓB
/
0
1
0
Można także zdefiniować bardziej ogólną regułę
IF [nosi karabin] THEN [uciekaj]:
DUŻY SZYBKI BOI SIĘ NOSI KARABIN
#
#
#
1
Mając gotowe reprezentacje binarne reguł możemy je ewoluować za pomocą algorytmu
genetycznego. Jednak aby algorytm zadziałał musimy mieć jakiś sposób oceny podejmowanych akcji. Np. nie chcemy, aby pies został skrzywdzony lub żeby nie marnował energii.
Oba te warunki muszą zostać umieszczone w funkcji oceniającej, aby jedne reguły otrzymywały nagrody, a inne były karane. Jeśli np. mamy regułę, która mówi, że pies próbuje
gonić listonosza, chociaż wiemy, że go nie dogoni, to taka reguła otrzyma niską wartość
funkcji dopasowania.
Używając powyższej miary funkcji dopasowania, nasz system po pewnym czasie mógłby wygenerować taki oto zestaw reguł:
• IF [duży] AND [wolny] THEN [nic nie rób] (pies może dogonić listonosza, ale
ten może go skrzywdzić)
• IF [mały] AND [wolny] THEN [goń] (pies może dogonić listonosza bez obawy, że
coś mu zrobi)
• IF [szybki] AND [boi się] THEN [nic nie rób] (listonosz ucieknie, bo jest
szybki)
Politechnika Wrocławska
8
LITERATURA
Informatyka systemów autonomicznych
• IF [szybki] AND [nie boi się] THEN [goń] (listonosz jest szybki, ale nie będzie uciekał)
• IF [ma karabin] THEN [uciekaj] (listonosz ma broń, lepiej uciekać)
Przedstawiony problem psa i listonosza jest na tyle prosty, że dałoby się go przedstawić
w formie kilku równań z kilkoma niewiadomymi. Jednak jeśli mamy do czynienia z bardziej
złożonym problemem, gdzie nie do końca znamy nasze wymagania, system klasyfikujący
może okazać się przydatnym narzędziem. Może on nawet wytworzyć reguły, o których
nigdy byśmy nie pomyśleli.
Literatura
[1] David E. Goldberg, „Algorytmy genetyczne i ich zastosowanie”, WNT 2003
[2] http://www.alife.pl/
Politechnika Wrocławska
9

Podobne dokumenty