Sieci neuronowe

advertisement
Sieci neuronowe
Sztuczne sieci neuronowe (SSN) powstały jako system symulujący pracę mózgu.
Podstawową jednostką budowy biologicznego układu nerwowego jest neuron. Ilość neuronów
w mózgu jest rzędu 1018. Neurony te są połączone ze sobą, tworząc skomplikowaną strukturę,
przez którą przechodzą z dużą częstotliwością impulsy elektryczne. Pojedyncza komórka
nerwowa składa się z jądra, wielu dendrytów (których celem jest pobieranie impulsów
z innych neuronów) i jednego aksonu, który przekazuje impuls dalej. Sztuczne neurony nie są
dokładnymi kopiami oryginalnych neuronów, są raczej ich logicznymi odpowiednikami,
mającymi podobne właściwości i działającymi tak jak ich pierwowzory.
rys 1. Schemat budowy sztucznego neuronu.
Sposób działania pojedynczego neuronu jest następujący:
Do wejść doprowadzane są sygnały (xi) dochodzące z neuronów warstwy poprzedniej. Każdy
sygnał mnożony jest przez odpowiadającą mu wartość liczbową (zwaną wagą wi) a następnie
są one sumowane (co odpowiada matematycznej operacji iloczynu skalarnego wektora
sygnału wejściowego i wektora wag).
n
s = ∑ wi xi
i =1
Powstała w wyniku sumowania wartość s stanowi argument funkcji aktywacji neuronu f(s).
W ten sposób otrzymujemy sygnał wyjściowy neuronu y = f(s).
Żeby neurony wykonywały określone zadania trzeba je połączyć w zorganizowaną
strukturę. Najczęściej stosuje się sieci warstwowe (perceptrony), czyli takie gdzie neurony
podzielone są na warstwy, a każdy neuron w warstwie jest połączony ze wszystkimi
neuronami z warstwy poprzedniej. Pierwszą warstwę nazywamy warstwą wejściową, ostatnią
wyjściową, a wszystkie pomiędzy nimi to warstwy ukryte. Do różnych zadań wykorzystuje
się sieci o różnej liczbie warstw, z tym że nie tworzy się sieci o liczbie warstw ukrytych
większej niż trzy. Nie zauważono bowiem aby ich skuteczność była większa niż w sieciach
o trzech warstwach ukrytych, natomiast wzrasta komplikacja sieci, co powoduje spowolnienie
jej działania. Zasadne jest za to zwiększanie ilości komórek w warstwie, co może
spowodować zwiększenie efektywności sieci.
rys 2. Model trójwarstwowej sieci neuronowej.
Oprócz sieci warstwowych jednokierunkowych tworzy się też sieci rekurencyjne.
W sieciach tego typu występuje tzw. sprzężenie zwrotne między warstwą wyjściową
a warstwą wejściową. Oznacza to, że sygnały na wyjściu podawane są na wejścia warstwy
wejściowej. Sygnały wejściowe w takiej sieci zależą zarówno od aktualnego stanu wejścia jak
i od sygnałów wyjściowych w poprzednim cyklu.
Jak łatwo zauważyć reakcja sieci zależy od ustawień poszczególnych wag. Dlatego
proces nauczania polega na odpowiednim ich ustawieniu. Najbardziej rozpowszechnionym
i zarazem najbardziej intuicyjnym sposobem nauczania jest tzw. uczenie z nauczycielem.
Polega ono na tym że sieci (o losowym ustawieniu wag) daje się do rozwiązania jakieś
zadanie, którego rozwiązanie jest nam znane. Odpowiedź sieci będzie oczywiście błędna,
więc modyfikujemy w odpowiedni sposób (propagacja wsteczna błędu) niektóre, lub
wszystkie wagi. Dajemy następne zadanie i znowu modyfikujemy wagi w zależności od
poprawności odpowiedzi. Kontynuujemy to tak długo, aż sieć będzie poprawnie reagowała na
wszystkie (lub zadowalającą większość) zadań.
Po treningu przeprowadza się testy, podczas których sieć nie zna prawidłowych
rozwiązań a podane przez nią rozwiązanie jest porównywane z prawidłowym.
Ważniejsze kierunki zastosowań to:
•
Predykcja
Sieci neuronowe są często wykorzystywane, aby na podstawie pewnych danych
wejściowych przewidywać dane wejściowe. Ważną zaletą jest to, że sieć może nauczyć
się przewidywania sygnałów wyjściowych bez jawnego definiowania związku między
danymi wejściowymi a wyjściowymi.
•
Klasyfikacja i rozpoznawanie
Zadanie polega na przewidywaniu identyfikatora klasy, do której dany obiekt należy.
Przykładem może być tu sieć pozwalająca na podstawie danych bilansowych stwierdzić,
czy dane przedsiębiorstwo należy do zwyżkujących gospodarczo, przeżywa stagnację czy
też grozi mu regres.
•
Kojarzenie danych
Klasyczne systemy komputerowe mogą gromadzić duże zbiory danych bez możliwości
ich kojarzenia. Sieci neuronowe, dzięki zdolności uczenia się i uogólniania doświadczeń,
pozwalają zautomatyzować procesy wnioskowania i pomagają wykrywać istotne
powiązania pomiędzy danymi.
•
Analiza danych
Zadanie polega na znalezieniu związków pomiędzy danymi. Realizacja tego zadania przez
sieci neuronowe daje nowe możliwości w zakresie prowadzenia analiz ekonomicznych.
•
Filtracja sygnałów
Dane gospodarcze pochodzące z różnych źródeł są zakłócone. Klasyczne metody
eliminacji "szumów" pozwalają usunąć zakłócenia o charakterze losowym, lecz nie dają
podstaw do eliminacji przekłamań systematycznych. Coraz częściej zatem bada się
możliwość zastosowania sieci neuronowych jako filtrów danych.
•
Optymalizacja
Doświadczalnie potwierdzono możliwości sieci do rozwiązywania zadań optymalizacji
statycznej i dynamicznej. Szczególnie ciekawe jest zastosowanie sieci do optymalizacji
kombinatorycznej i zagadnień bardzo trudnych obliczeniowo (również np-zupełnych),
które mogą być rozwiązane w krótkim czasie dzięki współbieżnemu wyliczaniu przez
wiele elementów sieci.
Literatura:
[1] Stanisław Osowski: Sieci neuronowe w ujęciu algorytmicznym, WNT, Warszawa 1997,
[2] Ryszard Tadeusiewicz: Sieci neuronowe, AOW, Warszawa 1993.
Download