Ryszard Tadeusiewicz Wykorzystanie sieci neuronowych do przewidywania zachowań ludzi w systemach automatyki Niniejszy referat, prezentowany na XIV Konferencji Automatyków dowodzi, że czasem rozwój pewnych aktywności, także badań naukowych, przebiega wzdłuż swoistej spirali. Oznacza to, że po przebyciu długiej drogi powraca się do zagadnień, które już wcześniej były rozważane, ale dyskutuje się je na zupełnie nowym poziomie. Tak jest właśnie z tym referatem. Jeśli ktoś ma dobrą pamięć i był związany z konferencją w Rytrze przez te wszystkie lata, to przypomni sobie zapewne, że na pierwszej Konferencji z tej serii także był prezentowany referat o sieciach neuronowych (Tadeusiewicz R.: Sieci neuronowe jako nowe narzędzie automatyki i informatyki. W materiałach "Konferencji Automatyków", Rytro, 20-21.05,1997). Referat zaprezentowany w tym roku ma jednak wyraźnie odmienny zakres tematyczny a więc jest rzeczywiście powrotem do tej samej tematyki ale na zupełnie innym poziomie. Typowe zastosowania sieci neuronowych wiążą się z modelowaniem różnych systemów i różnych procesów, przy czym na Konferencjach Automatyków w naturalny sposób interesujące są model systemów i procesów związanych z automatyką i sterowaniem a także metrologią i teletransmisją danych. Jak wiadomo mając model jakiegoś systemu albo procesu możemy osiągać wiele celów (rys. 1). Rys. 1. Korzyści techniczne pochodzące z posiadania modelu określonego systemu Ryszard Tadeusiewicz, Wykorzystanie sieci neuronowych do... str. 1
Można korzystać z modelu podczas projektowania zmian i modyfikacji w istniejącym systemie lub przy tworzeniu całkiem nowych systemów. Można opierać się na modelu podczas sterowania wybranego procesu. Można korzystać z modelu gdy trzeba prowadzić kontrolę i monitoring systemu. Model bywa bardzo przydatny przy diagnozowaniu ewentualnych usterek lub awarii w systemie. Model można także wykorzystywać jako narzędzie prognostyczne. Ten ostatni wątek będzie w tej pracy szerzej dyskutowany w dosyć specyficznym kontekście. Jak wiadomo model dowolnego systemu można zbudować na dwa sposoby (patrz rys. 2): albo odwzorowując w modelu znane zależności opisujące modelowany system w kategoriach przyczynowo skutkowych z dokładnym odwzorowaniem struktury wewnętrznej i procesów zachodzących w modelowanym systemie albo tworząc model behawioralny, którego wewnętrzna struktura absolutnie nie aspiruje do tego, żeby odwzorowywać strukturę badanego systemu ale który zachowuje się dokładnie tak, jak badany system, w związku z czym umożliwia skuteczne przewidywanie na przykład skutków określonego sterowania. Dla celów automatyki ten drugi rodzaj modelu zwykle bywa wystarczający. Rys. 2. Dwa rodzaje modeli możliwych do użycia w automatyce Jednym z najlepszych narzędzi do budowy modeli rozmaitych systemów są niewątpliwie sieci neuronowe. Ich zaletą jest fakt, że przy tworzenia modelu dowolnego systemu nie wymagają żadnych założeń teoretycznych, żadnych opisów formalnych, nawet praca programisty nie jest potrzebna. Dzieje się tak, gdyż model neuronowy (działający i wykazujący się często bardzo dobrymi właściwościami w sensie zgodności zachowania modelu i rzeczywistego obiektu) powstaje w wyniku procesu automatycznego uczenia, polegającego wyłącznie na obserwacji koincydencji sygnałów wejściowych i wyjściowych pojawiających się podczas normalnej eksploatacji obiektu (Rys. 3). str. 2 Ryszard Tadeusiewicz, Wykorzystanie sieci neuronowych do...
Rys. 3. Tworzenie z pomocą sieci neuronowej modelu rzeczywistego obiektu Model, który w ten sposób powstaje, może być łatwo wykorzystany w praktyce na tej zasadzie, że gdy w strukturze sieci zostanie już zgromadzona odpowiednia wiedza (ulokowana w sieci neuronowej w tak zwanych wagach synaptycznych) to wystarczy na wejście sieci podać sygnał reprezentujący dane zadania do rozwiązania a sieć korzystając z tej nabytej wiedzy znajdzie rozwiązanie (Rys. 4). Rys. 4. Nauczona sieć neuronowa, stanowiąca użyteczne narzędzie obliczeniowe. Ryszard Tadeusiewicz, Wykorzystanie sieci neuronowych do... str. 3
Wyjątkowo miłą cechą sieci neuronowej jest fakt, że przy tworzeniu modelu określonego obiektu nie są wymagane związki przyczynowo skutkowe tylko określona koincydencja sygnałów na wejściu i na wyjściu. W rzeczywistym systemie zawsze określona przyczyna wywołuje określony skutek. Na przykład odpowiednie sterowanie maszyny wywołuje określony skutek (sposób działania maszyny), który można oceniać poprzez pomierzenie określonych parametrów (Rys. 5 górna cześć). Rys. 5. Możliwość używania sieci neuronowej jako modelu odwrotnego Zwykły model zachowuje tę kolejność, to znaczy ma na wejściu odpowiednik sygnału sterującego, a na wyjściu zachowanie modelowanego obiektu wyrażone poprzez jego parametry. Sieć neuronowa nie śledzi jednak zależności przyczynowych tylko koincydencje wejść i wyjść, może więc posłużyć łatwo do wyznaczenia modelu odwrotnego (Rys. 5 dolna część). Wystarczy mianowicie podczas uczenia podawać na jej wejście skutki (parametry opisujące zachowanie sterowanego systemu), a na wyjściu podawać, jakie było aktualne sterowanie. Jeśli proces uczenia przebiegnie poprawnie to sieć powinna nabyć umiejętności odpowiadania na ważne (z praktycznego punktu widzenia!) pytania: jakie należy zastosować sterowanie aby uzyskać określony wyniki, wyrażający się w postaci pożądanych wartości parametrów opisujących zachowanie sterowanego systemu? str. 4 Ryszard Tadeusiewicz, Wykorzystanie sieci neuronowych do...
Oczywiście taka próba budowy modelu odwrotnego przy użyciu sieci neuronowej może się nie powieść. Dzieje się to głównie wtedy, gdy zależność pomiędzy sterowaniem i jego skutkiem jest niemonotoniczna (patrz rys. 6). Rys. 6. Ograniczenia możliwości stosowania sieci neuronowych jako modeli odwrotnych Widoczna na rysunku po lewej stronie charakterystyka sterowania daje szansę na skuteczne zbudowanie modelu odwrotnego, ponieważ zarówno dla zadania wyznaczenia skutku dla zadanego sterowania (niebieskie strzałki) jak i dla zadania znalezienia sterowania zapewniającego określony skutek (zielone strzałki) rozwiązanie jest jednoznaczne. Przy niemonotonicznej charakterystyce sterowania przedstawionej po prawej stronie rysunku sytuacja się jednak komplikuje. Nadal zachowana jest jednoznaczność związku sterowania ze skutkiem, jaki to sterowanie wywołuje (patrz niebieskie strzałki). Natomiast nie jest zachowana jednoznaczność odpowiedzi na pytanie: jakie sterowanie zastosować, żeby uzyskać pewien ustalony skutek (zielone strzałki), gdyż ten sam efekt można uzyskać na wiele sposobów. Ciekawym zastosowaniem sieci neuronowych jest tworzenie modeli prognostycznych. Skoro sieć może zbudować model wiążący dowolne wejścia z dowolnym wyjściem to można spróbować zbudować model neuronowy, w którym przeszłość (czyli zaobserwowany szereg zdarzeń w przeszłości) może posłużyć do tego, żeby odgadnąć przyszłość. Przykładem może być seria notowań kursów określonej waluty. Jeśli wiem, jaki jest na przykład kurs Euro dzisiaj, a także znam zmiany notowań na przestrzeni poprzedniego tygodnia lub miesiąca to mogę spróbować zgadnąć, jaki będzie kurs jutro. W tym modelu rozumowania przejawia się wiara w to, że przeszłość determinuje przyszłość, zaś fakt, że nikt tego związku przeszłości z przyszłością nie jest w stanie ściśle opisać matematycznym wzorem nie stanowi żadnej przeszkody dla sieci neuronowej, gdyż ona takiego formalnego opisu budowanego modelu po prostu nie potrzebuje. Wystarcza kolekcja przykładów, pokazujących jak w historii (której Ryszard Tadeusiewicz, Wykorzystanie sieci neuronowych do... str. 5
próbką może być na przykład zbiór notowań kursów walut na przykład z ostatnich dwóch lat) po określonej sekwencji wcześniejszych notowań następował określony skutek (spadek albo wzrost kursu). Sieć może starać się nauczyć na podstawie takich wcześniejszych obserwacji i może potem prognozować rozważane zdarzenie także na danych aktualnych. Rys. 7. Użycie sieci neuronowej jako narzędzia prognostycznego Modeli prognostycznych opartych na wykorzystaniu sieci neuronowych zbudowano i opisano bardzo dużo. Z zasady dotyczyły one jednak zagadnień prognostycznych związanych z opisanymi wyżej zagadnieniami ekonomicznymi (kursy akcji, walut, opcji itd.), z jakimiś procesami przyrodniczymi (na przykład prognozy pogody) albo z systemami technicznymi (na przykład prognoza obciążenia systemu energetycznego). Natomiast rzadko korzysta się z możliwości, jaką dają sieci neuronowe przy modelowaniu, a w konsekwencji także prognozowaniu zachowań ludzi. Obszar prognozowania zachowań ludzi wydaje się na pierwszy rzut oka daleki od zastosowań technicznych. Modelowanie maszyny tak, modelowanie, modelowanie sterowania jak najbardziej, modelowanie materiału podlegającego cieplnej albo plastycznej obróbce owszem, też jest możliwe. Ale modelowanie człowieka? Tymczasem systemy, z jakimi mamy do czynienia w nowoczesnej inżynierii, są wciąż systemami antropotechnicznymi i długo tak pozostanie mimo postępującej automatyzacji. Chcąc w pełni panować nad takimi systemami musimy przewidywać także zachowania ludzi. Jest to potrzebne na etapie projektowania nowoczesnych systemów antropotechnicznych oraz podczas ich sterowania. Jak się dobrze zastanowić, to właściwie nie jest to nic nowego. Dawniej przy projektowaniu urządzenia z ręcznym napędem inżynier musiał brać pod uwagę wiedzę o tym, jak dużą siłę może wytworzyć człowiek, żeby prawidłowo zaprojektować długość korby, za pomocą której pracownik napędzał maszynę siłą swoich mięśni. Dzisiaj rzadko zdarza się, żeby ludzie musieli występować w roli elementów napędzających maszynę, natomiast ich rolą jest udział w procesie sterowania chociażby w roli dyspozytorów stawiających zadania systemom automatyki. W tej roli pomiar siły mięśni nie odgrywa roli, natomiast ważny jest element str. 6 Ryszard Tadeusiewicz, Wykorzystanie sieci neuronowych do...
przewidywania zachowania, zwłaszcza w takich scenariuszach, w których człowiek działa z własnej woli, a więc w sposób pozornie nieprzewidywalny. Dla modelowania zachowania człowieka nie można użyć modeli typu przyczynowego, bo nie wiemy, jakie są motywacje takich czy innych działań. Natomiast możliwe jest zbudowanie modelu behawioralnego, właśnie opartego na sieci neuronowej, która może się nauczyć imitować działanie człowieka. Taka sieć oczywiście nie znając odpowiedzi na pytanie, dlaczego tak się dzieje może pokazać, co z dużym prawdopodobieństwem człowiek zrobi. W referacie będzie omówiona metodyka doświadczenia pokazanego na rysunku 8, które zostało przeprowadzone przez autora w celu udowodnienia, że sieć neuronowa po odpowiednim procesie nauki może przewidywać zachowanie człowieka. Dla ułatwienia przeprowadzenia rozważanego eksperymentu założono, że badane zachowanie człowieka będzie polegało na naciskaniu klawiszy komputera, a zadaniem, które człowiekowi postawiono jest imitowanie rzutu monetą czyli człowiek w kolejnych chwilach podaje (ze swojej wyobraźni) wynik rzutu monetą (orzeł czy reszka?). Rys. 8. Schemat doświadczenia wykonanego przez autora Wykonane eksperymenty dowiodły, że zachowanie człowieka da się przewidzieć, w odróżnieniu od rzeczywistego eksperymentu fizycznego rzutu prawdziwą monetą. Dla ułatwienia śledzenia przebiegu eksperymentu i jego wyniku stworzono rodzaj gry, w której sieć neuronowa otrzymuje +1 punkt za każdy prawidłowo odgadnięty ruch człowieka oraz traci 1 punkt za każdą pomyłkę. Sieć cały czas uczy się obserwując zachowanie człowieka, w wyniku czego jej przewidywania na temat tego, co on zrobi za chwilę są coraz lepsze. Ryszard Tadeusiewicz, Wykorzystanie sieci neuronowych do... str. 7
Na rysunku 9 pokazano wynik opisanej wyżej gry. Rys. 9. Prezentacja zmian punktacji w opisanej grze. Szczegóły w tekście Różnokolorowe linie odpowiadają różnym graczom. Widać wyraźnie, że zachowanie niektórych z nich było łatwo przewidywalne od samego początku, zresztą ci łatwo przewidywalni poddali się dość szybko (po około pięciuset rzutach zrezygnowali z gry). Natomiast zachowanie innych ludzi było trudniejsze do przewidzenia (sieć zaczęła poprawnie przewidywać ich zachowania dopiero po około dwustu próbach), ale też ci ambitni długo walczyli poddali się dopiero po ponad półtora tysiąca rzutów. Niemniej na prognozującą sieć neuronową nie było mocnych : Każdego człowieka po pewnym czasie bezbłędnie rozszyfrowała i potrafiła przewidzieć, co zrobi. Po tym, jak sieć nauczy się przewidywać wyniki, obserwujemy już tylko stabilny wzrost przewagi punktowej. Znaczy to, że człowiek mając jeden algorytm postępowania (w rozważanym eksperymencie - generowania liczb losowych), trzyma się go przez cały okres prowadzonego badania. Dla porównania na wykresie pokazano także próbę gry w przypadku, kiedy ciąg wejściowy był naprawdę nieprzewidywalny. Linia czarna to punkty przyznane sieci w czasie gry z ciągiem prawdziwie losowym (rzuty rzeczywistą monetą). Widać, że sieć nie miała tu żadnych szans nie tylko nic nie wygrywała, ale jej przegrana stale rosła, zgodnie zresztą z oszacowaniami uzyskiwanymi w opisach fizyki statystycznej (na przykład dla ruchów Browna). Podsumowując można stwierdzić, że można wykorzystać sieci neuronowe jako modele pozwalające przewidywać i symulować zachowania człowieka w określonych sytuacjach, w tym także przy obsłudze systemów automatyki. Zaprezentowane wyniki prostego doświadczenia przeprowadzonego przez autora (od strony technicznej badania prowadził dyplomant Marcin Wosinek) wskazują na to, że takie próby przewidywania warto podejmować. str. 8 Ryszard Tadeusiewicz, Wykorzystanie sieci neuronowych do...
Bibliografia Dudek-Dyduch E., Tadeusiewicz R., Horzyk A.: Neural network adaptation process effectiveness dependent of constant training data availability, Neurocomputing, vol. 72, Nr. 13-15, 2009, pp. 3138 3149 Gajecki L., Tadeusiewicz R.: Architectures of Neural Networks applied for LVCSR Language Modeling, 7th Conference Computer Methods and Systems. ISBN 83-926420-5-4, Oprogramowanie Naukowo-Techniczne, Kraków, 2009, pp. 33-38 Szaleniec M., Tadeusiewicz R., Witko M.: How to select an optimal neural model of chemical reactivity?, Neurocomputing, Nr. 72, 2008, pp. 241 256 Tadeusiewicz R.: Modelowanie elementów systemu nerwowego z wykorzystaniem technik informatycznych, a zwłaszcza sztucznych sieci neuronowych. Rozdział w książce: Francuz. P. (red.): Na ścieżka neuronauk, KUL, Lublin 2010, str. 13-34 Tadeusiewicz R.: O celowości zastosowania sieci neuronowych w problemach związanych z elektrotechniką, Przegląd Elektrotechniczny, ISSN 0033-2097, Vol. 85, Nr. 2, 2009, str. 200-211 Tadeusiewicz R.: Computer modeling of self-learning processes in neural network with some psychological remarks. In Makikawa M., Wojcicki J.M. (eds.): New Trends in Biomedical and Clinical Engineering. Proceedings of 104th ICB Seminar, 10th Polish Japanese Seminar, International Centre of Biocybernetics, Warsaw, 2009, pp. 43-44 Tadeusiewicz R.: Neural network as a tool for medical signals filtering, diagnosis aid, therapy assistance and forecasting improving, In Dössel O., Schlegel W.C. (eds.): IFMBE Proceedings, Vol. IV: Image processing, biosignals processing, modelling and simulation, biomechanics. Springer Verlag, ISSN 1680-0737 ; vol. 25; e-isbn 978-3-642-03895-2 ; ISBN 978-3-642-03897-6), Berlin, Heidelberg, New York, 2009, pp. 1532 1534 Tadeusiewicz R.: Sieci neuronowe jako narzędzia do rozwiązania zadań inżynierskich, Napędy i Sterowanie ISSN 1507-7764, nr 2 (118), 2009, str. 92-102 Tadeusiewicz R.: Using Neural Models for Evaluation of Biological Activity of Selected Chemical Compounds. Chapter (Nr. 6) in book: Smolinski T.G, Milanova M.G. and Hassanien A.-E. (Eds.): Applications of Computational Intelligence in Biology, Current Trends and Open Problems, Studies in Computational Intelligence, Vol. 122, Springer- Verlag, Berlin Heidelberg New York, 2008, pp. 135-159 Tadeusiewicz R., Grabska-Chrząstowska J., Polcik H.: Attempt of neural modelling of castings crystallisation control process. Computer Methods in Material Sciences (ISSN 1641-8581) vol. 8, No. 2, 2008, pp. 58-69 Tadeusiewicz R.: Sieci neuronowe jako nowe narzędzie automatyki i informatyki. W materiałach "Konferencji Automatyków", Rytro, 20-21.05,1997 Ryszard Tadeusiewicz, Wykorzystanie sieci neuronowych do... str. 9