Strona początkowa
Start Sieci jednokierunkowe Sieci rekurencyjne Słowniczek Linki O autorach

***
Jednym zdaniem... - A co to jest neuron? - Łączymy neurony - Rodzaje struktur sieci

***

Z czego składa się sieć neuronowa


Jednym zdaniem...

... z neuronów, oczywiście!

A co to jest neuron?

W oryginale - komórka nerwowa. W sieci neuronowej - podstawowy jej składnik. "Oryginalny" neuron wygląda tak:

Rozmiar: 9109 bajtów

Uwaga techniczna: te kolorowe kropki są tylko po to, żeby precyzyjnie wyznaczyć miejsce występowania synaps i wzgórka aksonu. Zresztą i tak zależy nam tu tylko na schematycznym rysunku, nie zaś na zdjęciu rzeczywistego neuronu.

Objaśniam podpisy:

  • Jądro - "centrum obliczeniowe" neuronu. To tutaj zachodzą procesy kluczowe dla funkcjonowania neuronu.
  • Akson - "wyjście" neuronu. Za jego pośrednictwem neuron powiadamia świat zewnętrzny o swojej reakcji na dane wejściowe. Neuron ma tylko jeden akson.
  • Wzgórek aksonu - stąd wysyłany jest sygnał wyjściowy, który wędruje dalej poprzez akson.
  • Dendryt - "wejście" neuronu. Tędy trafiają do jądra sygnały mające być w nim później poddane obróbce. Dendrytów może być wiele - biologiczne neurony mają ich tysiące.
  • Synapsa - jeśli dendryt jest wejściem neuronu, to synapsa jest jego furtką. Może ona zmienić moc sygnału napływającego poprzez dendryt.

To nie wszystkie składowe biologicznego neuronu, lecz inne z punktu widzenia SSN nie będą nas interesować. Model neuronu składa się z dokładnie tych samych elementów, które wyżej wymieniłem. Oto - nieco okrojony - schemat; kompletny jest umieszczony w wykładach "Dla fachowców".

Model neuronu

Zaszły małe zmiany, ale tylko pozornie. Wejścia to dendryty, lub ściślej: sygnały przez nie nadchodzące. Wagi to cyfrowe odpowiedniki modyfikacji dokonywanych na sygnałach przez synapsy. Blok sumujący to odpowiednik jądra, blok aktywacji to wzgórek aksonu, a wyjście - to akson. Zaznaczam, że fakt, iż na rysunku są trzy dendryty, jest czysto przypadkowy. Liczba ich jest dowolna, zaś na moich rysunkach wynosi trzy jedynie ze względów estetycznych.

Łączymy neurony

Właściwie to nawet jeden neuron można nazwać siecią - jednoelementową. Aby jednak móc użyć sieci w jakimś poważnym celu, trzeba będzie użyć większej ilości neuronów. Jak widać z rysunków, neuron może mieć jeden lub więcej dendrytów (a dla każdego po jednej synapsie) i dokładnie jeden akson. Łączymy je w prosty sposób: po pierwsze układamy je warstwami. Można zbudować sieć o jednej, dwóch, lub trzech warstwach - tworzenie większej ilości warstw nie ma praktycznie sensu. Neurony należące do danej warstwy nie mają ze sobą żadnego kontaktu. Wygląda to mniej więcej tak (neurony są tu uproszczone w porównaniu z poprzednim rysunkiem - to czerwone kółko reprezentuje zarówno blok sumujący, jak i blok aktywacji):

Warstwa neuronów

Tak - te niczym nie połączone neurony już można nazwać siecią. Sieć wielowarstwowa nie jest dużo trudniejsza do zbudowania. Drugą warstwę tworzymy w ten sam sposób, co pierwszą. Następnie łączymy obie warstwy. W jaki sposób? W najprostszy z możliwych - każdy z każdym. A dokładniej: aksony (wyjścia) neuronów warstwy poprzedniej łączą się z dendrytami (wejściami) neuronów warstwy następnej. Tu pozornie trafiamy na problem. Rozpatrzmy sieć dwuwarstwową mającą po trzy neurony w każdej warstwie. Skoro łączymy neurony w systemie "każdy z każdym", to akson każdego neuronu z pierwszej warstwy musi trafić do trzech różnych neuronów z drugiej warstwy. A przecież akson jest jeden. Nic łatwiejszego - w biologicznym neuronie akson rozwidla się w tzw. drzewko, którego poszczególne "gałęzie" trafiają do różnych dendrytów. Podobnie jest w SSN. Ważne jest, iż mimo rozwidlenia sygnał niesiony przez akson nie jest dzielony - do każdego neuronu docelowego trafia taki sam sygnał, jaki wyszedł z neuronu macierzystego. Poniższa animacja powinna wszystko wyjaśnić.

W sieci neuronowej można wyróżnić jeszcze jedną warstwę - tzw. warstwę wejściową. Służy ona do wstępnej obróbki danych wejściowych. I tu muszę powiedzieć choć parę słów o działaniu sieci. Najogólniej: na wejście każdego neuronu pierwszej warstwy trafia każdy z sygnałów wejściowych, podanych przez użytkownika. Neurony przetwarzają sygnały wejściowe i podają poprzez swoje wyjścia na wejścia neuronów następnej warstwy. To, co pojawi się na wyjściach neuronów warstwy ostatniej (wyjściowej), jest wynikiem działania sieci. Jeśli zatem na wejście chcemy podać trzy sygnały, potrzebna jest nam dodatkowa warstwa (wejściowa), która rozdzieli sygnały wejściowe w taki sposób, aby każdy neuron pierwszej warstwy otrzymał pełen komplet. Uff... Myślę, iż wszystko wyjaśni poniższy rysunek.

Rozmiar: 9109 bajtów

Fakt istnienia warstwy wejściowej jest tak oczywisty, że pomija się ją podając ilość warstw sieci. Oznacza to, że wyrażenie: "sieć jednowarstwowa" oznacza de facto sieć dwuwarstwową, gdzie niejako "zerową" warstwą jest warstwa wejściowa, a dopiero po niej następuje pierwsza.

Rodzaje struktur sieci

To, co gościło na rysunkach do tej pory to sieć jednokierunkowa. W takiej sieci sygnały płyną równo i spokojnie od wejścia poprzez warstwy ukryte (omówię to pojęcie szerzej w jednym z następnych rozdziałów) do wyjścia. Nie zawsze jednak jest tak prosto. Ta oto animacja pokaże różnicę pomiędzy siecią jednokierunkową a rekurencyjną.

Różnica polega na tym, że w sieci rekurencyjnej występują tzw. sprzężenia zwrotne. Za ich pośrednictwem sygnały mogą po przejściu danej warstwy wracać na jej wejście, zmieniając przy tym swoje wartości, co powtarza się wiele razy, aż do osiągnięcia pewnego stanu ustalonego. Sieci rekurencyjne są jednak tematem drugiej części tych wykładów i nie będę się tu nad nimi rozwodził. Ostatnim z głównych typów sieci jest sieć komórkowa, którą opiszę przy okazji części o samouczeniu. Teraz zaś zapraszam do zapoznania się z zasadami działania SSN.

Kliknij aby przejść dalej
Start Sieci jednokierunkowe Sieci rekurencyjne Słowniczek Linki O autorach