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