Spis treści I. Systemy Eksperckie

advertisement
Spis treści
I. Systemy Eksperckie
1.Podstawy
1.1 Ogólna budowa
1.2 Struktura
1.2.1 Rodzaje systemów eksperckich
1.2.2 Zastosowanie systemów eksperckich
1.3 Własności
I. Systemy Eksperckie
1.Podstawy
System ekspercki jest programem komputerowym, zaprojektowany do
wykonywania złożonych zadań o podłożu intelektualnym. System ten powinien
owe zadania wykonywać tak dobrze jak człowiek będący ekspertem w
dziedzinie, której to zadanie dotyczy. Jednak ich zadanie nie ogranicza się do
rozwiązywania takich problemów, mogą bowiem także stanowić narzędzie
wspomagające decyzje "ludzkich" ekspertów, podpowiadając im ewentualne
rozwiązania. Systemy eksperckie (ekspertowe) są zwane także systemami
doradczymi i stanowią jedną z gałęzi stosowanej sztucznej inteligencji - AI.
Podstawowa idea systemu ekspertowego polega na przeniesieniu wiedzy
eksperta do programu komputerowego, wyposażonego w bazę wiedzy,
konkretne reguły wnioskowania oraz język komunikacji z użytkownikiem lub
interfejs
graficzny
na
taką
komunikację
pozwalający.
Cała
wiedza
zgromadzona w systemie może być wykorzystywana wielokrotnie przez wielu
użytkowników, zwracających się do komputera, kiedy potrzebują rady.
Komputer zaś, zwraca nam najlepszą, jego zdaniem radę, i jeśli to konieczne
tłumaczy logikę na podstawie, której powstały wnioski wyjściowe. System
ekspercki może także określać system, który niekoniecznie zastępuje
człowieka-eksperta.
Określamy
tym
terminem
również
systemy
wykorzystywane w sytuacjach, gdy człowiek, mimo iż posiada ogromną
wiedzę na dany temat, nie jest w stanie wykorzystać jej w sposób optymalny.
Dotyczy to np. podejmowania decyzji w trakcie pracy elektrowni, czy podczas
startu i samego lotu statków kosmicznych. Szereg zachodzących wówczas
procesów wymaga stałego monitorowania w czasie rzeczywistym. Mimo tego,
że w trakcie startu promu kosmicznego pracuje sztab inżynierów, i tak bez
odpowiedniego oprogramowania nie są oni w stanie ogarnąć kilku tysięcy
procesów, informacji z czujników i podejmować optymalnych decyzji
w ograniczonym do minimum czasie.
Najważniejsze cechy systemów eksperckich to:
•
zgromadzenie najpełniejszej i kompetentnej wiedzy z danej dziedziny i
możliwość jej aktualizacji w związku z postępem naukowym i
technicznym
•
umiejętne naśladowanie sposobu rozumowania człowieka-eksperta,
który stosuje on przy rozwiązywaniu problemów tego samego typu
•
zdolność wyjaśnienia toku "rozumowania", który doprowadził do
otrzymanych wyników
•
tzw. "user friendly" interfejs, czyli przyjazny sposób komunikowania się z
użytkownikiem w jego ojczystym języku i takie przedstawienie wyników,
aby były klarowne i przejrzyste.
Inny sposób scharakteryzowania systemów eksperckich to ich ogólny
podział.
Można
podejmujące
je
podzielić
decyzje
bez
na trzy kategorie: doradcze (advisory),
kontroli
człowieka
(dictatorial),
krytykujące
(criticizing). Pierwsze z nich doradcze przedstawiają człowiekowi pewne
rozwiązania, a on jest w stanie ocenić to rozwiązanie i wybrać takie, które jest
najodpowiedniejsze lub zażądać innego rozwiązania. Systemy podejmujące
decyzje bez kontroli człowieka są to takie systemu, które nie "konsultują"
wyników końcowych z użytkownikiem. Dotyczy to sytuacji, gdy udział
człowieka jest utrudniony lub niemożliwy np. sterowanie obiektami w trudnym
terenie
lub
w
przyjmowaniem
kosmosie.
jako
Systemy
wartości
krytykujące
wejściowe:
charakteryzują
postawionego
problemu
się
i
ewentualnego rozwiązania. Rola systemu sprowadza się do analizy problemu i
skomentowania zaproponowanego rozwiązania.
Budowa systemu eksperckiego wymaga zbudowania bazy wiedzy
eksperta i stworzenie dla niej odpowiedniej struktury jest często pracochłonne i
czasochłonne.
wykorzystywany
Opłaca
w
się
więc
odpowiednio
wówczas,
długim
gdy
czasie
i
system
ten
będzie
przez
dużą
liczbę
użytkowników. Jest to opłacalne także dlatego, że system może być
wykorzystywany już bez udziału człowieka-eksperta, jest on uwolniony od
przeprowadzania powtarzających się analogicznych ekspertyz i dzięki temu
może zająć się on bardziej twórczymi zadaniami. Ważna jest także możliwość
zgromadzenia w systemie wiedzy wielu ekspertów. Jest to w bezpośrednio
przekładalne na "wiarygodność" rozwiązań. W latach siedemdziesiątych
dokonano spostrzeżenia, że moc systemu tkwi w zakodowanej w systemie
wiedzy, a nie w sposobie wnioskowania, jakim się on posługuje. Można po
prostu stwierdzić, że im pełniejsza wiedza, tym rozwiązanie jest bardziej
wiarygodne i uzyskiwane szybciej. Konstruowanie systemów ekspertowych
jest jednym z zagadnień tzw. inżynierii wiedzy (knowledge engineering).
Celem inżynierii wiedzy jest pozyskiwanie wiedzy z określonej dziedziny, jej
przetwarzanie, stworzenie dla tej wiedzy odpowiedniej struktury. Zajmuje się
także rozwijaniem metodologii i narzędzi budowy systemów ekspertowych. W
szczególności obejmuje ona tworzenie metod programowania:
•
pozyskiwania i tworzenia struktur dla wiedzy ekspertów
•
dopasowywania i wyboru odpowiednich metod wnioskowania i
wyjaśniania rozwiązań problemów
•
tworzenie interfejsów pośredniczących w komunikacji pomiędzy
komputerem a użytkownikiem.
1.1 Ogólna budowa
Krótki opis elementów składających się na system ekspercki.
•
•
•
Baza wiedzy - (Knowledge Base) Część systemu zawierająca wiedzę o
dziedzinie oraz o podejmowaniu decyzji przez eksperta. Zawiera fakty i
reguły.<\li>
Kontroler wywodu - (Inferface Engine) Część systemu kierująca
rozwiązaniem problemu. Jest odpowiedzialna za poprawne
wykorzystanie wiedzy zgromadzonej w bazie wiedzy.
Interfejs - Część systemu zajmująca się komunikacją ze światem
zewnętrznym, czyli z użytkownikiem. Ma charakter urządzenia typu
wejście/wyjście.
1.2 Struktura
Jeśli w sposób bardziej szczegółowy zaczniemy rozpatrywać strukturę
systemów eksperckich to wówczas możemy wyróżnić następujące elementy:
•
•
•
•
•
•
baza wiedzy, np. zbiór reguł
baza danych, np. wyniki pomiarów, dane o obiekcie, hipotezy
procedury wnioskowania - maszyna wnioskująca
procedury objaśniania - wyjaśnienie strategii wnioskowania
procedury sterowania dialogiem - formułowanie zadań przez
użytkownika poprzez procedury wejścia/wyjścia i przekazywanie
wyników przez program (zadania wykonywane przez interfejs)
procedury pozwalające na poszerzenie zakresu wiedzy i jej modyfikację
1.2.1 Rodzaje systemów eksperckich
Jednym ze sposobów na ocenę systemu eksperckiego jest udzielenie
odpowiedzi na pytanie, jaki rodzaj wyników otrzymujemy na jego wyjściu.
Możemy je podzielić na trzy zasadnicze grupy:
•
•
•
diagnozy - są oceną stanu istniejącego na podstawie posiadanych
danych
prognozy - zawiera przewidywania dotyczące stanu przyszłego na
podstawie istniejących danych
plany - to stan do jakiego należy dążyć, kierując działaniem "obiektu".
Oczywiście łączenie ze sobą tych trzech typów systemów jest możliwe, a
czasem nawet wskazane, gdy zachodzi potrzeba stworzenia systemu
obejmującego swym zakresem procesów bardzo złożonych. Połączenie
diagnozy, prognozy i planowania to stworzenie systemu sterującego dla np.
promów kosmicznych. Można przedstawić szerszy podział systemów
eksperckich. Oto on:
Kategoria
Zadania przez system realizowane
systemu
dedukują opisy sytuacji z obserwacji lub
Interpretacyjne stanu czujników np. rozpoznawanie mowy,
obrazów
wnioskują o przyszłości na podstawie danej
Predykcyjne
sytuacji np. prognozowanie pogody, rozwój
choroby
ocena systemu na podstawie obserwacji
Diagnostyczne
(wykrywanie wad) np. elektronika, mechanika
konfiguruje obiekt biorąc pod uwagę
Kompletowania istniejące ograniczenia np. konfiguracja
systemu komputerowego
Planowanie
Monitorowanie
Sterowanie
Poprawianie
Naprawy
Instruowania
podejmuje określone działania do osiągnięcia
celu
porównywanie zachodzących zjawisk z
ograniczeniami nałożonymi na nie np. reakcje
w elektrowniach atomowych
kierowanie działaniem systemu; w skład
wchodzi interpretowanie, predykcja, naprawa
i monitorowanie zachowania się obiektu
podaje sposób postępowania w przypadku
nieprawidłowego funkcjonowania obiektu,
którego system dotyczy
ustala kolejność wykonywania napraw
uszkodzonych obiektów
systemy doskonalenia zawodowego dla
studentów
Jeśli chodzi o podział systemów ze względu na sposób realizacji to
możemy je podzielić na: systemy dedykowane oraz systemy szkieletowe.
Systemy dedykowane są tworzone od podstaw przez inżyniera wiedzy
współpracującego z informatykiem. Systemy szkieletowe (shells)> są to
systemy z pustą bazą wiedzy. Te systemy są tworzone w krótszym czasie,
gdyż nie trzeba konstruować całej struktury systemu, a jedynie istniejącą już
uzupełnić o konkretną wiedzę i jej odpowiednią implementację w systemie. W
zależności od tego jaką wiedzę wprowadzimy do systemu możemy uzyskać
system z wiedzą: eksperta-lekarza, eksperta- inżyniera, czy ekspertaprawnika.
Istnieje także podział systemów eksperckich ze względu na metodę
prowadzenia wnioskowania:
•
•
•
z logiką dwuwartościową (Boole'a)
z logiką wielowartościową
z logiką rozmytą.
Jeszcze inny podział to ze względu na rodzaj przetwarzanej informacji. Można
je podzielić na:
•
•
systemy z wiedzą pewną (zdeterminowaną),
systemy z wiedzą niepewną (w przetwarzaniu wykorzystuje aparat
probabilistyczny).
1.2.2 Zastosowanie systemów eksperckich
Sektor
Bankowość i Przemysł
Handel i
Sektor
Zastosowanie ubezpieczenia
usługi
publiczny i
inne
nadzorowanie
monitorowanie
procesów,
reaktorów
sterowanie
Monitorowanie obserwowanie
obserwowanie jądrowych
procesami,
Sterowanie
trendów
trendów
oraz dużych
raportowanie
sieci (gazowe,
specjalnych
wodne)
sytuacji
projektowanie wybór
sieci
zakładów i
asortymentów,
Projektowanie (pocztowe,
produktów, doradztwo dla
energetyczne)
komputerów rolnictwa
kredyty,
wykrywanie
pożyczki na
diagnoza
uszkodzeń,
kredyty,
nieruchomości,
medyczna,
Diagnostyka
utrzymywanie
analiza ryzyka diagnoza
analiza ryzyka,
zdolności
przetwarzanie
techniczna
produkcyjnej
skarg
planowanie
projektowanie
inwestycji,
analiza ryzyka, funkcji
analiza
planowanie na
Planowanie
planowanie
logicznych, ryzyka,
wypadek
inwestycji
planowanie analiza rynku klęski,
projektu
planowanie
dystrybucji
1.3 Własności
Podstawowe
zadanie
systemu
eksperckiego
to
wydawanie
kompetentnych i pełnych ekspertyz. Powinno się to odbywać w czasie
ograniczonym pewnymi, dopuszczalnymi granicami, w których przy danym
typie zadania powinna się pojawić odpowiedź systemu. Sam system powinien
dysponować takimi metodami wnioskowania, które biorą pod uwagę wiedzę i
intuicję eksperta, zdobytą w trakcie wieloletniej praktyki. Wówczas uzyskane
wyniki powinny być bardziej porównywalne z wynikami pracy człowiekaeksperta. Oczywiście dąży się do tego, aby system rozwiązując powierzone
mu zadanie posługiwał się rozumowanie człowieka, lecz popełniał minimum
pomyłek. Dotyczy to np. długiej serii testów, analiz chemicznych. Czasem jest
to dość skomplikowane, gdyż ekspert kierując się własną intuicją nie do końca
potrafi uzasadnić swoją decyzję lub ekspertyzę. Wprowadzenie takiego
sposobu wnioskowania do systemu może się okazać niezwykle trudna lub gdy
wymagane jest uzasadnienie wyniku, wręcz niemożliwe. Jeśli chodzi o
wymagania czasowe to często zachodzi potrzeba kompromisu pomiędzy
jakością uzyskanych wyników a szybkością działania. Niektóre systemy
uzyskują wyniki w kilka sekund, inne znów pracują całymi dniami, czy nawet
tygodniami. Zależy to także od sposoby wykorzystanego do uzyskania
odpowiedzi. Systemy wykorzystujące przeszukiwanie przestrzeni rozwiązań w
postaci drzewiastej charakteryzują się wykładniczym wzrostem czasu
uzyskania odpowiedzi. Tak więc jeśli czas jest w jakikolwiek sposób
zdeterminowany granicami, zachodzi potrzeba kompromisu, o którym wyżej
wspomniano.
Ważna cecha systemu to możliwość rozwiązywania szerokiej gamy
zadań, o różnym stopniu trudności lub zakresie wykorzystywanej wiedzy z
danej dziedziny. Nie powinien więc być zbudowany na zasadzie sztywnych,
określonych wcześniej rozwiązań lecz wykorzystywać dużą liczbę reguł, które
powinny pozwolić nie tylko na przeszukiwanie przestrzeni dostępnych
rozwiązań lecz także na pewnego rodzaju tworzenie kombinacji z dostępnych
rozwiązań. Sama dziedzina, której dotyczy system jest często wyznacznikiem
stopnia skomplikowania system eksperckiego. Nieopłacalne jest tworzenie
systemów, w których zawiera się problem rozwiązywania zadań o np. łatwym
opisie matematycznym zjawiska lub takich, w których ilość możliwych
rozwiązań jest niewielka. Wówczas z problemem poradzi sobie człowiek, bez
potrzeby odwoływania się do programu komputerowego. Ocenę złożoności
można przeprowadzić rozpatrując liczbę reguł wykorzystanych w systemie:
•
•
•
małe: 100 - 300 reguł
średnie: 300 - 2000 reguł
duże: ponad 2000 reguł
System, aby być efektywny powinien być wyposażony w cechę
charakteryzującą człowieka-eksperta, ciągłe doskonalenie i poszerzanie
swojej wiedzy. Oczywiście jeśli chodzi o system komputerowy to zdolność
zależy głównie od jego konstruktorów lub użytkowników. Ważne jest także
posiadanie przez system mechanizmów udoskonalających jego działanie.
Należą do nich:
•
•
•
•
kontroler zgodności reguł z nowo wprowadzanymi faktami
kontroler niesprzeczności nowych reguł z już w bazie zawartymi
mechanizm oceny częstości wykorzystywania poszczególnych reguł
mechanizm rozbudowy istniejącej bazy reguł poza zakres wiedzy, której
dotyczy.
II. Sztuczne sieci neuronowe.
1. Historia badań nad sieciami neuronowymi
40's:
•
•
badanie komórek ośrodkowego układu nerwowego zwierząt i człowieka,
czyli neuronów,
próby wyjaśnienia i matematycznego opisu działania błony komórkowej i
całego neuronu (McCulloh 1943).
Koniec 50's i początek 60's: pierwsze modele pojedynczych neuronów i sieci:
•
•
perceptron Rosenblatta i Wightmana (1965) - rozpoznawanie znaków
alfanumerycznych,
pierwsze neurokomputery oferowane komercyjnie (np. Madaline Widrowa).
60's i 70's: zahamowanie badań po publikacji książki Minsky'ego i Paperta
(1969) wykazującej m.in. poważną ograniczoność pola zastosowań liniowych
sieci neuronowych (zdolne jedynie do realizacji funkcji liniowych),
70's i początek 80's: sieciami zajmuje się w świecie zaledwie kilka ośrodków
(Grossberg, Hinton, Hopfield, PDP Research Group).
Początek 80's: rozwój i większa dostępność komputerowych technik symulacji
przyczynia się do stopniowej intensyfikacji badań.
Druga połowa 80's: "renesans" sieci:
•
•
•
praca Rumelharta, McClellanda i PDP Research Group "Parallel Distributed
Processing. Explorations in the Microstructure of Cognition" (1986),
popularyzacja algorytmu wstecznej propagacji błędu (backpropagation).
fala nowych koncepcji, architektur, algorytmów uczenia;
rosnące zainteresowanie ze strony specjalistów zajmujących się Sztuczną
Inteligencją, wobec kryzysu nękającego tradycyjne, symboliczne techniki
rozwijane w latach '60, '70 i '80 (Newell, Simon itp.)
'90: dalsza rosnąca popularność:
•
•
•
•
lepsze (szybsze) algorytmy uczenia,
podejścia hybrydowe (fuzzy, genetic algorithms, etc.),
rozwój sektora zastosowań w medycynie, przemyśle i innych dziedzinach,
coraz większa ilość przystępnych cenowo realizacji sprzętowych
Model neuronu używany w SSN
Statyczny lub dynamiczny; rozważany jest statyczny. Jest znacznym uproszczeniem
funkcji neuronu biologicznego (precyzyjnym modelowaniem działania neuronu
biologicznego zajmuje się tzw. neuroscience).
Neuron sztuczny = neuron = element przetwarzający (processing element), jednostka (unit)
Model sztucznego neuronu
Podstawowe elementy składowe:
•
•
•
n wejść xi (synapsy) opatrzonych wagami wi (wektor wag w i wektor wejść
x);
waga synapsy decyduje o jej ważności i wpływie na neuron odniesienia;
pobudzenie e (excitation) neuronu jako suma ważona sygnałów
wejściowych pomniejszona o próg (threshold)
Wprowadźmy wagę
Wówczas:
•
, podłączoną do stałego sygnału
funkcja aktywacji f (transfer function):
.
Rys. Schemat sztucznego neuronu
Uczenie sieci
Uczenie nadzorowane/nienadzorowane:
•
•
sieci uczone w sposób nadzorowany. Algorytm uczący adaptuje sieć
stosownie do wymuszeń zewnętrznych, starając się możliwie wiernie
(tj. z jak najmniejszym błędem) zrealizować zadaną funkcję np.
backpropagation, algorytm wstecznej propagacji błędu; każdy
neuron lokalnie zmniejsza swój błąd stosując metodę spadku
gradientu;
sieci uczone w sposób nienadzorowany. Neurony nie są
"skrępowane" żadnym zewnętrznym kryterium (funkcją błedu),
adaptacja polega np. na:
o wzmacnianiu
połączeń
(zwiększaniu
wag)
pomiędzy
neuronami, których pobudzenia wykazują pewną korelację
(np. uczenie Hebba),
o zbliżaniu wektora wag do wektora wejść (np. reguła uczenia
perceptronu, kwantyzator wektorów Kohonena); w takim
przypadku
neuron
najsilniej
reaguje
na
wektor
wejść/pobudzeń, który jest najbardziej zbliżony do jego
wektora wag.
Uczenie w jednym kroku / Uczenie iteracyjne:
•
•
sieci, w których na podstawie danych statystycznych opisujących
zbiór uczący jednorazowo ustala się wartości wag (np. standardowy
algorytm uczenia sieci Hopfielda),
sieci, w których wychodzi się z pewnej (z reguły losowej)
konfiguracji sieci (tj. wartości jej wag) i w kolejnych iteracjach,
związanych z reguły z prezentacją przykładów ze zbioru uczącego,
stara się dojść do konfiguracji najbardziej pożądanej, tj. takiej,
która minimalizuje pewną miarę błędu.
Reguły uczenia sieci
Reguła Hebba – Regułę tą wykorzystuje się do uczenia bez nauczyciela.
Sygnałem uczącym jest sygnał wejściowy neuronu. Reguła ta sprowadza
się do dodania lub odjęcia wektora wejściowego do lub od wektora wag.
Reguła perceptronowa – Stosowana do uczenia z nauczycielem. Sygnał
uczący jest różnicą między odpowiedzią pożądaną a rzeczywistą. Jest ona
wykorzystywana jedynie do sieci z neuronami dyskretnymi.
Reguła delty - podobna do reguły perceptronowej z tą różnicą że posiada
ciągłą funkcję aktywacji.
Reguła Widorowa-Hoffa dla sieci nadzorowanych o dowolnych funkcjach
aktywacji ponieważ minimalizuje błąd średni kwadratowy pomiędzy
pożądaną odpowiedzią a pobudzeniem. (szczególny przypadek reguły
delta). Wagi początkowe mogą posiadać dowolne wartości.
Reguła” wygrywający bierze wszystko” – Szczególna metoda oparta na
nauce z rywalizacją (bez nauczyciela).
Zastosowania sztucznych sieci neuronowych
Niektóre funkcje mózgu ludzkiego można zamodelować za pomocą
SSN. Do tych funkcji należą więc:
Predykcja, czyli przewidywanie sygnałów wyjściowych na podstawie
danych wzorcowych, które sieć wykorzystywała tylko w procesie uczenia.
Sieć o takiej funkcji jest stosowana najpowszechniej. Widać zupełną
analogię do mózgu człowieka, który potrzebuje danych wzorcowych tylko
do nauczenia się ich.
Klasyfikacja i rozpoznawanie. Po przez nauczenia sieci pewnych cech
charakterystycznych możliwe jest, aby sieć sposób interaktywny
rozpoznała i zakwalifikowała sygnał wejściowy. Wektor lub macierz wejść,
jest przypisywana do odpowiedniego stanu wektora lub macierzy wyjść,
będącego jednoznacznym wzorcem klasyfikacji .
Kojarzenie danych. Sieć potrafi skojarzyć dane wyjściowe podstawie
danych wejściowych, które po nauczeniu sieci mogą się mniej lub bardziej
różnić od danych wzorcowych. Sieć oblicza więc swój współczynnik
korelacji między danymi wejściowymi a nauczonym wzorcem. W
zależności od wartości tego współczynnika sieć dokonuje kojarzenia
danych.
Analiza danych . To właściwość za pomocą które sieć potrafi znaleźć
związek między danymi wejściowymi .
Filtracja sygnałów. Funkcja filtrów o dowolnym zakresie przepustowości.
Ta cecha pozwala wyeliminować sygnały, będące szumami, Sieć taka
doskonale filtruje dane które nie należą do grupy reprezentujących
pomiar, mają charakter stochastyczny . Nauczona sieć w zadziwiający
sposób radzi sobie z filtracją, bo w sposób “inteligentny” przepuszcza
sygnały do dalszej analizy, z czym nie radziły sobie zwykłe filtry.
Optymalizacja. To cecha która pozwala na dokonywanie analizy danych i
kojarzenia najlepszych z pośród możliwych rozwiązań.
Opisane wyżej cechy prawie nigdy nie występują pojedynczo. Sieć
zaprojektowana do konkretnego zastosowania zazwyczaj posiada kilka
tych własności. Wykorzystanie ich pozwala stworzyć doskonałe
urządzenia.
Kilka przykładowych zastosowań.
•
Systemy rozpoznawania, mowy, obrazu – np. w celu identyfikacji
osób
•
Systemy diagnostyczne – klasyfikacja stanów dynamicznych maszyn
•
Systemy telekomunikacyjne – optymalizacja połączeń
•
Systemy informatyczne – kompresja , selekcja danych, dynamiczne
programowanie bez użycia standardowych algorytmów
sekwencyjnych.
•
Planowanie, interpretują zjawiska stochastyczne, przewidywanie
notowań giełdowych, trendów w gospodarce oraz zjawisk
socjologicznych.
•
Systemy decyzyjne – pomagają podjąć decyzje, jeżeli dysponujemy
zbyt małą ilością danych wejściowych
•
Sterowanie i regulacja – nowoczesne systemy sterowania , z silnie
nieliniowymi zależnościami w obiektach regulacji. Planowanie
trajektorii manipulatorów i kontrola nad prawidłowością ich
odwzorowania.
•
Analiza stanów naprężeń w konstrukcjach maszyn
III. Algorytmy genetyczne.
1. Podstawy.
Sieci neuronowe powstały dzięki obserwacji i próbie naśladowania
naturalnych procesów zachodzących w systemie nerwowym organizmów
żywych. Nazwa neuron, oznaczająca podstawowy element przetwarzający
sztucznych sieci neuronowych, przejęta została bezpośrednio z
naturalnego systemu nerwowego.
Algorytmy genetyczne swoje istnienie zawdzięczają obserwacji i
próbie naśladowania naturalnych procesów zachodzących w świecie
organizmów żywych, a mianowicie ewolucji i związanej z nią naturalnej
selekcji występującej w populacjach żywych osobników.
Ideę algorytmów genetycznych przedstawił Holland na przełomie lat
sześćdziesiątych i siedemdziesiątych. Algorytmy genetyczne przejęły
szereg terminów używanych w genetyce, a przede wszystkim geny,
chromosomy, a także populacje, osobniki, allele, genotypy, fenotypy.
Algorytmy genetyczne stosowane są w programowaniu komputerów,
sztucznej inteligencji, optymalizacji, sztucznych sieciach neuronowych i
innych dziedzinach. Warto odnotować, że za ich pomocą rozwiązywano
zadania, do których wcześniej wykorzystywano sieci neuronowe. W tym
przypadku algorytmy genetyczne stanowiły po prostu inną metodę,
niezależną od sieci neuronowych, prowadzącą do rozwiązania danego
problemu.
Populacja – nazywamy zbiór osobników o określonej liczebności.
Osobnikami – populacji w algorytmach genetycznych są zakodowane w
postaci chromosomów zbiory parametrów zadania, czyli rozwiązania,
określane też jako punkty przestrzeni poszukiwań. Osobniki czasami
nazywa się organizmami.
Chromosomy – inaczej łańcuchy lub ciągi kodowe – to uporządkowane
ciągi genów.
Gen – nazywany też cechą, znakiem, detektorem – stanowi pojedynczy
element genotypu, w szczególności chromosomu.
Genotyp, czyli struktura, to zespół chromosomów danego osobnika.
Fenotyp jest zestawem wartości odpowiadających danemu genotypowi,
czyli zdekodowaną strukturę, a więc zbiorem parametrów zadania.
Allel to wartość danego genu, określana też jako wartość cechy lub
wariant cechy.
Locus to pozycja – wskazuje miejsce położenia danego genu w łańcuchu,
czyli chromosomie.
2. Klasyczny algorytm genetyczny
3. Algorytmy ewolucyjne.
4. Zastosowania algorytmów ewolucyjnych.
5. Algorytmy ewolucyjne w sieciach neuronowych.
IV. Systemy rozmyte.
Download