Algorytmy sztucznej inteligencji



Podobne dokumenty
Identyfikacja obiektów dynamicznych za pomocą sieci neuronowych

Wstęp do teorii sztucznej inteligencji Wykład III. Modele sieci neuronowych.

Sieć Hopfielda. Sieci rekurencyjne. Ewa Adamus. ZUT Wydział Informatyki Instytut Sztucznej Inteligencji i Metod Matematycznych.

Sztuczne siei neuronowe - wprowadzenie

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Politechnika Warszawska

Podstawy Sztucznej Inteligencji (PSZT)

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM

Temat: Sieci neuronowe oraz technologia CUDA

MATLAB Neural Network Toolbox uczenie sieci (dogłębnie)

Zrealizować sieć neuronową (learnbpm) uczącą się odwzorowania z = x 2 + y 2 dla x i y zmieniających się od -1 do 1.

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Regulator PID w sterownikach programowalnych GE Fanuc

Deep Learning na przykładzie Deep Belief Networks

Podstawy sztucznej inteligencji

Podstawy Sztucznej Inteligencji

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

Metody Sztucznej Inteligencji II

Inteligentne systemy przeciw atakom sieciowym

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Laboratorium nr 2. Identyfikacja systemu i detekcja uszkodzeń na podstawie modelu

Sztuczne sieci neuronowe (SNN)

O co chodzi z tym MATLAB'em?!

Wstęp do teorii sztucznej inteligencji Wykład II. Uczenie sztucznych neuronów.

8. Neuron z ciągłą funkcją aktywacji.

Regulator PID w sterownikach programowalnych GE Fanuc

Wykład z Technologii Informacyjnych. Piotr Mika

Sieci neuronowe w Statistica

Metody i techniki sztucznej inteligencji / Leszek Rutkowski. wyd. 2, 3 dodr. Warszawa, Spis treści

Zastosowania sieci neuronowych

Rozdział 1 Sztuczne sieci neuronowe. Materiały do zajęć dydaktycznych - na podstawie dokumentacji programu Matlab opracował Dariusz Grzesiak

Podstawy Automatyki. Wykład 4 - algebra schematów blokowych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy Automatyki. Wykład 6 - Miejsce i rola regulatora w układzie regulacji. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy Automatyki. Wykład 4 - algebra schematów blokowych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Sterowniki Programowalne (SP)

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

2.2 Opis części programowej

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

SZTUCZNA INTELIGENCJA

sieci jednowarstwowe w MATLABie LABORKA Piotr Ciskowski

ELEMENTY AUTOMATYKI PRACA W PROGRAMIE SIMULINK 2013

Cyfrowe algorytmy sterowania AR S1 semestr 4 Projekt 4

Pierwsze kroki z easy Soft CoDeSys Eaton Corporation. All rights reserved.

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Kurs Zaawansowany S7. Spis treści. Dzień 1

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Prof. Stanisław Jankowski

Elementy inteligencji obliczeniowej

Podstawy Automatyki. Wykład 7 - obiekty regulacji. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Obliczenia iteracyjne

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Podstawy Automatyki. Wykład 4 - algebra schematów blokowych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

POPRAWA JAKOŚCI DYNAMICZNEGO MODELU ZŁOŻONEGO POPRZEZ ZASTOSOWANIE INTERPOLOWANYCH DANYCH UCZĄCYCH

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Sztuczne sieci neuronowe Ćwiczenia. Piotr Fulmański, Marta Grzanek

Politechnika Warszawska Wydział Samochodów i Maszyn Roboczych Instytut Podstaw Budowy Maszyn Zakład Mechaniki

Zmiany. Initial Step krok inicjujący sekwenser

Uczenie sieci typu MLP

Sposoby modelowania układów dynamicznych. Pytania

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

POLITECHNIKA ŚLĄSKA WYDZIAŁ GÓRNICTWA I GEOLOGII. Roman Kaula

MATLAB Neural Network Toolbox przegląd

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN. Agenda

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Zastosowania sieci neuronowych

Sieci neuronowe jako sposób na optymalizacje podejmowanych decyzji. Tomasz Karczyoski Wydział W-08 IZ

Uczenie sieci neuronowych i bayesowskich

Sztuczne sieci neuronowe

Sterowniki Programowalne (SP) Wykład 11

1. POJĘCIA PODSTAWOWE I RODZAJE UKŁADÓW AUTOMATYKI

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wstęp do sztucznych sieci neuronowych

Macierz A nazywamy macierzą systemu, a B macierzą wejścia.

Najprostsze modele sieci z rekurencją. sieci Hopfielda; sieci uczone regułą Hebba; sieć Hamminga;

Siemens S Konfiguracja regulatora PID

SZTUCZNA INTELIGENCJA

Spis treści. Dzień 1. I Elementy układu automatycznej regulacji (wersja 1109) II Rodzaje regulatorów i struktur regulacji (wersja 1109)

Algorytmiczne sieci neuronowe idea działania, słabe i mocne strony

Rozdział 1 PROGRAMOWANIE LINIOWE

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Szybkie prototypowanie w projektowaniu mechatronicznym

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

MODELOWANIE RZECZYWISTOŚCI

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym

Wykład 1: Wprowadzenie do sieci neuronowych

WYKORZYSTANIE SZTUCZNYCH SIECI NEURONOWYCH W PROGNOZOWANIU

1. Logika, funkcje logiczne, preceptron.

Programowanie dynamiczne

WYKŁAD PROF. DR HAB. INŻ. TADEUSZA KACZORKA

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Dariusz Brzeziński Instytut Informatyki, Politechnika Poznańska

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Transkrypt:

Algorytmy sztucznej inteligencji Dynamiczne sieci neuronowe 1 Zapis macierzowy sieci neuronowych Poniżej omówione zostaną części składowe sieci neuronowych i metoda ich zapisu za pomocą macierzy. Obliczenia w takiej formie będą zaimplementowane na sterownik PLC. 1.1 Pojedynczy neuron Na rysunku 1 przedstawiono zasadę działania jednego neuronu z sieci. w przypadku jednego wejścia obliczeń dokonuje się na liczbach, jednak w drugim przypadku trzeba pomnożyć wartość każdego wejścia przez odpowiednią wagę. n = w 1,1 p 1 + w 1,2 p 2 + + w 1,R p R + b Jak łatwo zauważyć, większa część tego wzoru to wynik mnożenia dwóch wektorów (a precyzyjniej macierzy o jednym wierszu i macierzy o jednej kolumnie). To działanie jest oznaczone przez pogrubione litery W i p we wzorze. Rys. 1. Pojedynczy neuron z jednym wejściem i z R wejściami 1 Dla wektora o trzech wejściach obliczenia wyglądałyby następująco: Wp + b = [ ] p 1 w 1,1 w 1,2 w 1,3 p 2 + b p 3 Oznaczenie f() oznacza funkcję przejścia (ang. transfer function) neuronu. w sieciach dynamicznych najlepsze efekty w warstwie wejściowej daje funkcja tansig, opisana wzorem poniżej. f(n) = 2 1 + e 2n 1 W warstwie wyjściowej natomiast formalnie zapisuje się stosowanie funkcji purelin, co w praktyce sprowadza się do pozostawienia wartości takiej, jaka jest (ew. przeskalowanie). 1.2 Warstwa neuronów Większość sieci korzysta z wielu neuronów ułożonych w warstwy. Warstwa neuronów w formie pełnej i skróconej jest przedstawiona na rysunku 3. Jak widać, tym razem wyjścia również zostały zapisane jako wektor składający się z S liczb. Każdy z neuronów posiada również osobny 1 Wszystkie obrazy z [1] lub [2] 1

Rys. 2. Pojedynczy neuron z R wejściami zapis skrócony Rys. 3. Warstwa neuronów z R wejściami i S neuronami bias. Funkcja przejścia musi zostać zastosowana do każdego z wyjść osobno. Wagi neuronów są zapisane w macierzy W, która ma R kolumn i S wierszy, czyli każdy wiersz odpowiada za inny neuron w warstwie, a każda kolumna za inne wejście. Dla warstwy składającej się z 4 neuronów i posiadającej 3 wejścia obliczenia będą wyglądały następująco: Wp + b = 1.3 Sieci wielowarstwowe w 1,1 w 1,2 w 1,3 w 2,1 w 2,2 w 2,3 w 3,1 w 3,2 w 3,3 w 4,1 w 4,2 w 4,3 p 1 p 2 p 3 + Często jedna warstwa neuronu jest niewystarczająca, tworzy się wtedy sieci wielowarstwowe. Na rysunku 4 pokazano, że kolejne warstwy sieci łączy się ze sobą jak gdyby szeregowo wyjścia poprzedniej warstwy stają wejściami następnej. b 1 b 2 b 3 b 4 2

Rys. 4. Sieć trójwarstwowa 2 Dynamiczne sieci neuronowe Wyjście sieci statycznych zależało wyłącznie od aktualnego stanu wejścia do sieci. Stan wyjść sieci dynamicznej zależy także od poprzednich stanów wejść, wyjść lub stanów wewnątrz sieci. Sieci takie dzielą się na działające w przód (ang. feedforward) lub rekurencyjne (ze sprzężeniem zwrotnym). 2.1 Generacja poprzednich chwil czasowych Poprzednie chwile czasowe muszą zostać zapisane do wektora i podane na wejście sieci. Na schematach sieci (np. rysunek 5) taka operacja jest oznaczana symbolem TDL (ang. Tapped Delay Line). Neurony w warstwie wejściowej muszą mieć tyle wejść, ile opóźnionych chwil czasowych się zapamiętuje. Ich dokładna ilość zależy od złożoności zadania, jakie ma wykonywać sieć. 2.2 Sieci neuronowe jako modele obiektów Jednym z zastosowań dynamicznych sieci neuronowych jest modelowanie obiektów automatyki. Zostanie do tego wykorzystana sieć NARX (ang. Nonlinear AutoRegressive network with exogenous inputs), której schemat przedstawia rysunek 5. Celem pracy sieci jest jak najlepsze przybliżenie następującej funkcji: y t = F (y t 1, y t 2, y t 3,..., u t, u t 1, u t 2, u t 3,...) Modele stworzone za pomocą sieci neuronowych tego typu mogą być silnie nieliniowe, ponadto nie trzeba znać modelu tych nieliniowości. Jedynym wymaganiem są odpowiednio dobrane przebiegi wejść i wyjść do uczenia sieci. Uczenie sieci odbywa się offline, za pomocą wcześniej zebranych danych, lub online z zastosowaniem algorytmów adaptacyjnych. Sieć z rysunku 5 jest rekurencyjna, ponieważ wartości z wyjścia ŷ(t) są podawane poprzez sprzężenie zwrotne na wejście x(t). Rysunek 5 odnosi się do sytuacji ogólnej. W przypadku tworzenia modelu obiektu, który ma jedno wyjście, wartość S 2 = 1 jeden neuron w warstwie wyjściowej. Oznaczenia z rysunku poniżej. W nawiasach podano uproszczone oznaczenia stosowane w tej instrukcji. TDL generacja opóźnień czasowych; ten element powoduje, że warstwa pierwsza ma tyle wejść, ile jest opóźnień w sieci IW 1,1 macierz wag warstwy wejściowej (IW x ) b 1 wektor wag bias dla warstwy wejściowej (b 1 ) LW 1,3 macierz wag warstwy od sprzężenia zwrotnego (IW y ) f 1 funkcja przejścia warstwy wejściowej, w tym przypadku tansig 3

Rys. 5. Schemat sieci NARX LW 2,1 wektor wag warstwy wyjściowej (LW) b 2 waga bias warstwy wyjściowej (b 2 ) f 2 funkcja przejścia warstwy wyjściowej, w tym przypadku purelin Sieci NARX mogą również mieć większą ilość warstw, zależy to od złożoności wykonywanego zadania. Sieć NARX może mieć dwa rodzaje połączeń. Na rysunku 5 przedtawiono typ Rys. 6. Równoległa i szeregowo-równoległa architektura sieci NARX równoległy(ang. paralell). Sieć ma jedno wejście x(t), będące wymuszeniem i jedno wyjście ŷ(t), czyli odpowiedź sieci. Taka struktura jest używana w normalnej pracy sieci. Do uczenia wykorzystuje się drugą architekturę szeregowo-równoległą (rys. 6 po prawej stronie). Nie ma tu sprzężenia zwrotnego od wyjścia, zamiast niego podaje się rzeczywiste wyjście z obietku y(t). Taką strukturę wykorzystuje się podczas uczenia sieci. 3 Implementacja Neuronowy model obiektu najlepiej wpisać do sterownika jako blok funkcyjny FB, ponieważ zmienne Static są idealne do przechowywania poprzednich chwil czasowych i stałych wartości wag. 4

3.1 Interfejs W tabeli 1 wymienione są zmienne, które powinny pojawić się w interfejsie bloku funkcyjnego. R jest jest ilością opóźnień w sieci NARX, zaś S ilością neuronów w warstwie wejściowej. Tablica 1. Zmienne interfejsu bloku FB Zmienna Inputs Wejście obiektu Outputs Wyjście obiektu Static Poprzednie chwile czasowe z wejścia Poprzednie chwile czasowe z wyjścia Macierz wag IW x Macierz wag IW y Wektor wag b 1 Wektor wag LW Waga b 2 Zakresy skalowania wejść i wyjść Wymiar Liczba Liczba Wektor R-elementowy Wektor R-elementowy Macierz R S Macierz R S Wektor S-elementowy Wektor S-elementowy Liczba 4 liczby Przy deklaracji Array [a..b, c..d] of Real w sterowniku w zasadzie nie ma znaczenia ktory zakres będzie wierszem, a który kolumną. Należy jednak wziąć to pod uwagę przy wpisywaniu kodu obliczeń macierzowych. 3.2 Kod programu Po utworzeniu interfejsu można przystąpić do utworzenia kodu programu. Model obiektu w każdym wywołaniu wykonuje następujące kroki: 1. Skalowanie wejścia z ustalonego zakresu do zakresu (-1, 1). 2. Generacja R poprzednich chwil czasowych z wejścia sieci u(t). 3. Generacja R poprzednich chwil czasowych z wyjścia sieci a 2 (t). Jest to również realizacja sprzężenia zwrotnego. 4. Operacje matematyczne warstwy 1. n 1 = IW x u + IW y a 2 + b 1 a 1 = 2 1 + e 2n 1 u wektor z poprzednimi chwilami czasowymi z u(t), a 2 wektor z poprzednimi chwilami czasowymi z a 2 (t) 5. Operacje matematyczne warstwy 2. a 2 = LW a 1 + b 2 6. Skalowanie wyjścia z zakresu (-1, 1) do zakresu ustalonego. 5

4 Wywołanie modelu obiektu Model obiektu zapisany za pomocą sieci neuronowej musi być wywołany z określonym czasem próbkowania. Do realizacji takiego zadania zostanie wykorzystane przerwanie cykliczne. Należy dodać nowy blok Cyclic Interrupt z parametrem Scan Time równym 50ms. Następnie wywołać FB z modelem obiektu w tym bloku. Jako wejście i wyjście należy wpisać dwie zmienne globalne (Tagi) typu Real. 5 Testowanie modelu Aby sprawdzić, czy model obiektu reaguje w sposób prawidłowy, należy podać odpowiedni sygnał testowy. Może to być np. sygnał skokowy. Generowanie skoku można zrealizować za pomocą istniejących na stanowisku przycisków. Wartość skoku może być dodatkowo ustalana za pomocą potencjometru. Sygnał testowy i odpowiedź obiektu powinny być wyświetlone na panelu operatorskim KTP600 Basic PN. Na panelu należy też wyświetlić czas wykonania kodu z modelem obiektu. Literatura [1] Beale M. H. & Hagan, M. T. & Demuth, H. B., Neural Network Toolbox User s Guide, dostęp poprzez pomoc programu MATLAB [2] Hagan, M. & Demuth, H. Neural networks for control American Control Conference, 1999. Proceedings of the 1999, 1999, 3, 1642-1656 vol.3 1 W razie pytań lub zauważonych błędów proszę o kontakt: fkaszuba@agh.edu.pl, mgr inż. Filip Kaszuba. 6