POWRÓT DO GŁÓWNEJ STRONY

Powrót do poprzedniej strony

Studiowanie Sztucznej Inteligencji w WZI
Krótka informacja dla studentów

Koło Naukowe Sztucznej Inteligencji CJANT
Przejście do strony Koła

Algorytmy genetyczne
Wprowadzenie
Opis kursu
Ciekawsze prace studenckie

Wprowadzenie do sztucznej inteligencji
Wprowadzenie
Opis kursu
Ciekawsze prace studenckie

Automatyczne pozyskiwanie wiedzy
Wprowadzenie
Opis kursu
Ciekawsze prace studenckie

Seminarium dyplomowe
Co robimy na moim seminarium

Wybrane tematy bieżących i ukończonych prac magisterskich
Przykładowe tematy
Moje wymagania
Nieco więcej o wybranych pracach
Propozycje nowych tematów

Doktoraty

Dydaktyka

grupakolkacjant.jpg (463481 bytes)zapracowaninakolku.jpg (40319 bytes)

 

 

 

 

 


Studiowanie Sztucznej Inteligencji na kierunku Inżynieria Oprogramowania w Wydziałowym Zakładzie Informatyki PWr

Studenci specjalizacji Inżynieria Oprogramowania mają możliwość wyboru coś, co roboczo można nazwać "kierunkiem dyplomowania". Między innymi jest kierunek Szuczna Inteligencja (w skrócie AI od angielskiej nazwy Arificial Intelligence). Oczywiste jest, że części studentom nazwa AI nic nie mówi. No cóż, poznają to lepiej, jeśli wybiorą ten kierunek. Ale by ułatwić im nieco wybór, to w kilku zdaniach przybliżę tematykę i osoby, z którymi ewentualnie będą mieć do czynienia.
   Natura to bardzo sprytny proces, wykazuje przewagę nad wieloma sztucznymi systemami. Jest zatem oczywiste, że wielu badaczy czerpało inspirację z natury. Tak zrodziła się dziedzina AI, jako część Informatyki. Próby uczynienia komputera działającym 'jak mózg ludzki' to początek AI. Dziś sztuczna inteligencja to bardzo szeroka dziedzina. Dowiesz się o niej trochę w ramach obowiązkowego dla całego roku przedmiotu. Będzie tam mowa o zastępowaniu ludzi-ekspertów przez systemy komputerowe (Systemy Ekspertowe). By te systemy były wystarczająco 'sprytne', stosuje się m.in. logikę rozmytą (czy wiesz, że kolejką w metrze w Japonii sterują systemy z logiką rozmytą?). Świat nie jest czarny lub biały, podobnie jak szklanka do połowy napełniona nie jest ani pusta, ani pełna, logika rozmyta pozwala to uwzględniać. Jak wiele Twoich decyzji to próba optymalizacji? Czy wiesz jaki jest dobry, może nawet najlepszy, proces adaptacyjny? Odpowiedź brzmi: cały dział nazywany Algorytmami Genetycznymi (ja wolę to nazywać Algorytmami Ewolucyjnymi lub Evolutionary Computations) to metody oparte na naśladowaniu ewolucji biologicznej. Aż dziwne, że tak dużo problemów można rozwiązać takimi technikami (choć nie musi to być rozwiązanie globalnie najlepsze). Ewolucja biologiczna wytworzyła coś takiego, jak mózg. Człowiek też marzy o tym, by stworzyć (zaprojektować) coś podobnego. Znasz pojęcie Sztuczne Sieci Neuronowe? Jeśli nie, to poznasz w ramach jednego z kursów. Zamiast zadawać systemowi algorytm rozwiązania zadania, można go po prostu nauczyć rozwiązywać to zadanie. Uczenie maszynowe, rozumienie języka naturalnego, rozpoznawanie obrazów - to również domena AI. Postaramy się by dać możliwość poznania tej tematyki.
   Techniki AI można stosować tam, gdzie nie są znane algorytmy rozwiązania problemu (czy wiesz, czym różni się algorytm od heurystyki?), lub też są znane, ale czas oczekiwania na rozwiązanie jest nie do zaakceptowania (tak, nawet przy dzisiejszych komputerach).
   Jeśli znajdzie się grupa chętnych zgłębiać tajniki AI, to naszą intencją jest, by była to grupa aktywnych młodych ludzi, którzy będą współpracować z nami naukowo (tak, właśnie naukowo), a jedynym zyskiem z tej pracy będzie zadowolenie z robienia tego, co nas interesuje (no, satysfakcję daje też możliwość pokazania komuś uzyskanych wyników, np. na konferencji lub poprzez publikację w czasopiśmie).. Uwaga! Studenci też jeżdżą na konferencje naukowe, zapytajcie moich dyplomantów!
   Z kim trzeba będzie pracować wybierając AI? Nie ma nas dużo. Oto my:

  • Halina Kwaśnicka (prof. Politechniki Wrocławskiej) - algorytmy ewolucyjne, systemy ekspertowe, hybrydowe systemy inteligentne.
  • Urszula Markowska-Kaczmar (dr inż.) - Jej specjalność to sieci neuronowe.
  • Maciej Piasecki (dr inż.) - rozumienie języka naturalnego.
  • Jerzy Surma (dr inż.) - wnioskowanie na podstawie przypadków, inteligentni agenci.
  • Doktoranci: Ewa Szpunar-Huk, Maciej Huk, Maciej Norberciak, Rafał Pasek, Paweł Peryt

Nie musicie wybrać kierunku AI. Jeśli z różnych powodów wybierzesz coś innego, możesz spróbować poznać trochę tę fascynującą dziedzinę wybierając pojedynczo nasze kursy lub tematy prac dyplomowych.
Życzymy zadowolenia z podjętej decyzji.

strzalka.jpg (933 bytes) Powrót na poczatek strony

lemmin.gif (580 bytes)

Algorytmy genetyczne

 Wiele realnych problemów można sprowadzić do zagadnień optymalizacyjnych; najlepsze wykorzystanie maszyn w zakładzie produkcyjnym, alokacja środków, dobór optymalnego składu, itp., uwzględniając oczywiście różnorakie ograniczenia. Czym zatem naprawdę jest optymalizacja? W klasycznych metodach szuka się dokładnych sposobów opisu i osiągania tego co jest lepsze, jeśli znana jest miara tego, co jest dobre a co złe. Optymalizacja jest więc procesem ulepszania w kierunku pewnego optymalnego punktu. Można optymalizację traktować jako proces dwuetapowy: 1-szukanie ulepszenia (polepszenia czegoś), 2-sprawdzanie, czy osiągnięty jest punkt optymalny. Przy takim podejściu widoczna jest różnica pomiędzy procesem ulepszania a osiągnięciem optimum. W ocenie metod optymalizacji na ogół skupia się uwagę na zbieżności metody, tzn. czy metoda osiągnie optimum, zapominając o działaniu pośrednim metody. Bardziej naturalne wydaje się inne podejście: ocena decyzji człowieka będzie dobra, jeśli podejmuje on właściwą decyzję spośród możliwych, dostępnych w danym czasie. "Dobroć" decyzji jest oceną relatywną w stosunku do innych możliwych w tym czasie decyzji. Należy zatem przeorientować priorytety optymalizacji, aby uzyskać narzędzie optymalizujące, działające w sposób zbliżony do działania człowieka. Najważniejszym celem optymalizacji powinno być stałe polepszanie, czyli szybkie osiągnięcie zadowalającego poziomu "dobroci" rozwiązania. W złożonych systemach, samo osiągnięcie optimum często jest mniej ważne niż szybkie znalezienie rozwiązania satysfakcjonującego, dlatego metoda optymalizacji powinna umożliwiać szybkie znajdowanie coraz lepszych rozwiązań.
      Idea Algorytmów Genetycznych
Algorytmy Genetyczne
(GA od ang. Genetic Algorithms) są algorytmami wzorowanymi na ewolucji biologicznej, która jest bardzo skutecznym naturalnym systemem adaptacyjnym. Organizmy żywe nabywają swoje zdolności poprzez pozornie ślepy mechanizm - dobór naturalny. Stosowanie zasady doboru naturalnego - przeżywają i wydają potomstwo tylko jednostki najlepiej przystosowane - ułatwia projektowanie oprogramowania, ponieważ nie wymaga uprzedniej specyfikacji wszystkich szczegółów problemu i wszystkich działań, które powinien podjąć program. Od czasu opublikowania pracy J.Hollanda, obserwuje się stały wzrost zainteresowania Algorytmami Genetycznymi. Stosowane są jako algorytmy przeszukujące (Search), optymalizujące (Optimization) i uczące się (Learning). Programy wykorzystujące GA osiągają swój cel stosując strategię doboru naturalnego. Program generuje początkową populację - zbiór możliwych rozwiązań. Następnie, w analogii do żywych organizmów, różne rozwiązania wymieniają między sobą "geny" poprzez mechanizm crossingover, pojawiaja się losowe zmiany w "genach" dzięki mechanizmowi mutacji. "Przeżywają" tylko rozwiązania najlepiej (lub stosunkowo dobrze) przystosowane, a ich "potomstwo" jest podstawą do szukania kolejnych rozwiązań.
   Ogólny schemat rozwiązywania zadań
Aby możliwe było stosowanie GA do rozwiazania określonego problemu, należy możliwe (potencjalne) rozwiązania przedstawić w postaci ciągu elementów, kodowanych przy pomocy określonego alfabetu, najczęściej binarnego. Znalezienie odpowiedniej reprezentacji rozwiązania oraz dobór właściwych parametrów algorytmu tak, by uzyskanie zadowalającego nas rozwiązania było możliwie szybkie stwarza największą trudność w stosowaniu GA.
     Etapy rozwiązywania zadania przy zastosowaniu GA to:
Definiowanie genotypu elementów populacji - jest to kodowanie parametrów funkcji celu na łańcuchy o skończonej długości. Element populacji (osobnik, genotyp) jest zestawem "genów", które umieszczone są na łańcuchu - "chromosomie". Osobnik jest więc odwzorowaniem zestawu parametrów funkcji - punktem w przestrzeni parametrów funkcji celu (nazywanej funkcją przystosowania - fitness.)
Ustalenie paramerów algortmu: liczebności populacji i parametrów operatorów genetycznych. Ustalenie początkowej populacji elementów - najczęściej losowo.
Cykliczne generowanie kolejnych populacji elementów, ze sprawdzaniem warunku zatrzymania ewolucji (może nim być zadana liczba generacji, liczba generacji w czasie których nie znaleziono lepszego rozwiązania itp.). Generowanie kolejnych populacji przeprowadzane jest w dwóch etapach:
  (1) wybór z populacji elementów do procesu reprodukcji. W poszczególnych implementacjach wybór ten może być różny. Na ogół większe szanse wyboru ma osobnik lepiej przystosowany, tzn. o większej niż pozostałe wartości funkcji przystosowania. Funkcją tą może być zysk przedsiębiorstwa, koszt wytworzenia wyrobu, długość drogi lub podana analityczna postać funkcji. Każdy element w populacji jest indywidualnie oceniany po względem przydatności strategii jaką koduje.
  (2) reprodukcja elementów czyli tworzenie elementów potomnych, które będąś stanowiły populację w następnym pokoleniu. Liczba potomków każdego elementu zależy od jego przystosowania. W czasie reprodukcji działają dwa operatory genetyczne powodujące powstawanie różnorodności w populacji: crossingover i mutacja.
  crossingover - spośród wybranych do reprodukcji elementów wybiera się po dwa łańcuchy "rodzicielskie" oraz punkt, w którym łańcuchy zostają "rozerwane", następuje zamiana części tych łańcuchów. Jest to crossingover pojedyncze, można stosować też wielokrotne - łańcuchy pękają w kilku miejscach. Crossingover jest podstawowym operatorem mieszającym geny zarówno w GA jak i u żywych organizmów. W tym miejscu algorytm genetyczny ściśle naśladuje swój biologiczny pierwowzór, ponieważ u organizmów żywych chromosomy podlegają crossingover w momencie tworzenia zygoty. W wyniku crossingover następuje nie tylko przemieszanie cech, może powstać nowa cecha, jeśli rozerwanie chromosomu nastąpi w środku genu,
  mutacja - poddawane jest jej powstałe potomstwo; jest losową zmianą genu. Mutacje same zwykle nie wystarczają do znalezienia optymalnego rozwiązania, ale przyczyniają się do istnienia różnorodności w populacji, niedopuszczają do wytworzenia się populacji jednorodnej, co uniemożliwiłoby dalszą jej ewolucję. Zwykle mutacji podlega mała część populacji,
       W niektórych implementacjach GA do populacji potomnej wybiera się najlepsze elementy (ich liczba określona jest przez parametr rozmiar populacji) spośród potomków (cała populacja "wymiera", "żyje" tylko najlepsza część potomstwa); w innych - do następnej generacji wybierane są najlepsze elementy spośród zbioru "rodziców" i "potomków". Czasami stosowana jest strategia pośrednia: do następnej generacji bezwarunkowo "przeżywa" najlepszy element z populacji "rod
ziców", resztę stanowi "potomstwo". Można też stosować dodatkowe, bardziej zaawansowane mechanizmy operujące na poziomie genotypu (zaczerpnięte z genetyki): istnienie genów dominujących, inwersję, wewnątrzchromosomową duplikację, translokację i segregację.

Katalogowy opis kursuALGORYTMY GENETYCZNE W ROZWIĄZYWANIU PROBLEMÓW (Nr katalogowy: INZ5507)
Wymiar kursu: 10021 (pół semestru wykład, pół semestru seminarium, cały semestr projekt)
Wymagania wstępne:
Brak specjalnych wymagań, biegła umiejętność programowania do realizacji projektu.
   Na wykładzie omówiona zostanie idea algorytmów genetycznych oraz podstawowe pojęcia z tego zakresu. Na przykładzie optymalizacji prostych funkcji pokazany będzie sposób reprezentacji problemu, tworzenie populacji początkowej, funkcji oceny, definiowanie podstawowych operatorów genetycznych. Implementacja binarna i w postaci liczb rzeczywistych. Zaawansowane operatory genetyczne. Uwzględnianie ograniczeń w zastosowaniach AG. Własności algorytmów genetycznych, wpływ poszczególnych operatorów na zachowanie się populacji. Algorytmy Genetyczne i Simulated Annealing. Wybrane zastosowania, w tym do projektowania sieci neuronowych. W ramach seminarium omawiane będą przykłady zastosowań algorytmów genetycznych. Na zjęciach projektowych studenci wykonują własne aplikacje. Tematy seminariów są podane przez prowadzącego, prowadzący podaje przykłądowe tematy projektów, studenci uzgadniają temat i zakres swoich prac.
Zasady zaliczania przedmiotu są podawane studentom na początku semestru i udostępniane w sieci.
Dr hab. inż. Halina Kwaśnicka

strzalka.jpg (933 bytes) Powrót na poczatek strony

lemmin.gif (580 bytes)

Sztuczna inteligencja i systemy ekspertowe

Inteligencja - (psych.) zespół zdolności umysłowych umożliwiających jednostce sprawne korzystanie z nabytej wiedzy oraz skuteczne zachowanie się wobec nowych zadań i sytuacji. Według tego samego źródła:
Sztuczna Inteligencja (skrót AI od angielskiego określenia Artificial Intelligence ) - jest to pojęcie stosowane w informatyce i oznacza rozwiązywanie problemów sposobami wzorowanymi na naturalnych działaniach i procesach poznawczych człowieka za pomocą symulujących je programów komputerowych.
System - uporządkowany wewnętrznie układ elementów mający określoną strukturę (całość); zespół zasad organiz., norm i reguł obowiązujących w danej dziedzinie; w metodologii zespół sposobów działania (metoda).
System Ekspertowy (skrót ES od ang. nazwy Expert Systems) - komputerowy program konsultacyjny, wspomaga decyzje zastępując eksperta w danej dziedzinie, np. w diagnostyce medycznej.
   Definicji AI jest niemalże tyle, co osób zajmujących się nią. Możliwa jest szeroka definicja (Shalkoff,1990):
AI - dziedzina badań, które usiłują wyjaśnić i emulować zachowanie inteligentne w terminologii procesów obliczeniowych "in terms of computational processes". Zatem AI nie jest czystą nauką (część objaśniająca) ani podstawą nowatorskiej (engineering) inżynierskiej dyscypliny (część emulacyjna). Wyjaśnia to interdyscyplinarną naturę sztucznej inteligencji jako dziedziny. W literaturze podawana jest też definicja inżynierska sztucznej inteligencji, jako:
AI to generowanie reprezentacji i procedur, które automatycznie i autonomicznie rozwiązują problemy, które dotychczas były rozwiązywane przez człowieka (Shalkoff, 1990, Charniak, McDetmott, 1985). Powyższe punkty widzenia łatwo ujednolicić jeśli przyjmiemy, że "celem AI jest zrozumienie inteligencji tak, by możliwe było wykorzystanie jej do przeprowadzania obliczeń". Odróżnia to AI od rozwoju konwencjonalnego oprogramowania dla wąsko zdefiniowanych zadań, jakie można spotkać w systemach ekspertowych. Często utożsamia się AI z ES, z powodu przewagi ES , co jest głównym źródłem zamieszania na temat: co stanowi AI. Zakres problemów zawierających się w ramach AI jest dość szeroki: gry, dowody twierdzeń, rozpoznawanie obrazów (vision), przetwarzanie języków naturalnych, rozpoznawanie mowy, systemy ekspertowe. Przedmiotem obecnie prowadzonych prac jest wnioskowanie zdroworozsądkowe, wnioskowanie przy niepełnej i niepewnej wiedzy, projektowanie i uczenie sieci neuronowych. (Rich, Knight, 1988).
   Systemy ekspertowe są programami, zwykle ograniczonymi do specyficznego zakresu, próbującymi naśladować zachowanie ekspertów - ludzi. Typowe atrybuty ES:
1. Wiedza jest zwykle reprezentowana w postaci deklaratywnej, umożliwiającej łatwe odczytywanie i modyfikację. Większość ES wykorzystuje struktury 'jeśli przesłanki to akcje ' (IF-THEN), systemy bazujące na regułach.
2. Struktura wiedzy jest klarowna (wyłączając neuronowe ES).
3. Reprezentacja wiedzy i mechanizm sterujący są rozdzielone. Często mechanizm sterujący korzysta z reguł, tzw. meta-reguł.
4. Ważny z punktu widzenia użytkownika interfejs I/O, pozwala na zadawanie pytań i uzyskiwanie wyjaśnień (praca interaktywna).
5. Moduły zdobywania wiedzy i modyfikacji wiedzy są często używane dla rozszerzania systemów ekspertowych.
   Czynniki pobudzające rozwój systemów ekspertowych to:
1. Wiedza eksperta jest zasobem rzadkim i drogim.
2. ES pozwalają większemu gronu ludzi działać jako 'ekspert'. Jest to użyteczne przy szkoleniu itp. Edukacyjna rola ES jest bardzo duża, np. MYCIN (system służący do diagnozowania chorób bakteryjnych) doskonale nadaje się do uczenia studentów medycyny, nie ryzykując zdrowiem pacjenta.
3. Połączenie wiedzy kilku ekspertów może spowodować, że ES działa lepiej niż pojedynczy ekspert.
   Na świecie z powodzeniem pracują systemy ekspertowe (np. MYCIN, PUFF, DENDRAL, PROSPECTOR). Różnice między systemami ekspertowymi pracującymi w czasie rzeczywistym a konwencjonalnymi ES.
Tradycyjne systemy ekspertowe najczęściej znajdują zastosowania w zagadnieniach diagnostycznych i konsultacyjnych. W aplikacjach pracujących w czasie rzeczywistym, wnioskowanie odbywa się z uwzględnieniem najczęściej wielu szybko zmieniających się danych (high-input data rates), krytycznym wymogiem jest 'wyprodukowanie' właściwej odpowiedzi w odpowiednim, krótkim przedziale czasu. Coraz częściej technologie bazujące na systemach ekspertowych znajdują zastosowania w zadaniach czasu rzeczywistego, zwłaszcza w szczególnie ważnych zadaniach (mission-critical applications).
   Systemy Ekspertowe pracujące w czasie rzeczywistym znajdują zastosowanie w wielu rzeczywistych zadaniach sterowania przebiegiem procesu. Jedną z zalet, jakie daje ich stosowanie to bardzo dobre rezultaty w krótkim czasie. Działanie jest spójne niezależnie od czasu i położenia geograficznego, w których odbywa się proces. Systemy ekspertowe czasu rzeczywistego mogą wykonywać również użyteczne wstępne przetwarzanie danych, z których wyniki wykorzystywane są przez operatorów ludzi; pełnią wtedy bardzo istotną rolę pomocniczą dla pracy operatora. Wynika z tego, że nawet tam, gdzie cała wymagana dla sterowania wiedza nie może być zredukowana do postaci reguł czy innej akceptowanej przez ES, stosowanie systemów ekspertowych może okazać się pożądane dla celów odpowiedniej filtracji wiedzy niezbędnej operatorowi. Ułatwia mu to podejmowanie decyzji i może eliminować zmęczenie lub nudę, co może przyczyniać się do lepszej reakcji operatora w ważnych sytuacjach i zapewnić większe bezpieczeństwo. Innym zyskiem zastosowania systemów ekspertowych pracujących w czasie rzeczywistym w sterowaniu procesami jest ich zdolność do wysokiej jakości przetwarzania często zmieniających się danych poprzez pełniejsze monitorowanie i inicjowanie akcji prewencyjnych.
Prace nad zwiększeniem możliwości stosowania ES pracujących w czasie rzeczywistym idą w kierunku przyspieszania działania mechanizmu wnioskującego zarówno poprzez lepsze oprogramowanie jak i również poprzez stosowanie odpowiedniej architektury.

Katalogowy opis kursu: WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI I SYSTEMÓW EKSPERTOWYCH (Nr katalogowy: INZ4501)
Wymiar: 20001 (2 godziny tygodniowo wykład, jedna godzina tygodniowo seminarium)
Wymagania wstępne:
Biegła umiejętność programowania (kurs obowiązkowy dla kierunku Inżynieria Oprogramowania).
Spór o Sztuczną Inteligencję (AI), dyskusja: czy komputer może myśleć. Podstawowe pojęcia, rys historyczny. Wiedza deklaratywna i proceduralna, reprezentacja wiedzy. Zastosowanie logiki w AI - wnioskowanie. Wnioskowanie w kierunku celu (forward chaining) i w kierunku założeń (bacward chaining). Drzewo decyzyjne - tworzenie reguł. Metody przeszukiwania heurystycznego. Problemy spełniania ograniczeń (CSP) - przykłady. Systemy produkcji, zależność od kolejności stosowania reguł. Systemy typu tablica (Blackboard). Planowanie w systemach AI - reprezentacja STRIPS (opis akcji, warunków i skutków). Wprowadzenie do zagadnień rozpoznawania obrazów. Przetwarzanie języka naturalnego - analiza leksykalna, syntaktyczna i semantyczna. Niepewność w systemach ekspertowych - zastosowanie prawdopodobieństwa; czynnik pewności, wykorzystanie logiki rozmytej. Systemy Ekspertowe w sterowaniu. Weryfikacja bazy wiedzy. Perspektywy i zagrożenia ES. Zestaw tematów na seminaria (do wyboru przez studentów) podaje prowadzący. Studenci mogą realizować tematy interesujące dla nich jako potencjalne tematy prac magisterskich. Zasady zaliczania przedmiotu są podawane studentom na początku semestru i udostępniane w sieci.
Dr inż. Halina Kwaśnicka

strzalka.jpg (933 bytes) Powrót na poczatek strony

lemmin.gif (580 bytes)

Automatyczne pozyskiwanie wiedzy i maszynowe uczenie się

Krótki wstęp na podstawie książki P. Cichosz, Systemy uczące się. WNT Warszawa 2000.
Definicja uczenia się:
Każdy wie, co to jest uczenie, znamy pojęcie uczenia choć nie potrafimy podać definicji. Potrafimy jednak powiedzieć, czy w danym przypadku mamy do czynienia z uczeniem.
   Pierwszy element uproszczonej definicji uczenia to zmiana: System niezmienny w czasie nie uczy się
Zmianą też jest zapominanie, z czego wynika, że: Zmiany muszą być korzystne, mają nieść poprawę. Poprawa instrumentalna (nie moralna) - czyli zwiększenie skuteczności (sprawności) systemu.
Zakładamy, że istnieje możliwość oceny jakości działania (zauważenie zmian i odróżnienie korzystnych od niekorzystnych).
Ale: zwierzę, które lepiej odżywiamy, staje się coraz bardziej sprawne, jest to zmiana korzystna, ale nie powiemy, że zwierzę się uczy.
   Kolejny wymóg w definicji uczenia to autonomiczność korzystnych zmian zachodzących w systemie. System uczący się sam zmienia się na lepsze. Ale nie chodzi o zmianę samoistną czy losową, nie nazwiemy uczeniem, kiedy system losowo będzie się zmieniał i przez przypadek zajdzie korzystna zmiana. Chodzi o to, aby była to zmiana samoistna, korzystna, zachodząca pod wpływem (na podstawie) pewnych czynników lub okoliczności zewnętrznych. W definicji uczenia będzie: zmiana korzystna, autonomiczna, na podstawie doświadczenia: Uczeniem się systemu jest każda autonomiczna zmiana w systemie zachodząca na podstawie doświadczeń, która prowadzi do poprawy jakości jego działania. Zakładamy, że istnieje możliwość oceny jakości działania (zauważenie zmian i odróżnienie korzystnych od niekorzystnych).
   Uwaga: warunek zmiany - może być obiektywnie stwierdzony, natomiast pozostałe cechy uczenia są nieostre, umowne. Pojęcie uczenia się systemu jest pojęciem nieostrym.
   Uczenie się może być rozpatrywane jako konkretyzacja algorytmu - dobór "parametrów", nazywanych wiedzą lub umiejętnością.
Taksonomia maszynowego uczenia się: Do taksonomii maszynowego uczenia można brać pod uwagę następujące kryteria:

  • Metoda reprezentacji wiedzy lub umiejętności,
  • Sposób używania wiedzy lub umiejętności,
  • Źródło i postać informacji trenującej,
  • Mechanizm nabywania i doskonalenia wiedzy lub umiejętności.

Ad 1:
Symboliczne metody reprezentacji - wykorzystują różnego rodzaju struktury przechowujące informację o charakterze symbolicznym, czyli zorganizowane w pewien sposób napisy, którym można przypisać interpretację. Łatwo ją zapisać w postaci czytelnej dla człowieka i poddać ją inspekcji.
Subsymboliczne metody reprezentacji - poszczególne elementy nie mają, wzięte osobno, sensownej interpretacji. najczęściej to zbiory liczb lub łańcuchy binarne, łącznie reprezentują wiedzę.
Ad 2:
Sposób wykorzystania wiedzy często jest determinowany przez jej reprezentację i cel. zadania klasyfikacji (uczenie się pojęć, pojęcie - wiedza o przynależności obiektów do klas), rozwiązywanie problemów, sekwencyjne podejmowanie decyzji, modelowanie środowiska.
Ad 3:
Uczenie z nadzorem,
Uczenie bez nadzoru,
Uczenie się na podstawie zapytań - bliskie nadzorowanemu,
Uczenie przez eksperymentowanie - gromadzi doświadczenie eksperymentując ze swoim środowiskiem,
Uczenie ze wzmocnieniem - eksperymentując wykorzystuje krytyka (krytyk mówi nie to, co uczeń ma robić - instruktaż, lecz mówi uczniowi jako dobre lub złe jest jego dotychczasowe działanie.
Ad 4:
Indukcja - najbardziej popularny mechanizm nabywania wiedzy - jest cała rodzina mechanizmów indukcyjnych. Nieindukcyjne metody to:
Wyjaśnianie - informacja trenująca służy do konkretyzacji wiedzy wrodzonej ucznia,
Przypisywanie zasługi - uczenie ze wzmocnieniem.
Na podstawie książki: Tom M. Mitchell, Machine learning, McGraw-Hill Companies, Inc., 1997:
Dziedzina machine learning (ML) zajmuje się szukaniem odpowiedzi na pytanie, w jaki sposób konstruować programy komputerowe, które potrafią automatycznie polepszać swoje działanie w miarę 'doświadczenia'. W dziedzinie tej wykorzystuje się pojęcia i wiedzę z różnych obszarów badań, np. statystyki, sztucznej inteligencji, filozofii, teorii informacji, biologii, i in. Wydaje się, że dobrym podejściem do omówienia zagadnień związanych z automatycznym uczeniem się jest spojrzenie na tę dziedzinę z różnych perspektyw.
Ludzkość od początków istnienia komputerów marzyła, by mogły się one uczyć. Ale jak zaprogramować komputery, by mogły się one uczyć? Nadal nie znamy jednoznacznej, satysfakcjonującej odpowiedzi na to pytanie.
Możemy podać definicję programu zdolnego do uczenia się, oraz kilka przykładów udanych aplikacji ML.
Definicja: Mówimy, że program komputerowy jest zdolny do automatycznego uczenia się, z doświadczeń E, według miary jego działania P, zadań należących do klasy T, jeśli wskutek doświadczenia E rozwiązuje lepiej zadania z klasy T, wg miary P.
Przykłady aplikacji:

  • Uczenie rozpoznawania mówionych słów
  • Większość efektywnych systemów rozpoznawania mowy zawiera pewne formy ML. Spinx (Lee, 1989, za [1]) uczy się specyficznych dla mówcy strategii rozpoznawania fonemów i słów z obserwacji sygnału mowy. Podobne techniki mogą być stosowane w zadaniach inerpretacji sygnałów.
  • Uczenie poruszania się automatycznego pojazdu
  • Udało się nauczyć komputerowo sterować robotem (pojazdem) poruszającym się po różnych trasach. Np. alvin (Pomerlau, 1989, za [1]) wykorzystał wyuczone strategie do samodzielnego sterowania pojazdem po 90 milowym odcinku drogi publicznej, z prędkością 70 mil na godzinę. Stosowane techniki mogą być użyteczne w problemach sterowania opartych na sensorach.
  • Uczenie klasyfikacji nowych struktur w astronomii.
  • Metody ML były stosowane do różnych, dużych baz danych, aby nauczyć się pewnych ogólnych regularności ukrytych w danych. Np. NASA stosowało algorytmy generowania drzew decyzyjnych do uczenia klasyfikacji niektórych obiektów widocznych na niebie (Fayyad, 1995, za [1]). System obecnie jest używany do klasyfikacji wszystkich obiektów w kosmosie, zawiera ogromne bazy danych obrazów.
  • Uczenie gry w trik-trak (backgammon, gra przy użyciu warcabów i kości)
  • Najskuteczniejsze programy komputerowe do gier logicznych wykorzystują techniki ML. Np. TD-Gammon (światowy mistrz programów komputerowych grających w trik-traka) uczył się swojej strategii grając jako przeciwnik w ponad milionie gier. Obecnie reprezentuje poziom porównywalny ze światowym mistrzem (osobą) tej gry. Podobne techniki mogą być stosowane w zagadnieniach wymagających efektywnego przeszukiwania dużych przestrzeni rozwiązań.

Dobre sformułowanie problemu, wybór zbioru uczącego (doświadczeń) mają bardzo duże znaczenie dla zadania automatycznego uczenia się.
Uczenie pojęć (concept learning)

Kluczowy problem w ML to indukcja ogólnych funkcji ze specyficznych przykładów uczących. Uczenie pojęć (concept learning) to pozyskanie definicji ogólnej kategorii mając próbkę pozytywnych i negatywnych przykładów. Uczenie pojęć można zdefiniować jako przeszukiwanie przestrzeni predefiniowanych hipotez w celu znalezienia hipotez najbardziej pasujących do przykładów uczących.
Uczenie pojęć nazywane bywa aproksymacją wartości funkcji logicznej z przykładów. Automatyczne wnioskowanie ogólnych definicji pojęć jest postrzegane jako etykietowanie danych przykładów jako należących bądź nie należących do uczonego pojęcia. Zatem, uczenie pojęć może być zdefiniowane jako: Wnioskowanie wartości funkcji logicznej z przykładów zawierających wejścia jak i wyjścia. Reprezentacja hipotezy zaprojektowana w systemie składa się z koniunkcji ograniczeń na wartości atrybutów przykładów.
Generowanie hipotez od-ogółu-do-szczegółu (General-to-Specific Ordering of Hypotheses) pozwala na tworzenie algorytmów uczących bez konieczności specyfikacji explicite wszystkich możliwych hipotez.
Uczenie drzew decyzyjnych (Decision Tree Learning)
Jest to popularna metoda wnioskowania indukcyjnego. Służy do aproksymacji funkcji dyskretnej, jest odpowiednia dla zaszumionych danych i ma możliwości uczenia wyrażeń dysjunkcyjnych (alternatyw). Do tej rodziny należą ID3, ASSISTANT, C4.5. Ich 'inductive bias' jest preferencja małych drzew.
Uczona funkcja jest reprezentowana jako drzewo decyzyjne. Drzewo decyzyjne może być przedstawione w postaci reguł if-then dla poprawienia jego czytelności.
Każdy węzeł w drzewie decyzyjnym specyfikuje test pewnego atrybutu przykładu, każda gałąź wychodząca z węzła odpowiada jednej możliwej wartości tego atrybutu. Przykłady są klasyfikowane poczynając od korzenia drzewa, testując atrybut określony przez korzeń, poruszając się w dół po drzewie zgodnie z wartościami przyjmowanymi przez atrybuty w węzłach. W ogólności drzewo reprezentuje koniunkcje i dysjunkcje ograniczeń nałożonych na wartości atrybutów.
Uczenie Bayesowskie
. Cechy takiego podejścia to:

  • Każdy obserwowany przykład może stopniowo zwiększać lub zmniejszać estymowane prawdopodobieństwo poprawności hipotezy. Jest to bardziej elastyczne podejście w stosunku do tego, które usuwa hipotezy niezgodne choć z jednym przykładem.
  • Wiedza aprioryczna może być łączona z obserwowanymi danymi do określania końcowego prawdopodobieństwa hipotezy. Wiedza aprioryczna jest dostarczana poprzez (1) prawdopodobieństwo apriori dla każdej kandydującej hipotezy, (2) rozkład prawdopodobieństwa na obserwowanych danych dla każdej możliwej hipotezy.
  • Metoda może akumulować hipotezy, które tworzą prawdopodobne przesłanki (np. takie jak "ten pacjent z zapaleniem płuc ma 93% szans na całkowite wyleczenie").
  • Nowe zadanie może być klasyfikowane przez połączenie przesłanek wielu hipotez, ważonych ich prawdopodobieństwami.
  • Nawet, jeśli metody są trudne obliczeniowo, mogą dostarczyć standardów optymalnego podejmowania decyzji dla mierzenia innych metod.

Problemem jest to, że typowo wymagają one początkowej znajomości wielu prawdopodobieństw (jeśli nie są znane, muszą być estymowane z dostępnych wcześniej danych). Druga trudność to duży koszt obliczeniowy.
Instance-Based Learning - Uczenie z przykładów

W odróżnieniu od metod uczenia, które konstruują ogólny, jawny opis (general, explicit description of target function) funkcji docelowej, kiedy dostarczane są dane uczące, instance-based uczenie po prostu zapamiętuje uczące przykłady. Uogólnianie nad tymi przykładami jest odwlekane do czasu, aż nowy przykład (zadanie) ma być klasyfikowane. Za każdym razem, kiedy przychodzi nowe zapytanie (przykład), badane są jego powiązania z zapamiętanymi przykładami aby ustalić wartość docelowej funkcji nowego przykładu. Metody Instance-Based Learning to najbliższy sąsiad, metody lokalnych ważonych regresji. Zakładają one, że przykład (instance) może być reprezentowany jako punkt w przestrzeni Euklidesowej. Obejmują one również metody Case-Based Reasoning (wnioskowanie na bazie przykładów), które stosują bardziej złożoną, symboliczną reprezentację przykładów. Metody Instance-Based Learning są czasami nazywane "leniwymi" metodami uczenia ("lazy") ponieważ opóźniają one proces przetwarzania aż do czasu, kiedy nowe zdarzenie (instance) musi być klasyfikowane. Najważniejszą zaletą tego opóźnienia jest to, że zamiast estymować docelową funkcję dla przestrzeni wejściowych przykładów, metody te mogą je estymować lokalnie i oddzielnie dla każdego nowego zdarzenia.
Metody z tej grupy to k-Nearest Neighbor Learning oraz Locally Weighted Regression.
Metody te nie potrzebują uprzedniego formułowania hipotez. Pozwalają na zamodelowanie bardziej złożonych funkcji docelowych poprzez kolekcję mniej złożonych lokalnych aproksymacji oraz fakt, że żadna informacja obecna w ciągu uczącym nie jest tracona (zapamiętywane są wszystkie przykłady). Podstawowa trudność to efektywność tych metod, trudności z ustaleniem i aproksymacją miary odległości dla odzyskiwania "odpowiednich" przykładów, oraz negatywny wpływ niewłaściwych (irrelevant) cech miary odległości.
Uczenie się zbioru reguł

Zbiór reguł w postaci klauzul Hornowskich może być interpretowany jako program w języku Prolog, uczenie ich bywa nazywane ILP - Inductive Logic Programming.
Analityczne uczenie
Metody uczenia indukcyjnego (sieci neuronowe, drzewo decyzyjne) wymagają pewnej liczby przykładów aby osiągnąć pewien poziom uogólnienia. Analityczne uczenie stosuje wiedze aprioryczną i wnioskowanie dedukcyjne do powiększania informacji dostarczanej przez przykłady uczące. W uczeniu na podstawie objaśnień (EBL - Explanation-based Learning) wiedza aprioryczna wykorzystywana jest do analizowania, lub wyjaśniania jak obserwowany przykład uczący satysfakcjonuje docelowe pojęcie. Wyjaśnianie jest używane do rozróżnienia odpowiednich (relevant) cech przykładu uczącego od nieodpowiednich (irrelevant) tak, że przykłady są uogólniane raczej w oparciu o logiczne niż statystyczne wnioskowanie. Podejście to było z sukcesem stosowane do uczenia reguł sterujących dla zadań planowania (planning) i harmonogramowania (scheduling).
W uczeniu analitycznym, wejściowe dane dla uczącego się są takie same jak dla uczenia indukcyjnego, tj. przestrzeń hipotez H i zbiór przykładów uczących D, ale dodatkowo, dostarczona jest teoria dziedziny B, stanowiąca podstawową wiedzę, która może być wykorzystana do wyjaśniania obserwowanych danych uczących (wiedza dziedzinowa może zawierać np. dozwolone ruchy dla gry w szachy).
W uczeniu indukcyjnym szukana była hipoteza, która najbardziej pasuje do danych, w analitycznym - szuka się hipotezy, która pasuje do wiedzy apriorycznej i obejmuje dane uczące.
Uczenie na podstawie objaśnień jest formą uczenia analitycznego, w którym przetwarza się każdy nowy przykład uczący poprzez (1) wyjaśnianie obserwowanych docelowych wartości dla tego przykładu w terminach teorii dziedziny, (2) analizowanie tego wyjaśnienia to określenia ogólnych warunków, przy których utrzymane jest to wyjaśnienie, (3) oczyszczenie (refining) jego hipotezy aby włączyć te ogólne warunki.
Połączenie indukcyjnego i analitycznego uczenia

Czyste indukcyjne uczenie formułuje ogólne hipotezy poprzez znalezienie empirycznych regularności w przykładach uczących. czyste analityczne uczenie stosują aprioryczną wiedzę do otrzymania ogólnych hipotez dedukcyjnie. Połączenie obu podejść daje korzyści: lepsza poprawność (accuracy) uogólniania kiedy dostępna jest wiedza aprioryczna oraz szukanie zależności w obserwowanych danych uczących do wypracowania szybkiej wiedzy apriorycznej.
Wzmocnione uczenie (reinforcement learning)

Wzmocnione uczenie odnosi się do pytania, jak autonomiczny agent, który odbiera bodźce i działa w swoim środowisku może się uczyć wybierać najlepszą akcję aby osiągnąć jego cel. Ten ogólny problem obejmuje takie zadania jak uczenie sterowania autonomicznym (poruszającym się mobile) robotem, uczenie się optymalizować operacje w fabrykach, uczenie się poprzez aktywny udział w grach (play board games).
W każdej jednostce czasu agent wykonuje akcję w swoim środowisku, trener może dostarczać nagrodę lub karę aby wskazać pożądany lub docelowy stan. Np. kiedy agent gra w grę, trener może dawać nagrodę, kiedy gra jest zwycięska, karę (negative reward) za przegraną i zero w innych stanach. Zadaniem agenta jest nauczyć się z tych niebezpośrednich i opóźnionych wypłat wybrać sekwencję akcji dających największą sumę wypłat.
Algorytm zwany Q pozyskuje optymalną strategię sterowania z opóźnionych wypłat nawet jeśli agent nie ma wiedzy apriorycznej o efektach jego akcji w środowisku. Wzmocnione uczenie odnosi się do algorytmów dynamicznego programowania, często stosowanych w problemach optymalizacji.
Algorytmy genetyczne w systemach uczących się
(O innych algorytmach maszynowego uczenia się - w przygotowaniu )
Napisanie programu, który umożliwi komputerowi uczenie się rozwiązywania zadanego problemu jest zadaniem bardzo pożądanym, ale jednocześnie bardzo trudnym. W wielu ośrodkach na świecie trwają prace nad różnymi systemami, które mają za zadanie nauczyć się rozwiązywania klasy problemów w oparciu o zadany ciąg uczący, spróbować znaleźć pewne prawidłowości pomiędzy podanymi danymi bądź też zastąpić człowieka w projektowaniu inteligentnego systemu (np. systemu sterowania z logiką rozmytą, sieci neuronowej). Obecnie wydaje się, że nie ma programu, który umożliwiałby komputerowi uczenie się zbliżone do możliwości człowieka. Wśród wielu opracowanych systemów i metod uczących są też systemy z algorytmami genetycznymi. Jednym z popularnych zadań jest uczenie się reguł klasyfikacji na podstawie przykładów. Takie zadanie można sformułować w terminach optymalizacji i z sukcesem stosować algorytmy genetyczne. Podejście takie nazywane jest Genetyczne Systemy Uczące (GBML - Genetic Based Machine Learning Systems). Można wyróżnić trzy podejścia wczesnych prac nad systemami uczącymi się: (1) Podejście Michigan (prace J. Hollanda), (2) Podejście Pitt (zainicjowane przez De Jong'a, nazwa pochodzi od miasta Pittsburg), (3) Indukcyjne uczenie wykorzystujące programowanie ewolucyjne (GIL - Genetic Inductive Learning, prace Janikov'a)) [Michalewicz]. Dość obszerne zestawienie zastosowań genetycznych systemów uczących się znajduje się w pracy D. Goldberga [Goldberg po polsku, str. 234-236]

Katalogowy opis kursu: AUTOMATYCZNE POZYSKIWANIE WIEDZY (Nr katalogowy: INZ4516)
Wymiar: 20200 (2 godziny tygodniowo wykładu, 2 godziny tygodniowo projekt)
Wymagania wstępne:
Zaliczenie kursu Wstęp do sztucznej inteligencji i systemów ekspertowych
Problemy związane z pozyskiwaniem wiedzy od ekspertów, stosowane podejścia. Pozyskiwanie wiedzy z baz danych. Metody tradycyjne generowania reguł ze zbioru danych - klasyczne algorytmy indukcji statystycznej wykorzystujące drzewo decyzyjne, najnowsze metody - wykorzystanie algorytmów genetycznych, sieci neuronowych, techniki hybrydowe. Tworzenie reguł z danych dyskretnych i ciągłych - zastosowanie sieci neuronowych z uczeniem bez trenera. Współpraca systemów ekspertowych i sieci neuronowych. Omówienie narzędzi automatycznego pozyskiwania wiedzy. W ramach projektu studenci realizują wybrane zagadnienia z pozyskiwania wiedzy, w zależności od dostępnego sprzętu i oprogramowania. Mogą realizować tematy związane z ich pracą magisterską. Zasady zaliczania przedmiotu są podawane studentom na początku semestru i udostępniane w sieci
Plan wykładu:

  1. Informacje organizacyjne, plan zajęć, wprowadzenie do przedmiotu.
  2. Metody i techniki stymulacji twórczego myślenia.
  3. Reprezentacja wiedzy w mózgu człowieka i kodowanie jej.
  4. Wpływ reprezentacji problemu na jego rozwiązanie.
  5. Pozyskiwanie wiedzy od ekspertów.
  6. Indukcyjne metody uczenia (Uczenie się przestrzeni wersji: Find-S, Candidate-Elimination; Indukcja drzew decyzyjnych: ID3; Indukcja reguł: ILA, AQ).
  7. Algorytmy genetyczne w maszynowym uczeniu się.
  8. Data mining and knowledge acquisition - wykrywanie reguł asocjacji i sekwencji zdarzeń.
  9. CBR (Case Based Reasoning) - wnioskowanie na podstawie przypadków.
  10. Wizualizacja danych
  11. Ekstrakcja reguł z sieci neuronowych
  12. Sieci neuronowe z logiką rozmytą i wbudowana wiedzą.

Wykład prowadzą: dr hab. inż. Halina Kwaśnicka - tematy 1-7, dr inż. Urszula Markowska-Kaczmar - tematy 8-12.
Dr hab. inż. Halina Kwaśnicka

strzalka.jpg (933 bytes) Powrót na poczatek strony

lemmin.gif (580 bytes)

Seminarium dyplomowe

Cel kursu:
Zdobycie wiedzy i wymiana doświadczeń na temat: Jak pisać pracę magisterską.

Chodzi zarówno o zawartość merytoryczna pracy magisterskiej (typowej - z projektem i implementacja systemu komputerowego oraz przeglądowej) jak i o stronę redakcyjna pracy.

Praktyczna nauka wystąpienia prezentującego osiągnięcia uzyskane w pracy magisterskiej.

Chodzi o przygotowanie prezentacji (w tym pomocy typu folie), oraz sposobu samego wystąpienia. Różnica między tekstem pisanym a mówionym. Sposób prezentacji pracy w czasie obrony.

Przedyskutowanie w gronie uczestników problemów związanych z tematem pracy magisterskiej i sposobów ich rozwiązania.

Student powinien znaleźć grono słuchaczy, które aktywnie przedyskutuje zastosowane w pracy podejście (sposób postawienia problemu, zastosowane rozwiązania) oraz pojawiające się problemy, jeśli takie występują.

Studenci chętni i gotowi do tego mają próbne obrony na ostatnich zajęciach.

strzalka.jpg (933 bytes) Powrót na poczatek strony

lemmin.gif (580 bytes)

Przykładowe prace magisterskie

 

Przykłady tematów prac magisterskich zgłosoznych do obrony na 2008 rok:

  1. Wykorzystanie wiedzy dziedzinowej w programie grającym w GO
  2. Zastosowanie algorytmów ewolucyjnych do budowy konstrukcji kratowniczych
  3. Możliwości wykorzystania ontologii do opisu sieci grid
  4. Hybrydowy system uczący się - połączenie algorytmów ewolucyjnych, sieci neuronowych i drzew decyzyjnych
  5. Wykrywanie oszustów na stronie rekomendującej książki (Biblionetka)
  6. Sztuczne życie - badania równowagi ekosystemu
  7. Inteligentny bot dla Instytutu Informatyki Stosowanej

Przykłady tematów prac magisterskich bronionych w 2007 roku:

  1. Inteligentne systemy w zarządzaniu ruchem drogowym (artykuł, film)
  2. Zastosowanie wybranych metod sztucznej inteligencji do sterowania robota mobilnego
  3. Pozyskiwanie informacji z muzyki (Music information retrieval)
  4. Metody sztucznej inteligencji w analizie rynku giełdowego

Przykłady tematów prac magisterskich bronionych w 2006 roku:

  1. Inteligentne systemy w zarządzaniu ruchem drogowym (artykuł, film)
  2. Inteligentne techniki w witrynie handlowej B2C (business-to-consumer)
  3. Klasyfikacja obiektów na obrazie oparta na różnych modelach reprezentacji
  4. Modelowanie i symulacja ewakuacji ludzi z płonącego budynku
  5. Metaheurezy w szukaniu optymalnej ścieżki w czasie zakupów w hipermarkecie (artykuł)
  6. Inteligentna przegladarka internetowa

Przykłady tematów prac magisterskich bronionych w 2005 roku:

  1. Naśladowanie mrówek w zespołowym rozwiązywaniu problemów
  2. Zastosowanie metod sztucznej inteligencji w bezpieczeństwie serwerów internetowych
  3. Metody drążenia danych w zastosowaniach medycznych (artykuł)
  4. Animowany agent wspomagający nauczanie
  5. Metody sztucznej inteligencji w generowaniu muzyki
  6. Komputery, sztuczna inteligencja i twórczość
  7. Metody maszynowego uczenia w grach logicznych - GO
  8. Podejście wieloagentowe do rozwiązywania problemów z ograniczeniami na przykładzie zadań planowania 
  9. Algorytmy sztucznej inteligencji w projektowaniu gry - warcaby

Przykłady tematów prac magisterskich realizowanych w 2003/2004:

  1. Odkrywanie reguł z medycznych baz danych z wykorzystaniem algorytmów genetycznych (Paweł Mikołajczyk) - jest publikacja!
  2. Odkrywanie wiedzy z dokumentów tekstowych (Tomasz Rzeźniczak)
  3. Inteligentny system do wspomagania terapii jąkania (artykul)
  4. Prognozowanie kursów walut metodami wzorowanymi na naturze (Piotr Byszyński)
  5. Inteligentny agent zarządzający działaniem algorytmu genetycznego (artykuł)
  6. Projektowanie sieci neuronowych z wykorzystaniem algorytmów genetycznych (Mariusz Paradowski) - są publikacje!
  7. Projektowanie belki żelbetowej z zastosowaniem algorytmów ewolucyjnych (Tomasz Olas)

Przykłady prac magisterskich bronionych w roku akademickim 2003r.:

  1. Metody sztucznej inteligencji w grach logicznych (Łukasz Kowalski)
  2. Zastosowanie metod ewolucyjnych we wspomaganiu trójwymiarowej animacji (Piotr Woźnicki)
  3. Sztuczna inteligencja w sztuce. Generowanie obrazów i muzyki (Marcin Bober)
  4. Użyteczność algorytmów genetycznych w przygotowywaniu danych dla systemów uczących (Piotr Orski)
  5. Ewolucja organizmów w sztucznym świecie - mozliwości pojawiania się zachowań stadnych (Marcin Mikosik)

Przykłady prac magisterskich bronionych w 2002r.:

  1. Metody sztucznej inteligencji w harmonogramowaniu na przykładzie układania planu zajęć na uczelni (Maciej Norberciak)
  2. Analiza porównawcza wybranych metod wspomagających proces inwestowania w akcje, opartych na sztucznej inteligencji (Radosław Cichosz)
  3. Inteligentne sterowanie samochodem - system uczący się na podstawie obserwacji jazd prowadzonych przez człowieka (Marcin Dudała)
  4. Wyszukiwanie i rozpoznawanie tablic rejestracyjnych na zdjęciach cyfrowych (Bartosz Wawrzyniak)
  5. Identyfikacja osoby na podstawie cech pisma odręcznego (Marcin Sojka)
  6. Metody wzorowane na naturze w zadaniach 'data mining' (Sławomir Śmiałek)
  7. Zastosowanie logiki rozmytej w systemach społecznych wspomagania decyzji (DSS -Decision Support Systems) (Piotr Budkowski)
  8. Metody data mining w medycynie (Paweł Myszkowski)
  9. Algorytmy genetyczne w optymalizacji problemów z silnymi ograniczeniami - projektowanie obwodów drukowanych (Rafał Pasek)
  10. Komunikacja robotów w środowisku wirtualnym (Paweł Peryt)
  11. Strategie koegzystencji robotów w środowisku wirtualnym - podejście ewolucyjne (Piotr Pilinko)

Tematy prac magisterskich bronionych w 2001r.:

  1. Metody "Data Mining" w przewidywaniu zmian stopnia aktywności słonecznej (Ewa Szpunar)
  2. Metody sztucznej inteligencji w przewidywaniu występowania i charakterystyk rozbłysków koronalnych na podstawie ewolucji parametrów grupy plam słonecznych  (Maciej Huk)
  3. Inteligentne metody generowania kodów liniowych (Krzysztof Michalak)
  4. System ekspertowy wspomagający decyzje klienta sklepu internetowego (Michał Stańkowski)
  5. Analiza porównawcza wybranych metod rozwiązywania problemów wzorowanych na zachowaniach spotykanych w naturze na przykładzie zadania komiwojażera (Adrian Stefaniak)
  6. Wirtualna gra jako wieloagentowy system - gra w brydża (Dominik Michniewski)
  7. Metody automatycznego uczenia w grach (Artur Spirydowicz - współautorstwo książki(!))
  8. Schemat kodowania a efektywność algorytmów genetycznych   (Krzysztof Mata)
  9. Metaheurystyki w rozwiązywaniu zadań optymalizacyjnych - analiza wybranych podejść (Paweł Szkałuba)

Starsze prace magisterskie powstałe pod moim kierunkiem:

  Połączenie algorytmów genetycznych i tradycyjnych metod treningu w projektowaniu sieci neuronowych dla określonych zadań
Stworzenie systemu do projektowania sieci neuronowych realizujących określone zadanie. Struktura sieci neuronowej (liczba neuronów, połączeń) będzie ustalana przez algorytm genetyczny. Wyprodukowana przez alg. genet. sieć będzie trenowana tradycyjna metodą. Celem pracy jest sprawdzenie skuteczności projektowania sieci neuronowych metodą kombinowaną: tradycyjne uczenie i algorytm genetyczny.
   Inteligentny system komputerowy wspomagający pracę psychologa w określaniu cech charakterologicznych pacjenta
System składa się z trzech segmentów. Na poziomie niższym jest sieć neuronowa, określająca cechy osobowości na podstawie charakteru pisma oraz system wnioskujacy o tego typu cechach w oparciu o odpowiednie (stosowane przez psychologów) testy. Na poziomie wyższym jest inteligentny system, który w oparciu o wyniki z sieci i systemu wnioskującego sugeruje cechy charakterologiczne badanego pacjenta.
   Zastosowanie algorytmów genetycznych w modelowaniu ekonomicznym - gry kierownicze, giełda
Jedna z dziedzin, gdzie model jest szeroko stosowany jako narzędzie badawcze to gry kierownicze.Wiekszość gier wymaga opracowania mdelu odzwierciedlającego zależności i oddziaływania pomiedzy obiektami wystepującycmi w grze. Algorytmy genetyczne mogą być wykorzystane do poszukiwania optymalnej strategii postepowania w grze kierowniczej. Zaprojektowana gra modeluje (w sposób uproszczony) konkurencję producentów napojów na rynkach zaopatrzenia oraz zbytu. Optymalna strategia takiej gry jest poszukiwana przez algorytm genetyczny.
   Inteligentny system do wspomagania nauczania czytania i pisania dla dyslektyków
Pozyskanie wiedzy na temat sposobów pracy z dyslektykami przy wspomaganiu ich w nauce czytania i pisania (literatura plus współpraca z odpowiednim pedagogiem). Zaprojektowanie (i prototypowa implementacja) komputerowego systemu, który w zależności od uzyskiwanych postępów w nauce i predyspozycji dyslektyka potrafi prowadzić jego naukę.

Moje wymagania w stosunku do studentów realizujących prace magisterskie pod mim kierunkiem

   Pracę magisterską zaczyna się realizować na ósmym semestrze. Realizacja jej powinna zająć trzy semestry (ósmy, dziwiąty i dziesiąty). Tego też wymagam od moich dyplomantów. Poza tym oczekuję zaangażowania w realizację pracy (tylko wtedy można zrobić coś dobrego, gdy podchodzi się do tego emocjonalnie), własnej inicjatywy i pomysłowości. Otwarty i chłonny umysł, pomysłowość, ciekawość - co w tym zakresie zrobili inni - systematyczność i zapał do pracy to cechy pomagające dobrze wykonać pracę magisterską. Bez oporów oceniam pracę magisterską jako bardzo dobrą, jeśli rezultaty tej pracy można pokazać na (krajowej) konferencji lub opublikować w (niezbyt wymagającym) czasopiśmie.

strzalka.jpg (933 bytes) Powrót na poczatek strony

lemmin.gif (580 bytes)

Tematyka doktoratów

  1. Ocena czasu wykonania programów równoległych w środowiskach gridowych (mgr inż. Marcin Pawlik otw. w 2006.)
  2. Ewolucyjna organizacja przepływu w szkieletowych sieciach komputerowych (mgr inż. Michał Przewoźniczek, otw. w 2005.)
  3. Pozyskiwanie wiedzy z obrazów (mgr inż. Mariusz Paradowski, otw. w 2005.)
  4. Podejście agentowe do problemów spełniania ograniczeń (mgr inż. Paweł Peryt, otw. w 2005.)
  5. Wykrywanie nowości w szeregach czasowych z wykorzystaniem sztucznych systemów immunologicznych (mgr inż. Rafał Pasek, otw. w 2005.)
  6. Analiza zbiorów reguł w pozyskiwaniu wiedzy z danych (mgr inż. Ewa Szpunar-Huk, otw. w 2004.)
  7. Projektowanie systemów edukacyjnych (mgr inż. Sebastian Wyrwał, otw. w 2004., bez studiów doktoranckich)
  8. Hybrydowe metody sztucznej inteligencji w rozwiązywaniu rozległych, silnie ograniczonych problemów planowania (mgr inż. Maciej Norberciak, otw. w 2003.)
  9. Selekcja atrybutów dla zadań klasyfikacji (mgr inż. Krzysztof Michalak, bez studiów doktoranckich)
  10. Modelowanie zjawiska kierowania uwagi przy pomocy sztucznych sieci neuronowych w zadaniu klasyfikacji (mgr inż. Maciej Huk, otw. w 2002, obrona: 30 stycznia 2007.)

Tematyka będąca w obszarze moich zainteresowań (nie mam pomysłów na gotowy doktorat!):

  1. Systemy wieloagentowe (w zastosowaniach do rozwiązywania probelmów)
  2. Systemy hybrydowe (łączące różne techniki inteligentne)
  3. Analiza porównawcza systemów uczących się na przykładzie wybranego zadania, opracowanie hybrydowej (?) metody wykorzystującej zalety badanych metod (podejść)
  4. Techniki inteligentne w inżynierii oprogramowania (np. jako narzędzie wspomagające projektowanie systemów informatycznych)
  5. Inteligentne techniki w zastosowaniach do zdalnego nauczania
  6. Inteligentni asystenci (dla różnych zadań, np.asystent wspomagający projektowanie systemów ekspertowych, w tym - proces pozyskiwania, formalizacji i weryfikacji wiedzy, albo wspomagający pozyskiwanie wiedzy z baz danych)
  7. Najciekawsze zwykle okazują się propozycje kandydatów na doktorów (bo ich interesują!)

 

strzalka.jpg (933 bytes) Powrót na poczatek strony