Twoim problemem jest to, że powszechną NICOŚĆ mylisz z osobistą PUSTKĄ
pOLITECHNIKA WROCŁAWSKA
Dr inż. Henryk Kordecki
Sieci neuronowe
Paweł Skorupski 195413
Michał Harc
Dominik Frączek 194432
2014-03-24
Spis treści:
1. Wstęp
2. Biologiczne podstawy działania neuronu
3. Pierwsze modele
4. Zastosowania sieci neuronowych
5. Uczenie sieci neuronowych
6.
7.
1. Wstęp
Tematyka sztucznych sieci neuronowych należy do interdyscyplinarnej dziedziny badań powiązanej z biocybernetyką, elektroniką, matematyką stosowaną, statystyką, automatyką, a nawet medycyną. Wiedza o sieciach neuronowych swoje początki zawdzięcza fascynacją naukowców centralną częścią układu nerwowego każdego z nas tj. mózgiem, którego możliwości przetwarzania informacji wciąż górują nad największymi systemami komputerowymi. Liczne badania prowadzone w ostatnich kilkudziesięciu latach doprowadziły do nagromadzenia takiej liczby faktów, że ogarnięcie ich wyłącznie wyobraźnią naszego umysłu stało się niewykonalne.
Już w latach 40-tych pojawiły się próby matematycznego , a potem cybernetycznego opisu funkcjonowania pojedynczych komórek i ich zespołów, mających najczęściej formę regularnych sieci. Sztuczne sieci neuronowe zdobyły sobie szerokie uznanie w świecie nauki poprzez swoją zdolność łatwego zaadoptowania do rozwiązania różnorodnych problemów obliczeniowych w nauce i technice. Mają one bardzo pożądane właściwości w wielu zastosowaniach praktycznych ponieważ mają one zdolności uczenia się , adaptacji do zmieniających się warunków środowiskowych, zdolność generalizacji nabytej wiedzy, stanowiąc pod tym względem szczytowe osiągnięcie sztucznej inteligencji. Problematyka sieci neuronowych jest z pewnością dziedziną nauk technicznych. Używając sieci neuronowych jako wygodnych systemów przetwarzania informacji, wiele osób zapomina często o korzeniach, czyli o tym, z czego wywodzi się ta nowoczesna technika. W naszej pracy chcielibyśmy napisać, że podstawy sieci neuronowych oparte są na fundamentalnych odkryciach biologów śledzących tajniki naszego mózgu. Trzeba zaznaczyć, że niektóre odkrycia zostały nagrodzone nagrodą najwyższą z możliwych , czyli nagrodą Nobla. W naszej pracy bez głębszej analizy pozwolimy sobie na wymienienie kilku bardzo istotnych odkryć nagrodzonych Noblem:
a) Pawlow – model odruchu warunkowego (1904)
b) Ramon y Cajal – opis struktury sieci nerwowej (1906)
c) Einthoven – rejestracja biopotencjałów tkanek (1924)
d) Sherrington – model nerwowego sterowania mięśni (1932)
e) Bekesy – model percepcji słuchowej (1961)
f) Hodgkin i Huxley – model propagacji sygnału w aksonie (1963)
g) Eccles – model synapsy (1963)
h) Granit i Hartline – badania mikroelektrodowe (1967)
i) Katz – zasada „wszystko albo nic”
j) Hubel i Wiesel – model kory wzrokowej (1981)
k) Lorenz i Tinbergen – model celowego zachowania (1986)
Warto pamiętać co tak naprawdę było podstawą stworzenia tak zaawansowanych technologii, a osoby zainteresowane poznaniem poszczególnych odkryć zachęcamy do poszukania w wszelkich źródłach informacji danych na ten temat. W naszej pracy nie będziemy skupiać się na biologicznych „korzeniach” sieci neuronowych, większą uwagę z punktu widzenia przyszłego inżyniera należy zwrócić na techniczny aspekt tego zagadnienia. Jednak nie możemy pozwolić sobie na całkowite odpuszczenie podstaw biologicznych działania neuronu więc w następnym punkcie naszej pracy postaramy się wyjaśnić to zagadnienie.
2. Biologiczne podstawy działania neuronu
Jak już wcześniej pisaliśmy sztuczne sieci neuronowe powstały na podstawie wiedzy o działaniu systemu nerwowego istot żywych i stanowią próbę wykorzystania zjawisk zachodzących w systemach nerwowych przy poszukiwaniu nowych rozwiązań technologicznych.
Komórka nerwowa , zwana po prostu neuronem jest podstawowym elementem systemu nerwowego. Aby w pełni zrozumieć istotę procesów pozyskiwania, przesyłania i przetwarzania informacji zachodzących w sieciach neuronowych konieczne jest poznanie mechanizmów działania poszczególnych neuronów i ich współdziałania. Z tego względu model rzeczywistej komórki nerwowej jest tak bardzo istotny.
Poprzednie zdania naszej pracy oczywiście są zrozumiałe dla każdego z nas, jednak chcielibyśmy uprzedzić naszych Drogich czytelników ,że następne kwestie wymagają pełnego skupienia oraz doszukania informacji w celu pełnego zrozumienia poruszanego zagadnienia. Używane słownictwo jest słownictwem specjalistycznym, więc bez próby poszerzenia swojej wiedzy w tym temacie jest mała szansa na opanowanie jakże trudnego zagadnienia, jakim są sieci neuronowe.
Neuron jak każda komórka posiada ciało z elementami wyposażenia cytologicznego zwane somą, wewnątrz którego znajduję się jądro. Z somy neurony wyrastają liczne wypustki, pełniące istotną rolę w połączeniu z innymi komórkami. Można wyróżnić dwa rodzaje wypustek: liczne, cienkie i gęsto rozkrzewione dendryty oraz grubszy, rozwidlający się na końcu akson.
Sygnały wejściowe doprowadzone są do komórki za pośrednictwem synaps, zaś sygnał wyjściowy odprowadzany jest za pomocą aksonu i jego licznych odgałęzień zwanych kolaterelami. Kolaterale docierają do somy i dendrytów innych neuronów, tworząc kolejne synapsy. Synapsy dołączające wyjścia innych komórek nerwowych do danej komórki mogą więc znajdować się zarówno na dendrytach, jak i bezpośrednio na ciele komórki. Transmisja sygnałów wewnątrz systemu nerwowego jest bardzo skomplikowanym procesem chemiczno-elektrycznym. Jednak wyrażając cały ten proces w uproszczeniu można założyć, że transmisja impulsu nerwowego od jednej komórki do drugiej opiera się na wydzielaniu pod wpływem nadchodzących od synaps bodźców, specjalnych substancji chemicznych, zwanych neuromediatorami. Substancje te oddziałują na błonę komórki, powodując zmianę jej potencjału elektrycznego, przy czym zmiana ta jest tym większa, im więcej neuromediatora pojawi się na błonie.
Rysunek: Uproszczony schemat rzeczywistej komórki nerwowej
Synapsy różnią się wielkością oraz możliwościami gromadzenia neuromediatora w pobliżu błony synaptycznej. Z tego powodu taki sam impuls docierający do wejścia komórki za pośrednictwem określonej synapsy może powodować silniejsze lub słabsze jej działanie niż w przypadku innego wejścia. Miarą stopnia pobudzenia komórki jest stopień polaryzacji jej błony, zależny od sumarycznej ilości neuromediatora wydzielonego we wszystkich synapsach. Wynika z tego fakt, że wejściom komórki można przypisać współczynniki liczbowe, inaczej mówiąc wagi odpowiadające ilości neuromediatora wydzielonego jednorazowo na danej synapsie. Sygnały wejściowe w modelu matematycznym należy odpowiednio przemnożyć przez odpowiednie wartości. Wyróżniamy wagi synaptyczne pobudzające oraz hamujące. Po dotarciu impulsu wejściowego do synapsy i uwolnieniu danej ilości neuromediatora następuje pobudzenie elektryczne komórki. Jeśli bilans pobudzeń i hamowań jest ujemny, komórka samorzutnie wraca do stanu początkowego. Jeśli suma ta przekroczy próg uaktywnienia komórki, to sygnał wejściowy narasta powodując impuls nerwowy, który zostaje przesłany aksonem do innych neuronów połączonych z komórką pobudzoną. Neuromediator, po spełnieniu swojego zadania, jest usuwany, na zasadzie wchłonięcia go w komórkę, poprzez rozkład lub przemieszczeniu go poza obszar synaps. W momencie wygenerowania impulsu przez komórkę
nerwową, uruchomiony zostaje proces refrakcji, dzięki któremu neuron nie jest w stanie wygenerować kolejnego impulsu - tak aby nie nastąpił konflikt.
Rysunek: Model współpracujących komórek nerwowych
Ilość komórek nerwowych, które współpracują ze sobą, jest ogromna. Szacuje się, że mózg ludzki zawiera około 10^11 takich komórek. Przy tak wielkiej ilości połączeń, błąd działania pojedynczych neuronów nie wpływa negatywnie na cały proces przesyłania sygnału. Jest to bardzo ważna cecha, która wywyższa sztuczną sieć neuronową nad systemami elektronicznymi, w których to jeden błąd niweczy funkcję działania całego systemu. Kolejną bardzo ważną cechą takiej sieci jest szybkość działania – mimo dosyć długiego cyklu pojedynczej komórki (liczonego w milisekundach). Dzieje się tak, gdyż sieć ta jest na tyle rozbudowana, że poszczególne sygnały przesyłane są równolegle wieloma kanałami. Proces ten jest na tyle sprawny, że proces analizy obrazu, dźwięku, czy podejmowania decyzji odbywa się w czasie mierzonym w milisekundach. Analogicznie, w technologii półprzewodnikowej, w której cykl działania pojedynczego elementu wykonawczego oscyluje w granicach 10^-8 s, czyli de facto o wiele krótszym od cyklu komórki nerwowej, uzyskanie tak szybkiej reakcji jest na chwilę obecną po prostu nie możliwe. Zatem, jeśli udałoby się zastosować w urządzeniach elektronicznych kanały o dużej równoległości wykonywania poszczególnych operacji - wzorując się na tych, które występują w układzie nerwowym – można było by zbliżyć się do szybkości procesu, spotykanej naturalnie w układzie nerwowym.
3.Pierwsze modele
Analizując poprzedni punkt naszej pracy można, a nawet trzeba stwierdzić, że każdy neuron jest narzędziem, które sumuje z odpowiednimi wagami sygnały wejściowe pochodzące z innych neuronów, tworząc funkcję sumy i przekazuje tę wartość do innych neuronów powiązanych z nim. W związku z zasadą „wszystko albo nic” (zasada ta mówi, że pobudzenie neuronu musi przekroczyć określony próg) w pierwszych modelach neuronu przyjmowano sygnał wyjściowy zero jedynkowy czyli sygnał binarny.
Wartość 1 jak łatwo się domyślić odpowiada pobudzeniu neuronu większemu niż próg zadziałania, a wartość 0 pobudzeniu mniejszemu niż ten próg. Jednym z pierwszych takich modeli był model McCullocha-Pittsa sformułowany w roku 1943. Model McCullocha-Pittsa jest modelem dyskretnym, w którym stan neuronu w chwili (k+1) określany jest na podstawie sygnałów wejściowych neuronów w chwili poprzedniej k.
Kilka lat później D. Hebb zaprezentował teorię uczenia w zastosowaniu do pamięci asocjacyjnych. Hebb wykorzystał obserwację, w których zauważył, że waga połączeń międzyneuronowych jest wzmacniana przy stanach uaktywnienia obu neuronów. W modelu Hebba przyrost wagi w procesie uczenia jest proporcjonalny do iloczynu sygnałów wyjściowych neuronów połączonych daną wagą. W latach 60 Widrow opracował podstawy teoretyczne i podstawowe implementacje techniczne adaptacyjnych układów przetwarzających sygnały, stanowiące istotny wkład w rozwój sieci neuronowych działających w trybach on-line jak i off-line. W następnych latach zostały mocno ograniczone środki finansowania tej dziedziny badań i w związku z tym osłabienie rozwoju sieci neuronowych. Głównym czynnikiem, który wywołał zastój była książka Minsky’ego i Paperta, w której to odnieśli się oni dość krytycznie do ówczesnych dokonań. Z licznych ośrodków badawczych uchowało się tylko kilka wokół wybitnych naukowców w tej dziedzinie. Kilkanaście lat później bo już na początku lat 80 nastąpił gwałtowny wzrost zainteresowania oraz finansowania tej interdyscyplinarnej nauki. Dzięki finansowemu wsparciu jak i rozwojowi systemów komputerowych nastąpił gwałtowny przełom zarówno w teorii jak
i w zastosowaniach praktycznym. Obecnie sieci neuronowe stanowią dobrze rozwinięta dyscyplinę wiedzy stosowaną w wielu dziedzinach techniki.
Rysunek: Model komórki nerwowej według McCullocha-Pittsa
4.Zastosowania sieci neuronowych
Sieci neuronowe w rozwiązaniach praktycznych stanowią zwykle część sterującą procesem bądź to część decyzyjną, przekazującą sygnał wykonawczy innym elementom urządzenia, które nie są bezpośrednio związane z sieciami neuronowymi. Funkcje pełnione przez sieci neuronowe można uporządkować w kilka grup :
a) Aproksymacja i interpolacja
b) Rozpoznawania i klasyfikacji wzorców
c) Kompresji
d) Predykcji
e) Identyfikacji i sterowania
f) Asocjacji
Sieć neuronowa może pełnić rolę uniwersalnego aproksymatora funkcji
wielu zmiennych, realizującą funkcję nieliniową o postaci y=f(x), gdzie x jest wektorem wejściowym, a y realizowaną funkcją wektorową wielu zmiennych. Przy klasyfikacji i rozpoznawaniu wzorców sieć uczy się podstawowych cech tych wzorców, takich jak odwzorowanie geometryczne układu pikselowego wzorca, rozkładu składników głównych wzorca, składników transformaty Fouriera czy innych jego właściwości. W uczeniu podkreślane są różnice występujące w różnych wzorcach, stanowiące podstawę podjęcia decyzji przypisania ich do odpowiedniej klasy. W dziedzinie predykcji zadaniem sieci jest określenie przyszłych odpowiedzi systemu na podstawie ciągu wartości z przeszłości. Sieć mając informację o wartościach danej zmiennej w chwilach poprzedzających predykcje jest w stanie podjąć decyzję jaka będzie wartość badanego ciągu w chwili aktualnej. W adaptacji wag sieci wykorzystuje się aktualny błąd predykcji oraz wartość tego błędu w chwilach poprzedzających. W zagadnieniach identyfikacji i sterowania procesami dynamicznymi sieć neuronowa pełni wiele funkcji. Pozwala ona na wypracowanie odpowiedniego sygnału sterującego. Pełni także funkcję układu śledzącego i nadążnego, adaptując się do zmiennych warunków środowiskowych, co jest bardzo korzystne z punktu widzenia techniki. Ważną rolę odgrywa funkcja klasyfikatora, która jest wykorzystywana w podejmowaniu decyzji co do dalszego przebiegu danego procesu. Funkcja klasyfikatora pełni istotną rolę w sterowaniu robotów. W zadaniach asocjacji sieć neuronowa pełni rolę pamięci skojarzeniowej. Można wyróżnić pamięć autosocjacyjną, w przypadku której skojarzenie dotyczy tylko poszczególnych składowych wektora wejściowego oraz pamięć heteroasocjacyjną, gdzie zadaniem sieci jest skojarzenie ze sobą dwu oddzielnych wektorów. Jeżeli na wejście sieci poddany będzie wektor, który został w pewien sposób zniekształcony to sieć neuronowa jest w stanie odtworzyć oryginalny wektor , a przy okazji generuje przy tym pełną postać wektora stowarzyszonego z nim.
Najważniejszą cechą sieci neuronowych, która stanowi o jej wielkich zaletach i szerokiemu wachlarzowi możliwości zastosowań jest równoległe przetwarzanie danych przez wszystkie neurony. Przy masowej skali powiązań neuronowych uzyskuje się dzięki temu znaczne przyśpieszenie procesu. W wielu przypadkach jest możliwe przetwarzanie sygnałów w czasie rzeczywistym (tzn. takim, w którym poprawność obliczeń nie zależy jedynie od poprawności logicznej obliczenia, ale również od czasu w jakim zostaje uzyskany wynik, jeżeli nie zostaną spełnione wymogi czasowe to mówimy o wystąpieniu błędu systemu). Trzeba także zaznaczyć, że bardzo duża liczba powiązań międzyneuronowych sprawia, że sieć staje się odporna na błędy występujące w niektórych powiązaniach. Funkcję uszkodzonych wag przejmują inne i w związku z tym w działaniu sieci nie dostrzega się zaburzeń wpływających na jej działanie. Wykorzystuję się to do budowy optymalnej struktury sieci neuronowej przez obcinanie pewnych wag. Inna również bardzo ważną cechą sieci jest jej zdolność do uczenia się i generalizacji nabytej wiedzy. Sieć neuronowa wykazuje własność tak zwanej sztucznej inteligencji. Wytrenowana sieć na ograniczonej grupie danych uczących potrafi skojarzyć nabytą wiedzę i wykazać pewne działanie na danych nie uczestniczących w procesie uczenia.
Zastosowania sieci neuronowych w bardziej przystępnym języku:
a) Diagnostyka układów elektronicznych
b) Badania psychiatryczne
c) Prognozy giełdowe
d) Prognozowanie sprzedaży
e) Poszukiwania ropy naftowej
f) Interpretacja badań biologicznych
g) Prognozy cen
h) Analiza badań medycznych
i) Planowanie remontów maszyn
j) Prognozowanie postępów w nauce
k) Typowania na wyścigach konnych
l) Analiza problemów produkcyjnych
m) Optymalizacja utylizacji odpadów
n) Dobór surowców
o) Selekcja celów śledztwa w kryminalistyce
p) Dobór pracowników
q) Sterowanie procesów przemysłowych.
Pomimo ogromnych możliwości zastosowań sieci neuronowych, możliwość ich dalszego wykorzystywania w przetwarzaniu informacji nie jest jeszcze do końca znana. Szereg placówek naukowych wciąż próbuje udoskonalać wiedzę z tej interdyscyplinarnej dziedziny. Wydaje się , że sieci neuronowe będą jeszcze przez wiele lat wpływać na postęp w technice informacyjnej. Trzeba pamiętać o tym, że sieci neuronowe bywają w dalszym ciągu samodzielnym obiektem badań jako całość, ponieważ jedną z często wskazywanych przyczyn budowy sieci są próby wyjaśnienia przy ich pomocy zasad funkcjonowania naturalnych fragmentów systemu nerwowego. Pojawia się także nadzieja, że w oparciu o teorię sieci neuronowych uda się zbudować teorię ludzkiego mózgu, chociaż dla niektórych droga ta może wydawać się nie do pokonania.
5.Uczenie sieci neuronowych
Uczenie sieci neuronowej należy rozumieć jako wymuszanie określonego zachowania pod wpływem zadanego sygnału wejściowego. Uczenie jest niezbędne wszędzie tam, gdzie występuje brak lub znaczny niedobór informacji doświadczalnych o powiązaniu wejścia z wyjściem, co uniemożliwia szczegółowe zaprojektowanie sieci czy poprawne jej działanie. Uczenie można realizować krok po kroku lub poprzez pojedynczy zapis. Jednym z ważniejszych czynników uczenia sieci neuronowej jest dobór odpowiedniej metody uczenia. Wyróżnia się dwie główne metody: uczenie z nauczycielem...