Systemy hybrydowe

Systemy rozmyte i algorytmy genetyczne             Systemy rozmyte i sieci neuronowe

 

Systemy rozmyte i algorytmy genetyczne

Algorytmy genetyczne umożliwiają strojenie parametrów nawet najbardziej skomplikowanych modeli rozmytych, choć może to być związane z dużą pracochłonnością.

W metodzie algorytmów genetycznych przestrzeń rozważań każdej ze zmiennych dzieli się w skończoną ilość przedziałów. Jeżeli w danym przedziale znajduje się wierzchołek funkcji przynależności, przedział ten kodowany jest liczbą 1, jeżeli nie liczbą 0. Łańcuch kodujący funkcji przynależności jednej zmiennej nazywa się chromosomem (10110000001011) a jego elementy (0 lub 1) genami.

 Rys. Przykład kodowania funkcji przynależności w postaci łańcucha genetycznego.

Zwiększając ilość genów w chromosomie ( ilość przedziałów w przestrzeni rozważań) zwiększamy rozdzielczość poszukiwań optymalnego rozwiązania. Jednak jednocześnie zwiększa się nakład pracy na znalezienie tego rozwiązania, bowiem ze zwiększoną rozdzielczością podziału gwałtownie rośnie ilość możliwych rozwiązań (“eksplozja” kombinatoryczna).

W przypadku systemów wielowejściowych kodowaniu genetycznemu podlegają wszystkie wejścia i wyjścia modelu. Jeżeli założymy, że ilość zbiorów rozmytych służących do oceny każdego z wejść i wyjść modelu, a także baza reguł i inne elementy modelu są niezmienne, to dokładność modelu zależeć będzie jedynie od położenia wierzchołków poszczególnych funkcji przynależności, czyli od rozmieszczenia jedynek w chromosomach.

Dokładność modelu, zwana funkcją dopasowania D modelu zależy więc od przyjętej reprezentacji genetycznej Ri.

Di = f(Ri)

Na początku poszukiwań generuje się pewną ilość reprezentacji tworzących tzw. populację początkową P0 = {R1/D1, ..., Rm/Dm). Może to być zrealizowane metodą losową lub inną. Każdej z reprezentacji Ri przyporządkowana jest odpowiadająca jej dokładność modelu Di.

Reprezentacje Ri zawarte w populacji początkowej służą do generowania nowych reprezentacji Ri* (rodzice generują potomków). Odbywa się to przy pomocy tzw. operatorów genetycznych zmieniających geny w odpowiednich chromosomach (przesuwanie pozycji wierzchołków funkcji przynależności).

Podstawowe operatory genetyczne to mutacja i krzyżowanie.

Mutacja – polega na stworzeniu potomka Ri* danej, pojedynczej reprezentacji Ri przez zmianę wartości jednego lub więcej genów (1® 0 lub 0® 1). W rozpatrywanym problemie strojenia wyłącznie funkcji przynależności, mutacja powinna odbywać się tak, aby ilość genów jedynkowych (zbiorów rozmytych danej zmiennej) była stała.

Krzyżowanie – polega na zamianie jednego lub większej ilości genów między dwoma chromosomami (rodzicami) w celu uzyskania nowych chromosomów (potomków). Przy wyłączonym strojeniu funkcji przynależności krzyżowanie powinno odbywać się tak, aby ilość genów jedynkowych w każdym rodzaju chromosomu (CHX1, CHX2 lub CHY) pozostawała niezmienna.

Dla każdej nowej wygenerowanej reprezentacji Rj* określa się odpowiadający jej stopień dopasowania Dj*, po czym włącza się ją do populacji pierwotnej otrzymując w ten sposób nową populację P1.

Z populacji tej odrzuca się zwykle reprezentacje najgorsze, o najniższym stopniu dopasowania (selekcja), a na pozostałych reprezentacjach dokonuje się operacji genetycznych w celu otrzymania nowego, lepszego potomstwa. Opisane wcześniej postępowanie prowadzi się tak długo, aż wśród nowo wygenerowanych reprezentacji znajdzie się taka, której stopień dopasowania spełnia postawione wymagania dotyczące dokładności modelu.

Metoda algorytmów genetycznych umożliwia poszukiwanie optymalnych rozwiązań najtrudniejszych problemów, w tym także problemów z ograniczeniami. Dlatego jej popularność i ilość zastosowań ciągle rosną. Wadą tej metody jest natomiast, wspomniana już konieczność podziału przestrzeni rozwiązań zmiennych modelu na skończoną liczbę przedziałów, tak aby reprezentacja genetyczna zawierała skończoną ilość bitów.

Dyskretyzacja przestrzeni rozwiązań uniemożliwia zwykle uzyskanie rozwiązań tak dobrych, jakie są (potencjalnie) możliwe w przypadku metod operujących w przestrzeni ciągłej, np. metody rozmytych sieci neuronowych. Jednak przy zastosowaniu odpowiedniej rozdzielczości podziału wada ta traci swe praktyczne znaczenie. Stąd metoda algorytmów genetycznych jest godna polecenia.

Jej dodatkową zaletą jest możliwość badania wpływu na dokładność modelu różnych jego elementów, takich jak rodzaj operatorów AND, OR, metod wnioskowania, metod defuzyfikacji, rodzajów użytych funkcji przynależności itd.

 

Systemy rozmyte i sieci neuronowe

Największą zaletą sieci neuronowych jest możliwość ich uczenia i adaptacji. Nie musimy posiadać szczegółowej wiedzy o procesie (np. znajomości modelu matematycznego). Na podstawie sygnałów wejściowych oraz sygnałów zadanych (wzorcowych) sieć neuronowa jest w stanie nauczyć się, jak danym procesem należy sterować. Sieci neuronowe składają się z ogromnej ilości prostych elementów przetwarzających (neuronów) połączonych wzajemnie, co w efekcie daje ogromną moc obliczeniową przetwarzania równoległego. Sposób projektowania takich układów jest niestety oparty bardziej na intuicji niż na konkretnych zależnościach. Nie znamy bowiem algorytmu pozwalającego ustalić ilość warstw i ilość elementów w poszczególnych warstwach dla konkretnego zastosowania. Niewątpliwie jednak po nauczeniu są one niezastąpione w zadaniach rozpoznawania wzorców, aproksymacji, optymalizacji, kwantyzacji wektorowej czy też klasyfikacji. Z drugiej strony wiedza, która została przez sieć neuronową nabyta, jest w tej sieci rozproszona, przez co zupełnie nieprzydatna dla obserwatora.

Wady tej pozbawione są układy sterowania z logiką rozmytą. Jednakże wiedza o sposobie sterowania jest potrzebna już w trakcie projektowania takich sterowników i musi pochodzić od eksperta (nie ma możliwości uczenia). Nie jest jednak wymagana wiedza szczegółowa, opisująca w sposób matematyczny zależność funkcyjną między wyjściem a wejściem sterownika. W odróżnieniu od zwykłych sterowników posługujemy się wiedzą jakościową (“jak”), a nie ilościową (“ile”). Decyzje są podejmowane przez układ w oparciu o bazę reguł zapisanych w postaci implikacji IF-THEN. Najprostszym podejściem do projektowania takich układów jest wyznaczenie reguł sterowania oraz tzw. funkcji przynależności na podstawie obserwacji sposobu sterowania przez człowieka lub już istniejący regulator, a następnie sprawdzenie poprawności działania takiego układu. Jeśli projekt się nie sprawdził, funkcje przynależności i/lub reguły sterowania mogą być modyfikowane. Sam sposób sterowania wynika bezpośrednio ze struktury układu i może być łatwo modyfikowany. Wadą tych układów jest brak możliwości adaptacji i uczenia.

Podstawowa struktura sztucznej sieci neuronowej przedstawiona została na rys. poniżej.

 Rys. Struktura sztucznej sieci neuronowej.

Neurony warstwy wejściowej rozprowadzają sygnały wejściowe do neuronów warstwy ukrytej. Ilość warstw ukrytych może być różna. Najczęściej stosuje się sieci z jedną warstwą ukrytą, bowiem sieć taka pozwala modelować w wystarczająco dokładny sposób wiele systemów rzeczywistych. Neurony w warstwach ukrytych i w warstwie wyjściowej przetwarzają informacje dostarczone w postaci sygnałów wejściowych. Najczęściej stosowanymi SN są wielowarstwowe sieci perceptorowe oraz sieci z neuronami zawierającymi radialne funkcje bazowe. Podstawowym elementem sieci perceptorowej jest neuron.

Zadaniem procesu strojenia (nauczania) sieci neuronowej jest aproksymacja powierzchni odwzorowania wejścia / wyjście modelowanego systemu na bazie danych pomiarowych reprezentujących ten system, zawierających informacje o jego działaniu. Prawdziwym jest następujące stwierdzenie dotyczące struktury sieci: “im bardziej skomplikowaną jest powierzchnia odwzorowania X® Y systemu, tym więcej neuronów w warstwie pośredniej potrzebnych jest do jej zamodelowania”.