English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
Sieć neuronowa
z uczenia się przez propagacji wstecznej błędu
Colin Fahey
neuron_group01.jpg
A biologicznych sieci neuronowych

1. Oprogramowanie

NeuralNetwork20080614.zip
Neuron sieci kod źródłowy (C#)
21971 bytes
MD5: 94443565716e1101a3326dc2ffd558fd

2. Wstęp

Ten dokument opisuje sposób realizacji sztuczne sieci neuronowe, że jest w stanie rozpoznać, wyszkolonych do wzorców.
Ten dokument opisuje model z sieci neuronowe, że uczy się przez który używa algorytmu "propagacji wstecznej błędu."
Niniejszy dokument zawiera podstawowe nauki o manifestacji "błąd propagacji wstecznej."  Ten dokument ma link do kodu komputera.  Komputer zawiera kod manifestacji.  Komputer kod może być wykorzystywane do tworzenia złożonych sieci neuronowych.  Jednak komputer kod jest wyłącznie do celów demonstracji.  Alternatywą mogłoby zmniejszyć realizacji pamięci i może zwiększyć prędkość.

3. Alternatywnie do uczenia się przez propagacji wstecznej błędu

Ten dokument opisuje model z sieci neuronowych, które uczy się przez algorytm o nazwie "propagacji wstecznej błędu."  Ten algorytm może wymagać bardzo długiego czasu, aby nauczyć się różnych zajęć.  Ponadto, algorytm ten może przypadkowo nie uczyć się różnych lekcji ze względu na losowe początkowy stan na sieć neuronowa przed szkolenia.
Uczenie się przez "łączące aktywnych wejść" ważne jest alternatywa dla uczenia się przez "propagacji wstecznej błędu."  Uczenie się przez łączące aktywnych wejść po prostu współpracownicy nakłady, które są jednocześnie aktywne.  Takie uczenie się może być szybkie i niezawodne.  Jednak dla wielu praktycznych celów, nie jest oczywisty sposób korzystania z sieci neuronowe, że uczy się przez stowarzyszenie, mając na uwadze, że istnieje wyraźny sposób do korzystania z sieci, która uczy się przez propagacji wstecznej błędu.
Niektóre biologiczne sieci neuronowe są znane, aby dowiedzieć się przez stowarzyszenie aktywnych wejść.  Wsteczna propagacja błędu nie został dotrzymany w żadnym biologicznych sieci neuronowych.
Ten dokument opisuje interesujące dla zastosowań sieci neuronowych, że uczy się przez propagacji wstecznej błędu.  Jednakże, uczenie się przez stowarzyszenia jest bardzo ważne dla alternatywnych algorytm uczenia się.  Projektowanie sieci neuronowe, że uczy się przez stowarzyszenie w celu rozwiązania danego problemu może być trudniejsze, że desgining alternatywną sieć neuronowa, że uczy się przez propagacji wstecznej błędu, ale by dowiedzieć się systemy biologiczne stowarzyszenia, oraz zdolność uczenia się systemów biologicznych jest oczywiste.

4. Biologiczna Neuron

4.1 Neuron komórki

neuron_1umeter01.jpg
A neuron biologiczny "(wielobiegunowego" typu ~4 um komórek ciała)
A jest neuron typu komórek, który ma zdolność do odbierania i przekazywania sygnałów nerwowych.
Neurony są podstawą systemów nerwowych, stwierdzono u zwierząt, ptaków, ryb i owadów.
Brains z pamięci i logiki, refleksyjny i prostych systemów, zarówno w oparciu o uzgodnienia z neuronów.
Neurony są również używane do przesyłania sygnałów na duże odległości w stworzeniu ciała, takich jak: czujniki do mózgu, albo z mózgu do mięśni.
Zachowanie neuron biologiczny jest bardzo skomplikowane, ale uproszczony opis rejestruje następujące podstawowe zasady:
W Neuron gromadzi sygnały otrzymywane z innych neuronów, a jeżeli całkowita akumulacji sygnału przekracza progu, neuron przekazuje swoje własne sygnały do innych neuronów.

4.2 Neuron części

neuron_labels01.jpg
Części neuron biologiczny
Soma
W komórce ciała z Neuron
Dendrites
Włókna chemiczne z receptorami (nakładów), że rozszerzenie z komórek ciała na neuron.  A Neuron zazwyczaj ma wiele dendrites, dendrites i często mają wiele oddziałów.
Axon
A fiber chemicznych z emisji (wyjścia) na jego punktu końcowego, który rozciąga się od komórek ciała na neuron.  A neuron neuryt ma jednego, a neuryt zwykle ma bardzo niewiele oddziałów.
Synapse
A konfiguracja taka, że jeden neuron neuryt i dendrites innego Neuron oddzielone są bardzo małe luki.  W takiej konfiguracji, substancji chemicznych wydzielanych przez neuron neuryt na krzyż na Synapse i są odbierane przez dendrites z drugiej neuron.  W ten sposób neuronów wpływ innych neuronów.

4.3 Neuron opalania

A Neuron gromadzi chemiczne sygnały z jego dendrites, a jeżeli całkowita chemicznych nagromadzenie przekracza próg w terminie, neuron "pożarów," wysyłając własne sygnał poprzez jej neuryt.
Niektóre neuronów są zdolne do opalania impulsów na zlecenie 100 Hz.
Sygnały przejeżdżające neuronów wiążą (Na) stężenia sodu, potasu (K) i (Cl) jonów chloru, a potencjał wynikający elektrochemicznych (tzn. napięcia).
Spoczynkowej napięcia (-70 mV) opalania i napięcia (+30 mV) może być mierzony lub nawet pod wpływem konwencjonalnych obwodów elektrycznych.
Poniżej znajduje się zapis napięcia a rat Neuron opalania w wysokości około 100 Hz przy jednym whisker jest w posiadaniu i dotknął obecnie jego miejsce odpoczynku:
neuron_spikes_whisker01.jpg
A szczur Neuron opalanych (100 Hz) z powodu posiadania whisker.
Poniżej znajduje się taki sam objawia się jako sygnał audio: neuron_spikes_whisker01.wav
Chociaż jest stały bodziec, neuron sygnał jest szybkie pulsing.

4.4 Sieć neuronowa

Ludzki mózg posiada około 10^11 (100 mld) neuronów.
Każdy neuron w cerebellum otrzyma wejście od tak wielu jak 10^4 (10000) synapsach.
Chociaż neuryt i dendrites o rozszerzenie Neuron często tylko kilka mikrometrów od komórek ciała, niektóre axons są na porządku licznika długości.
A neuronów w mózgu ma stosunkowo krótkim axons zgrupowane w obszarach lub grup.
A mózg ma również zestawy neuronów ze stosunkowo długim axons Link do obszarów oddzielonych centymetrów.
Tak hierarchicznej sieci przetwarzania elementów jest utworzony.

4.5 Sieć neuronowa status

Status sieci neuronów jest zarówno sposób neuronów są połączone i na wszystkich sygnałów w synapsach.
Nie jest jasne, jak wiele informacji o statusie byłaby utracona w przypadku tranquilized mózg był w całkowitej bezczynności dla każdego czas.
Można sobie wyobrazić informacje trwały tylko przez sygnałów poprzez sieci ruchomych, a nie przez sieć łączności samo, jak automatów komórkowych, takich jak symulacje Conway's "Game of Life", proste Dynamic Random Access Memory (DRAM) chipy, a echa w komorze.

4.6 Sieć neuronowa Nauka

Konwencjonalne uczenia się występuje wtedy, gdy właściwości dendrites zmian w Synapse stać się bardziej lub mniej wydajne na odbieranie sygnałów chemicznych z neuryt.
Powody, dla których takie zmiany są skomplikowane, ale wynik jest, że neuron wymaga różnych kombinacji Synapse wejść do wyświetlania sygnału wyjściowego.

5. Sztuczny neuron

5.1 Definicja

"Sztuczny neuron" jest algorytm lub fizyczne urządzenie, które wdraża modelu matematycznego inspirowane przez podstawowe zachowanie neuron biologiczny.
A Neuron gromadzi sygnały otrzymywane z innych neuronów lub nakładów (np.  czujników), a jeżeli całkowita akumulacji sygnału przekracza progu, neuron przekazuje sygnał do innych neuronów lub wyjścia (np.  efektorów).
Wszelkie modelu matematycznego, które zawiera ideę gromadzenia większej ilości danych i plonowanie jednego wyjścia (akcentuje, że względnej intensywności wkładu w stosunku do pewnego poziomu nominalnego) mogą być wykorzystywane do pattern recognition.
Takie modele mogą być podstawą do sztucznego neuron.
Jeśli wpływ każdego z wejść może zostać zmodyfikowany, a następnie model może wspierać uczenie się.

5.2 Aktywacja funkcji

"Aktywacji funkcji" matematycznych jest funkcja, która zamienia znaki wartości poniżej określonej wartości do stosunkowo niskiej wartości wyjściowych, wejściowych i konwertuje wartości powyżej określonej wartości do stosunkowo wysokiej wartości wyjściowych.
"Aktywacji funkcji" służy do konwertowania ważoną sumą wartości wejściowych na neuron do wartości, która stanowi wyjście na neuron.
A "sigmoid" funkcja jest ogólny klasy sprawnego funkcji asymptotically podejście dolny limit wartości wejściowych zbliża negatywne nieskończoność, a asymptotically podejście górny limit wartości zbliża pozytywny wkład nieskończoność.
Jednym ze szczególnych sigmoid funkcją jest funkcja "logistic sigmoid":
logistic_sigmoid_function.jpg
W "Logistic Sigmoid" funkcja: 1 / ( 1 + Exp( -x ) )
W "logistic sigmoid" funkcja może być użyta jako "funkcji aktywacji" dla modelu matematycznego na neuron.
W matematycznej pochodnej z "logistic sigmoid" mogą być obliczane jako formuły, łatwo obliczyć stowarzyszonym nauki formuły.

5.3 Sieć neuronowa wejściowych

A "sieć neuronowa naliczonego" stanowi wejście do sieci neuronowych.
neural_network_input.jpg
Sieć neuronowa wejściowych
"Input" jest numeryczna wartość wkładu.

5.4 Sieć neuronowa wyjście

A "sieć neuronowa wyjście" stanowi wyjście z sieci neuronowych.
neural_network_output.jpg
Sieć neuronowa wyjście
"Output" jest wartość liczbowa na wyjściu.
"Error" jest wartością liczbową, że stanowi różnicę między wartością wyjścia i "Desired" wartość:
Error = (Output - Desired);  // Derived from: Output = Desired + Error;
W "Desired" wartość stanowi pożądaną wartość, lub idealnym wartości lub wartości prawidłowe, że sieć neuronowa powinna przedstawić jako wyjście w odpowiedzi na konkretne komponenty.
Błąd wartości jest obliczana i przypisane do szkolenia "Error" przez algorytm.
Błąd wartości opinie na sieć neuronowa.
W sieć neuronowa może dostosować się do zmniejszenia różnicy między jego realizacji oraz pożądanej wartości, tzn., sieć neuronowa może dowiedzieć się, co może zmniejszyć w przyszłości błędów.

5.5 Neuron ciała

A "Neuron organ" reprezentuje organ na neuron, który gromadzi składki wejściowych, i dodaje stronniczości, i przekształca wartość wynikająca przez "aktywację funkcji" tworzenia wartości wyjściowych.
neuron_body.jpg
Neuron ciała
"InputAccumulator" jest wartość, która reprezentuje zgromadzonych neuron wejściowy z linków, których wyjścia są podłączone do ciała neuron.
"Bias" regulowany jest wartość, która jest połączona z nagromadzonych wartości wejściowych.
"Output" jest wartością liczbową reprezentującą wartości wyjściowych z neuron.
Produkcja wartość jest obliczana za pomocą następującego wzoru:
Output = ActivationFunction( Bias + InputAccumulator );
"ErrorAccumulator" jest wartością liczbową reprezentującą skumulowanego błędu.
Ze względu na szczególne wartości wyjściowych z Neuron ciało, i biorąc pod uwagę szczególne wyjście błędu wartości skumulowanej wartości błędu jest dostosowana według następującego wzoru:
ErrorAccumulator += Output * (1 - Output) * OutputError;
"Rate" jest wartość, która wpływa na sposób "Bias" wartość zmienia się w zależności od wartości "ErrorAccumulator":
Bias += (-1) * Rate * ErrorAccumulator;

5.6 Link Neuron

A "Neuron Link" stanowi powiązanie pomiędzy:
(1) wkład w sieci neuronowych i wejście na neuron ciała;
lub,
(2) jeden neuron wyjściowy na ciało i neuron wejściowy innego organu;
lub,
(3) jeden neuron wyjściowy na ciało i wyjście z sieci neuronowych.
neuron_link.jpg
Link Neuron
"Input" jest bufor danych wejściowych do linku.
"Weight" jest regulowany w jaki sposób wpływa na wartość sygnału wartości i propagowanie wartości błędu poprzez link.
"Output" jest bufor danych wyjściowych z linku.
Wartość jest obliczana za pomocą następującego wzoru:
Output = Weight * Input;
"Error" jest cache błędu link.
"WeightedError" jest cache w błąd w linku, ważone przez współczynnik wagi:
WeightedError = Weight * Error;
"Rate" jest wartość, która wpływa na sposób "Weight" wartość zmienia się w zależności od wartości "Error" i "Input" wartości.
Podczas uczenia sieci neuronowych, "Weight" wartość jest skorygowana w następujący sposób:
Weight += (-1) * Rate * Input * Error;

5.7 Sieć neuronowa

A "sieć neuronowa" zawiera nakłady, wydajność, neuron organów, oraz linki.
Poniższy obraz przedstawia prostą sieć neuronowa, z dwoma wejściami, oraz dwóch organów neuron w pierwszej warstwy, a jednym neuron w drugiej warstwie, oraz jednego wyjścia.
neuron_network_drawing.jpg
Przykład z sieci neuronowych
Podczas symulacji o sieć neuronowa, propagowanie wartości wejściowych do przodu za pomocą linków i neuron organy, a ostatecznie przybyć do wyjścia.
neuron_network_forward_propagation.jpg
Przykład przekazania propagacji w sieci neuronowych
Podczas szkolenia, błąd wartości są przewidziane na realizacje i propagowanie tych błędów wstecz poprzez sieć neuronowa, w wyniku zmian wag i uprzedzeń w neuron organów i linki.
neuron_network_backward_propagation.jpg
Przykład propagacji wstecznej błędu w sieć neuronowa

5.8 Symulacji sieci neuronowych

Definicja:
"Sieć symulacji" jest procedura stosowana do nakładów poprzez propagowanie sieci powiązań i neuron organy, aż do wyjścia sieci.
Sieć obejmuje symulacje symulacji wszystkich jego powiązań i organów neuron.
Symulacje bez pętli lub czasu:
Istnieje wiele możliwych konfiguracji sieci obejmujące pętle.
Istnieje wiele modeli neuron, które zależą od czasu.
Jednak niektóre z najbardziej typowych zastosowań sztucznych neuronów wiążą ani pętli, ani czasu.
Poniżej przedstawiono matematyczny model z Neuron ciała:
Output = ActivationFunction( Bias + InputAccumulator );
Z tego neuron model, a sieci bez "pętli," po prostu uruchomić z zewnętrznych nakładów, obliczyć wyjścia pierwszej warstwy neuronów, oraz dostarczania tych wyników, jak wejść do następnej warstwy, obliczyć wyjścia dla tej warstwy, i nadal poprzez warstwy neuronów, aż do ostatecznego wyjścia są obliczane.
Loops:
A może masz sieć połączeń w formie pętli (lub "cykli)."
Na przykład, wyjście na neuron może być połączony bezpośrednio z tej samej wprowadzaniu neuron, powodując "zwrotne."
Innym przykładem jest produkcja # 1 neuron jest połączony z wejściem Neuron # 2, oraz wyjście # 2 neuron jest połączony z wejściem # 1 neuron.
Jeśli możesz uruchomić z pewnym momencie w sieci i poprzez śledzenie ścieżki neuronów i połączeń, posłuszeństwa jedną drogę przepływu sygnałów, a ostatecznie przy tym samym punkt wyjścia, wtedy ścieżka jest pętla.
Loops wprowadzić interesujące możliwości sygnały napływające z całego sieci nieokreślony czas.
Niektóre proste modele zakładają, że podejmuje szczególny czas na sygnały przechodzą przez poszczególnych neuronów.
W takich modeli, poprzez sygnały obieg pętli z kilku neuronów szybciej niż za pomocą sygnałów obieg pętli z wielu neuronów.
A neuron połączony z siebie będzie miał najszybszy sygnał obrotu walutowego.
Jeśli neuron posiada wejście X, waga W, B stronniczości, a nie negatywny wyjście Y (np. 0.0 -> 1.0), a następnie możemy stanowią oscylator po prostu poprzez W = (-8) i B = +4 i łączące Y do X;
za każdym razem będziemy symulować neuron, sygnał będzie toggled do stanu przeciwnego.
Sieć z pętli może być zajęty z działalności nawet wtedy, gdy nie akceptują zewnętrznych sygnałów (bodźców), jak wejść.
W automatów komórkowych zasad Conway's "Game of Life" mogłyby zostać wdrożone w sieci neuronowych, które daje małą podpowiedź na różnorodność działalności, które mogą się zdarzyć w sieć neuronowa z pętli.
Finite-state maszyn (FSM), oscylatorów, lotnych pamięci (w przeciwieństwie do uczenia się poprzez zmianę wzorców wagi), są możliwe dzięki pętli.
Jeśli sieć ma pętli, nie można zaktualizować do momentu wyjścia obliczyć wszystkie wyjścia; w ten sposób, wymagają tymczasowy bufor do przechowywania obliczane wyjść do nas obliczyć wszystkie wyjścia, a następnie możemy popełnić nowych wartości wyjściowych do neuronów w sieci.
Każda metoda, która aktualizuje wyjść w rzeczywistej sieci w sposób ciągły, zamiast na wszystkich na raz sposobem, wprowadza w chwili zamawiania arbitralnej, która prowadzi do chaosu.
Fizyka symulacji w połączeniu z udziałem podmiotów, takich jak planet orbiting gwiazdy z wzajemnego sił grawitacyjnych pomiędzy wszystkimi organami, wymagają tego samego rodzaju podejścia: obliczyć netto sił na wszystkich organów przed uaktualnianiem jakiegokolwiek prędkości i pozycji.
Godzina zależności:
A Simple Network symulacji zazwyczaj pociąga za sobą nakłady powodują pożądanych wyników po jednym kroku symulacji czasu.
W takiej symulacji, naszym zdaniem pod względem "liczby powtórzeń" niż "czas w sekundach."
Nie, nie muszą być wszelka korespondencja między powtórzeń i skali czasu.
System może być przeznaczony do symulacji sieci (iteracja) tylko wtedy, gdy są dostępne nowe wejście, które mogą wystąpić w nieregularnych odstępach czasu.
Jednakże, należy rozważyć model matematyczny, że jeden neuron próbuje symulować pulsing wyjście aspekt biologiczny neuron.
The pulsing może być scharakteryzowane pod względem czasu, jak pulsing w szczególności częstotliwość impulsów lub posiadanie którego rozciąga się krzywej dla danego czasu.
Możemy mieć czas zależny od innych elementów w modelu matematycznego na neuron, takich jak wejście akumulator, których wartość pobiera składki od nakładów, ale ma wycieku proporcjonalna do jego bieżącej wartości.
Ogólnie rzecz biorąc, możemy znaleźć obwodu elektrycznego analogię do niektórych elementów, które sluchajcie równań matematycznych, a więc można traktować jako neuron obwodu z rezystorów, kondensatorów, a także nieliniowy wzmacniacz.
Podobnie jak obwód może wykazywać złożonych w czasie zależne zachowanie, wyjście na neuron może być postrzegany jako, że funkcja zależy od jego wejścia i czasu w sposób skomplikowany.

5.9 Wsteczna propagacja błędu

Definicja:
"Wsteczna propagacja błędu" matematycznego jest procedurą, która zaczyna się od błędu na wyjściu z sieci neuronowych i propaguje ten błąd wstecz za pośrednictwem sieci do wyjścia plon wartości błędu dla wszystkich neuronów w sieci.
Wsteczna propagacja błędu formuły:
Błąd wartości na sieć neuronowa wyjścia są obliczane za pomocą następującego wzoru:
Error = (Output - Desired);  // Derived from: Output = Desired + Error;
Błąd akumulacji w neuron ciało jest dostosowane do wyjścia z Neuron ciała i wyjście błędu (określone przez linki związane z Neuron ciała).
Każde wyjście błędu wartości przyczynia się do błędu akumulator w następujący sposób:
ErrorAccumulator += Output * (1 - Output) * OutputError;
W pewnym sensie, wszystkie dane wyjściowe błędy w następnej warstwy wyciek wstecz poprzez wejście masy i gromadzą się na wyjście z neuron w poprzedniej warstwy.
To jest skumulowana wartość pomnożona przez wartość, która jest największa, gdy wyjście z obecnego neuron jest najbardziej neutralne (najbardziej "niezdecydowani)" i jest przynajmniej wtedy, gdy wyjście z neuron jest najbardziej skrajnych (bardzo "pewne)."
Waga zmian i uprzedzenia zmian formuły:
Podstawą nauki jest dostosowanie wag i stronniczości wartości w celu obniżenia przyszłych wyjście błędów.
Nauka "wynosi" wartość liczbową, że w istocie wskazuje, jak szybko jeden neuron dostosowuje wagi i stronniczości w zależności od wartości wartości błędu.
Następującego wzoru wskazuje, w jaki sposób zmienić odważników o neuron w szczególności zestaw wartości wejściowych i wyjściowych wartości błędu:
Weight += (-1) * Rate * Input * Error;
Następującego wzoru wskazuje, w jaki sposób zmienić stronniczość na neuron biorąc pod uwagę obecną wyjście błędu do neuron:
Bias += (-1) * Rate * Error;

6. Szkolenie sieć neuronowa

6.1 Szkolenia procedury

Można rozpocząć z sieci wyszkolonych i nadal do zmniejszenia produkcji błąd z dalszego kształcenia, ale często zaczyna się niewykwalifikowany sieci.
Przed szkolenia, należy wybrać losowo wartości dla wszystkich wag wszystkich neuronów w sieci.
I kiedy obserwowano problemów losowo wybranych wartości w przedziale [ -1.0, +1.0 ], a ja nie mają problemów, gdy wybrano losowo od wartości interwału [ +0.1, +1.0 ].
I te uwagi, ale być może z powodu moich błędów.
Celem losowo wagi jest możliwość złagodzenia wszelkich patologicznych sytuacji w sieci.
Jeżeli wszystkich neuronów w sieci rozpoczął z tej samej wagi, sieci nie miałby podstawy do zwiększenia zróżnicowania między neuronów.
Mam zauważyć, że ustawienie wszystkich stronniczości wartości do zera (0.0) jest do zaakceptowania.
Sesji treningowej wiąże się poprzez szkolenia ustawić wiele razy, może setki lub tysiące razy.
Dla każdego przechodzą przez zestaw szkoleń, które naszym zdaniem w każdej pozycji zestawu szkoleń.
A szkolenia zestaw pozycja posiada zestaw wejść i zestaw pożądanych wyników.
My symulacji sieci, korzystając z zestawu danych wejściowych określonych przez element szkolenia.
Symulacja plony wartości wyjściowych.
My propagowanie błędów wstecz myśli w sieci neuronowych do obliczania wyjście błędów dla wszystkich neuronów.
We wszystkich aktualizacji wag i uprzedzeń.
Uwaga: Jednym akademicki tekst, że omawiane sieci neuronowe opowiedziano się za pomocą całego zestawu szkoleń i tylko podsumowaniu zmian wagi i uprzedzeń.
Po przechodzą szkolenie całego zestawu mamy zestaw sumy wagi zmian i uprzedzenia zmian.
Bierzemy tych kwot i zaktualizować wszystkie wagi i uprzedzeń.
Takie kwoty mogą być ogromne szkolenia dla dużych zestawów - i wynikającą z tego skoku w wadze przestrzeni byłoby niewspółmiernie duże.
Więc myślę, dzieląc przez liczbę przedmiotów kształcenia, aby zmienić wartości średniej wagi średniej i uprzedzenia zmian wartości, byłoby rozsądne.
Jest coś o apelu informatyka jednego wektora, że zmiana wagi jakoś trwa cały zestaw szkoleń w celu rozpatrzenia.
Nie wiem, czy ja po prostu popełnił błąd w trakcie realizacji pomysłu, ale dał się niemal całkowicie na sieci neuronowe z powodu źle, jak to było zwrotnym.
Potem, kiedy próbował się naiwny alternatywne, czyli dokonywania aktualizacji na każdy element szkolenia, pracował doskonale rzeczy.
Biorąc pod uwagę cały zestaw szkoleń przed wykonaniem aktualizacji ma pewne zalety i wady:
Zalety:
Pojedyncze elementy szkolenia zawodowego w ustalonym z ekstremalnych błąd (np. zła szkolenia pozycji) nie będzie duży wkład do aktualizacji, ponieważ zostanie ono wystarczające przez wpływem "dobrych" danych;
Wada:
Jeśli N to liczba pozycji w zestaw szkoleń, to tempo wzrostu do wagi optymalnego wektora zostanie podzielona przez N.
Albo, dla danej odległości będziesz miał tylko ułamek kierunku wskazówek wzdłuż drogi w porównaniu do naiwnego podejścia;
Może tej techniki będzie pracować dla Ciebie, ale spróbuj się naiwne podejście, zanim można się na sieci neuronowe w wypowiem frustracja!

6.2 Brak ograniczenia błąd

Szkolenie może zakończyć się niepowodzeniem w celu zmniejszenia ogólnej błąd na szkolenie zestaw.
Ważne jest, w celu wykrycia awarii w celu zmniejszenia błędu.
Poniższa lista opisuje przyczyny niepowodzenia w celu zmniejszenia błędu, i możliwych rozwiązań.
Pozycje na liście są wymienione w kolejności w przybliżeniu prawdopodobieństwo, z pierwszej pozycji jest najbardziej prawdopodobne.
(1) Waga mieszanina osiągnęła lokalne minimum błędu powierzchni i "natknęła;"
Rozwiązanie: Start nowej symulacji z nowymi losowymi wagi.
(2) W sieci jest zbyt mało lub neuronów warstw kodować wszystkie struktury kształcenia w zestaw;
Rozwiązanie: ostrożnie rozrywki możliwość dodawania lub warstw neuronów.
(3) Jeden lub więcej przedmiotów w Twoim szkolenia zestaw jest rażąco sprzeczne lub niespójne z innych przedmiotów szkolenia;
Rozwiązanie: Sprawdź swój zestaw danych za nieprawidłowości.
Znajdź badań, które wskazują na większość błędów za wyszkolonych sieci.
Szukaj w technikach do średniej wagi zmian w odniesieniu do całego zbioru danych, aby zmniejszyć wpływ wszelkich złych przypadkach.
(4) do nauki stawka jest zbyt wysoka (ponad wszystko 1.0 jest prawdopodobnie nadmierna), aktualizacje i zawsze przekroczenia cel;
Rozwiązanie: Zmniejszenie stawki nauki.
(5) do nauki stawka jest zbyt niska (poniżej 0.01 coś może być zbyt mały), oraz sieć naprawdę jest zbliżenie na idealne połączenie wagi - ale jest zbyt powolny;
Rozwiązanie: Zwiększ całe stopy.
Szkolenia dwie warstwy, trzy-neuron sieci w celu dopasowania do wyłącznej lub (xor) funkcji, może, pomimo prostoty z funkcji, nie są zbieżne.
Może to być zaskakujące i frustrujące.
Jednak rozwiązanie to po prostu zestaw wszystkich Neuron Link wagi do nowych wartości losowej, a następnie próba pociągu sieciowego.
W przypadku szkoleń sieci w celu dopasowania do wyłącznej lub (xor) funkcji losowego pozytywne wagi wydaje się doprowadzić do pomyślnego uczenia się za każdym razem, mając na uwadze, że niektóre kombinacje pozytywnych i negatywnych wagi czasami powodować szkoleń na nie gwałtownie.
Potrzeba nowych wybrać losowo pierwotnej wagi do odzyskania z braku zbieżne jest konsekwencją niefortunne połączenie nauki.
Nauki procedury jest w istocie poszukiwania globalnego minimum przez steepest zejście na powierzchnię, a także możliwość obecności na "lokalnym minimum," w którym wyszukiwania może zostać schwytane.

6.3 Ogólnie szkolenia błąd

Ogólny błąd sieci może być scharakteryzowane przez kwadratowych korzeń średnią kwadratu błędów, lub "root-znaczy-(RMS) kwadratowych."
Błąd w każdej sieci szczególne wyjście obliczana jest według następującego wzoru:
Error = (Output - Desired);
Suma kwadratu błędów szkolenia dla jednego przedmiotu obliczana jest według następującego wzoru:
double squaredError = 0.0;
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
    squaredError += (output.Error * output.Error);
}
Suma kwadratu błędów dla całego zestawu przedmiotów w szkoleniu zestaw jest suma kwadratu błędów z poszczególnych przedmiotów.  Poniższy kod pokazuje w jaki sposób kwadratu błędów dla całego zbioru elementów szkolenia mogą być obliczane:
double squaredError = 0.0;
for
    (
    int trainingItemIndex = 0;
    trainingItemIndex < totalTrainingItems;
    trainingItemIndex++
    )
{
    trainingSet.SetAllInputNodeValues( trainingItemIndex );
    Simulate( propagationIterations );
    trainingSet.SetAllOutputNodeErrorValues( trainingItemIndex );
    PropagateErrors( propagationIterations );
    UpdateWeightsAndBiases();

    foreach (NeuralNetworkOutput output in ListOfOutputs)
    {
        squaredError += (output.Error * output.Error);
    }
}
Całkowita średnia-root-kwadrat (RMS) w błąd jest przez pierwiastek kwadratowy z kwadratu średniej błędy:
double rmsError = Math.Sqrt( squaredError / (double)totalTrainingItems );
Wartość ta jest jednym ze sposobów, aby scharakteryzować ogólny błąd sieci z uwzględnieniem wszystkich przypadkach szkoleń.

7. Nauka

Nauka występuje wtedy, gdy waga i stronniczości wartości Neuron Neuron linki i organy są korygowane zgodnie z sieci określonych nakładów i wyjściowe wartości błędu.
Rozważmy sieć neuronowa z dwoma wejściami (x1 i x2), oraz dwa linki (z wag w1 i w2), i jeden neuron ciała, (y) i jedno wyjście.
neuron_network_single_neuron.jpg
Sieć neuronowa z dwoma wejściami i jeden neuron ciało i jednego wyjścia
Mamy pociąg ten neuron poprzez dostarczanie danych wejściowych, produkcja komputerów, komputerów w błąd, informatyka i uprzedzenia zmian wagi, odważniki i aktualizację i stronniczości, przybywających na nowe wagi ( w1', w2' ).
Jest bardzo ciekawy sposób na wizualizację tego procesu.
Możemy ustawić w zakresie wag jako wektor w wielowymiarowej przestrzeni.  Na przykład, dla dwóch wag mamy wektor W = (w1, w2) w dwuwymiarowej "przestrzeni kosmicznej wagi."
Gdy odważników są dostosowane, mamy nowe wagi wektora W' = (w1',w2').
Możemy wizualizację jako punkt W przeprowadzce do nowego punktu W' jako część procesu, aby zminimalizować błąd wyjścia.
Zazwyczaj nie obliczyć wynik błędu dla wszystkich możliwych kombinacji wagi, ponieważ ma nadzieję, że ciężar dostosowania procesu będzie skutecznie kieruj się w stronę najlepszej kombinacji.
Jednakże, poinformuj nas o powierzchni działki, że w istocie pokazuje, jak również Neuron spełnia wszystkie przedmioty w szkoleniu ustawić jako funkcja jego dwóch wag:
neuron_weight_space03.jpg
Suma kwadratu błędów szkolenia na określony jako zestaw funkcji dwóch wag (w1, w2)
Zasadniczo, w celu uczenia się jest descend do najniższego poziomu od tej powierzchni, gdy błąd jest zminimalizowane.
Po znalezieniu punktu W = (w1, w2) że daje minimalną wartość w tej powierzchni, uczenia się jest gotowy, a następnie możemy po prostu użyć wyszkolonych neuron.
Poniższy wykres pokazuje wynik wyszkolonych neuron jako funkcja wszystkich możliwych danych wejściowych X = (x1, x2):
neuron_input_space02.jpg
Neuron wyjściowy jako funkcja dwóch (x1, x2) wejść na wagę, że połączenie minimalizuje squared error
Nawet jeśli ważoną sumą dla tych dwóch neuron wejściowy jest po prostu (w1*x1 + w2*x2), funkcja aktywacji zamienia zwykłą obraca się w płaszczyźnie urwiska.
Powierzchnia ta ma prawidłowe wartości wyjściowych dla wszystkich kombinacji wejściowych (x1, x2) określone przez naszych szkoleń jest ustawiony.
Ale można sobie wyobrazić, jak wejściowe wektory X = (x1, x2) podobne do wartości szkolenia będzie również prowadzić do właściwej wartości wyjściowych; tej funkcji sieci neuronowych nazywany jest "uogólnienie" i jest główną wartością sieci neuronowe.
Jak próba "descend" powierzchni kwadratu błędu, musimy "krok przed polecamy!"
My aktualizacja wagi wektora i stronniczości, a następnie będziemy oceniać "wysokości" powierzchni na naszej nowej lokalizacji.
Jedną z konsekwencji jest to, że możemy przejść do punktu z bardziej ekstremalnych błąd.
Inną konsekwencją jest to, że może minąć trochę czasu, pochodzą z powrotem do głębi naszej poprzedniej lokalizacji.
Możliwość "leaping" do bardziej skrajnych szczytów i dolin błąd powierzchni jest bezpośrednio związane z "nauki stawkę," bo przez całe stawki określa jak duży wpływ mają wartości błędu na naszej wadze i uprzedzenia zmian.
Poniższy wykres pokazuje, w jaki sposób zwiększenie stawki hastens nauki naszego przybycia na niższych pozycjach na powierzchni kwadratu błędu, jeżeli błąd jest zminimalizowane.
Wykres pokazuje również, że zwiększenie stawki nauczania wprowadza również możliwość podejmowania złych kroki:
neuron_training_error1512_zoom.jpg
Krótkoterminowe tendencji root-znaczy-squared (RMS) błąd w trakcie całego szkolenia ustawić na kilka etapów szkoleń, kursów do nauki 0.1, 0.5, 1.0 i 2.0.
Poniżej znajduje się wykres z root-znaczy-squared wyjście błędu z wielowarstwową sieć z zestawu szkoleniowego z 19386 przedmiotów, które doświadczyły wiele złych kroków na drodze do najlepszej wagi wektorów:
neuron_training_error_spikes.jpg
Szkolenia niekiedy napotyka na skoki w root-znaczy-squared (RMS) błąd, gdy błąd podwyżki dla niektórych powtórzeń przed wznowienie tendencja spadkowa.
Czasami jest po prostu trend konwergencji płynnego do pożądanej zestaw wag:
neuron_training_error1512.jpg
Trend root-znaczy-squared (RMS) błąd w trakcie całego szkolenia ustawić na kilka etapów szkoleń, kursów do nauki 0.1, 0.5, 1.0 i 2.0.

8. Przykład: Exclusive lub (xor)

"Exclusive-lub" (xor) jest funkcja, która przyjmuje dwa logiczne wejść i plony jednym logiczne wyjście według poniższej tabeli:
X1
X2
Y = xor (X1, X2)
0
0
0
0
1
1
1
0
1
1
1
0
Ogólnie rzecz biorąc, pojedynczy neuron ma wejść {x1, x2, ...}, wprowadzanych za pomocą linków z ciężarkami {w1, w2, ...}.
W Neuron oblicza pośredni d = bias + (w1*x1 + w2*x2 + ...) ilości, które mogą być uznane za określenie, która płaszczyzna, w nieskończony zbiór równoległych płaszczyzn, zawiera punkt o współrzędnych określonych {x1, x2, ...}.
W neuron wyjściowy oblicza wartości, y = ActivationFunction( d ), która ma wpływ na podział nieskończony zbiór równolegle do płaszczyzny w dwóch zestawów, z jednego wyjście niskiej wartości produkcji, oraz zestaw innych produkcji o wysokiej wartości wyjściowych.
Tak więc, pojedynczy neuron wielowymiarowa przestrzeń dzieli się na dwa regiony, oddzielając je przecinkami płaszczyzny bias + w1*x1 + w2*x2 + ...  = 0, i przypisuje niskiej wartości do punktu wyjścia w regionie po jednej stronie samolotu, i przypisuje produkcja wysokiej wartości punktów w regionie po przeciwnej stronie z samolotu.
Tak więc, jeśli dwa zestawy punktów w wielowymiarowej przestrzeni kosmicznej mają odrębne klasyfikacje i mogą być całkowicie oddzielone płaszczyźnie, a następnie pojedynczy neuron może być użyty poprawnie sklasyfikować punkty z tych zestawów jako należące do jednego lub drugiego.
Wyłączne lub (xor) funkcji klasyfikuje się w dwóch punktach-wymiarowej przestrzeni (współrzędne z (x1, x2)) w taki sposób, że punkty w zestawie { (0,0), (1,1) } produkcji są klasyfikowane jako wyjściowy "0," a punkty w zestawie { (0,1), (1,0) } są klasyfikowane jako wyjściowy do produkcji "1."
Nie ma jednej "płaszczyźnie" (w tym przypadku, linia), które może rozdzielić te cztery punkty w dwóch zestawach.
Dlatego jednym neuron nie może być użyty do sklasyfikowania punkty zgodnie z wyłącznym lub (xor) funkcji.
Pojedynczy neuron może jedynie podzielić przestrzeń punktów w dwóch regionach.
Wyłączne lub (xor) funkcji klasyfikuje punkty w sposób, że zasadniczo dzieli dwuwymiarowy miejsca w trzech regionach (lub, alternatywnie, cztery regiony).
Dwa neuronów może podzielone dwuwymiarowej przestrzeni kosmicznej w trzech regionach (np. przez dwa odrębne równoległe linie), a tym samym mogą zostać wykorzystane do sklasyfikowania punkty zgodnie z wyłącznym lub (xor) funkcji.
Trzecia neuron może być użyty do połączenia wyjścia z dwóch pozostałych neuronów w jednym wyjściu.
Następujące sieć neuronowa, z dwoma wejściami, oraz dwóch organów neuron w pierwszej warstwy, a jednym neuron w drugiej warstwie, a jednym wyjściu, mogą być używane do sklasyfikowania punkty zgodnie z wyłącznym lub (xor) funkcji.
Następujące sieć neuronowa może być przeszkoleni, aby obliczyć wyłączne lub (xor) funkcji, lub sieć neuronowa może po prostu mieć swoją wagę i stronniczości wartości przypisane w sposób, że wywołuje pożądane zachowanie.
neuron_network_drawing.jpg
A sieć neuronowa zdolne do klasyfikacji punkty zgodnie z wyłącznym lub (xor)
Komputer kodu związanego z tym dokumencie pokazuje szkolenia w sieć neuronowa pokazano na rysunku powyżej pasuje do wyłącznej lub (xor) funkcji.
W sieci neuronowe, aby dowiedzieć się, czasami nie funkcji, ale oprogramowanie może zostać ponownie uruchomiony po prostu spróbować nauki z nowym zestawem pierwotnej wagi.
Jeśli oprogramowanie z powodzeniem uczy się wyłączne lub (xor) funkcję, a następnie wynik podobny do następującego:
x1 =   0.0000   x2 =   0.0000   y =   0.0172    error =   0.0172
x1 =   1.0000   x2 =   0.0000   y =   0.9802    error =  -0.0198
x1 =   0.0000   x2 =   1.0000   y =   0.9839    error =  -0.0161
x1 =   1.0000   x2 =   1.0000   y =   0.0154    error =   0.0154
Produkcja (y) jest w ciągu 2% pożądanej wartości dla każdego z czterech kombinacji zmiennych (x1, x2).
Mimo że był szkolony w sieci, aby dowiedzieć się wyjściowe wartości dla jedynie czterech kombinacji zmiennych (o wartości 0.0 i 1.0, reprezentujących wartościami logicznymi), nakłady na sieć neuronowa może być ustawiony na dowolnym pływających punktu wartości.
Poniższy obrazek pokazuje wyjście z wyszkolonych sieć neuronowa dla wielu kombinacji wejściowych wartości:
neuron_xor_surface02.jpg
A sieć neuronowa zdolne do klasyfikacji punkty zgodnie z wyłącznym lub (xor)
Powierzchni stanowi wyjście z sieci neuronowe dla wszystkich możliwych kombinacji wejściowych (x1, x2) w zakresach [ -2.0, +2.0 ].
W produkcji jest zbliżony do 0.0 obniża na obszarach powierzchni, a wynik jest zbliżony do 1.0 na najwyższym obszarów powierzchni.
Należy pamiętać, że powierzchnia jest za niska w punktach { (0,0), (1,1) }, powierzchni i jest wysoka na punkty { (0,1), (1,0) }.
Sieć była tylko wyszkolonych do wytwarzania pożądanych wyników dla czterech szczególnych kombinacji zmiennych wejściowych, ale również tworzy sieć neuronowa wyjścia dla wszystkich innych możliwych kombinacji wartości wejściowych.
Zdolność do tworzenia sieci neuronowych rozsądnej odpowiedzi na ogólne przypadkach po wyszkolonych w szczególnych przypadkach może być traktowana jako "uogólnienie."
Każdy proces, który pasuje do danych wskazuje na modelu, takich jak punkty do montażu linii krzywej lub innych, również produkuje "Generalizacja" skutek, tak więc fakt, że jedna sieć neuronowa wyposażenia do produkcji pożądanych wyników dla poszczególnych lekcji wyników w rodzaju uogólnienie nie jest nadzwyczajnym, ale mimo to interesujące obserwować zdolność do uogólnić od konkretnych przypadków.

9. Przykład: Tic-tac-toe "(Naughts i Krzyży)"

9.1 Wstęp

Tic-tac-toe "(Naughts i krzyże)" jest prosta gra zagrał na 3 * 3 siatki komórek, które mogą być oznaczone "O" lub "X".
Gracze na zmianę miejsca "O" i "X" znaków w wolnej komórki, dopóki jeden z graczy uzupełnia wiersz, kolumna, lub diagonalnej.
Ponieważ znajdują się 3 wiersze i 3 kolumny, i 2 przekątnych, osiem zwycięskiej wzorce dla każdego gracza.
tic_tac_toe_board_and_winning_patterns.jpg
Tic-Tac-Toe pokładzie i wzorce wygranej
To jest trywialne napisać funkcja rekursywna, że bada wszelkie możliwe Tic-Tac-Toe gry, ponieważ maksymalny czas trwania gry wynosi dziewięć ruchów.
Na każdy punkt w grze po prostu bada rezultaty ruchu w każdym z pozostałych komórek pustostanów.
Taka funkcja może potwierdzić, że gra Tic-Tac-Toe odtwarzane z "doskonałą gracze" z końca I nagrody nie przyznano.

9.2 Szkolenia sieci neuronowych do wskazania najlepszych ruchów

A recursive funkcja może zbadać wszystkie możliwe gry i określenie najlepszych przenieść na pokładzie każdego konfiguracji.
Mamy dodać pokładzie każdej konfiguracji (nakładów), a najlepiej poruszać (pożądanych wyników), wykaz przedmiotów szkolenia.
Następnie pociągiem do sieci przyniosły pożądanych wyników dla każdego zestawu danych wejściowych.
Sieć będzie musiała wejść 9 odpowiadających każdej komórce siatki, oraz wartości wejściowych będzie ograniczona do następujących wartości:
0: pustostanów komórki
+1: Protagonista gracza
-1: Opponent gracza
Sieć będzie miał 9 wyników odpowiadających każdej komórce sieci, a dane wyjściowe wartości będzie ograniczona do następujących wartości:
0: Nie przenieść tutaj
1: Przenieś tutaj
Osiem wyjść zostanie ustawiona na "0," i jeden wyjściowy będzie ustawiona na "1."
Tak, po szkoleniu w sieci neuronowych, wyżywienie konfiguracja może być określone jako wkład, oraz sieć neuronowa będzie wskazać najlepszych przenieść.
Produkcja najbliżej do "1" wskaże najlepsze przenieść, i wszystkie inne wyjścia powinno być zbliżone do "0."
Ogólnie rzecz biorąc, każda z funkcji boolowskich parametry i logiczna wyjść może być reprezentowana przez sieć neuronowa z dwóch warstw neuronów.
W pierwszej warstwy neuronów można podzielić w wielowymiarowej przestrzeni kosmicznej do regionów, a druga warstwa łączy region klasyfikacje do wyprodukowania odpowiedniej wartości wyjściowych.
W Tic-Tac-Toe sieć neuronowa produkuje logiczna wyjść i wejść, chociaż są trzy państwa ( -1, 0, +1 ), moglibyśmy, w princple, konwertować te kilka wartości dyskretne wejście na zestaw wejść logiczna.
W związku z dwóch warstw neuronów powinna być wystarczająca, aby dowiedzieć się Tic-Tac-Toe.
Ponieważ sieć ma 9 wyjść, istnieją 9 Neuron organów w finale (drugi) warstwy.
Jedyne sieć neuronowa projektu decyzji w podejmowaniu decyzji jest liczba Neuron organów do wprowadzenia w pierwszej warstwy z sieci neuronowych.
Aby dokonać tej decyzji, komputer może wygenerować kod i szkolić sieć neuronowa z N neuronów w pierwszej warstwie.
Zdolność do sieci neuronowe, aby dowiedzieć się kompletny zestaw szkoleń dla Tic-Tac-Toe można na wykresie.
Poniższy wykres pokazuje ogólny zestaw błąd w trakcie szkolenia zawodowego dla każdego z 48 różnych sieci neuronowe, z N = 1,2,...,48 neuronów w pierwszej warstwie.
neuron_training_tictactoe_nlayers01.jpg
Ogólnie zestaw błąd w trakcie szkolenia zawodowego, N = 1,2,...,48 neuronów w pierwszej warstwie (N = 1 jest na górze, i N = 48 jest na dole, a najbardziej krzywe pośrednie są niższe dla wyższych wartości N)
Innym sposobem wizualizacji tej tendencji jest forma powierzchni z krzywymi kolejności:
neuron_training_tictactoe_surface01.jpg
Ogólnie zestaw błąd w trakcie szkolenia zawodowego, N = 1,2,...,48 neuronów w pierwszej warstwie (N = 1 jest z tyłu, i N = 48 jest z przodu)
Tak więc, jak widzimy, że mamy podejście N = 48 neuronów w pierwszej warstwie sieci wydaje się być w stanie przyjąć wszystkich przypadkach szkoleń.
Wszystko mniej niż 48 poziomów neuronów wydaje się niewystarczająca, aby dowiedzieć się kompletny zestaw przypadkach.
Na niskie liczby neuronów, każdy dodatkowy neuron znacznie zmniejsza ogólny błąd.
Jednakże, jeżeli liczba neuronów jest zbliżona do liczby wymaganych, aby dowiedzieć się cały zestaw lekcji, każdy dodatkowy neuron tylko zmniejsza błąd przez stosunkowo niewielką kwotę.
Poniższy obrazek pokazuje sieć neuronowa z wejściami 9, 48 i organów neuron w pierwszej warstwy, neuron i 9 jednostek w drugiej warstwie, i 9 wyjść.
tic_tec_toe_network.jpg
A sieć neuronowa zdolne do uczenia się grać tic-tac-toe
Komputer kodu związanego z tym dokument zawiera kod do budowania i pociągów w sieci neuronowych wykazano powyżej.
Szkolenie posiada zestaw elementów szkolenia 4520.
W 200 szkoleń powtórzeń (z udziałem 3 rozmnażania kroki, łącznie z symulacją 200 * 4520 * 3 = 2712000 kroki i tym samym liczbę kroków propagacji błędów), ogólna błąd zmniejszył się z 1.520 do 0.153.
(Liczby te mogą się różnić w zależności od warunków początkowych losowych).
Szkolenie wymagane kilka minut.
Poniżej znajdują się dwa przykłady określonych wejść i wyjść produkowane z wyszkolonych sieć neuronowa:
Scenario #1:

Input:
  1.0000 -1.0000  0.0000
  0.0000  1.0000 -1.0000
 -1.0000  0.0000  0.0000

Best move:
  0.0001  0.0000  0.0676
  0.0001  0.0000  0.0000
  0.0000  0.0000  0.9870


Scenario #2:

Input:
 -1.0000 -1.0000  0.0000
  1.0000  1.0000  0.0000
  0.0000  0.0000  0.0000

Best move:
  0.0000  0.0000  0.0859
  0.0000  0.0000  0.9819
  0.0000  0.0000  0.0000
W sieci został wyszkolony do produkcji najlepszych przenosi do gracza, którego znak odpowiada "+1."
Najlepiej przenieść do przeciwnika gracz, którego znak odpowiada "-1," można znaleźć poprzez pomnożenie przez wszystkie komponenty (-1) przed symulacja sieci neuronowych.

10. Szkolenia sieci neuronowe

Poniżej znajduje się cytatem z "Artificial Intelligence" (3rd edition; Addison Wesley; 1993), Patrick Henry Winston, rozdział 22, Learning by Training Neural Nets, p.  468.
Neural-Net Szkolenie jest sztuką
Teraz wiesz, że masz wiele twarzy wyborów po zdecydować się na pracę na problem poprzez szkolenia z wykorzystaniem sieci neuronowych powrót rozmnażania:
* Jak można reprezentuje informacje w sieci neuronowych?
Jak można używać sieci neuronowych wejść do wyrażenia tego, co wiesz?
Jak można używać sieci neuronowych wyjścia do określenia, co chcesz wiedzieć?
* Ile neuronów powinna masz w swojej sieci neuronowe?
Ile wejść?
Ile wyjść?
Ile ciężarów?
Jak wielu warstw ukrytych?
* Jakie stawki parametru należy użyć w back-propagation wzoru?
* Jeśli twój pociąg sieci neuronowych w etapach lub jednocześnie?
Złe wybory prowadzić do słabych wyników.
A małe sieci neuronowe nie mogą dowiedzieć się, co chcesz go nauczyć.
A big netto będzie dowiedzieć się powoli, może utknąć na lokalne maksima i mogą wykazywać overfitting.
Niewielki wskaźnik parametru może promować niestabilności lub świadczenia słabe prognozy.
Niestety, wybór właściwego zależy od charakteru próbek.
Matematycznie można wyświetlić za reprezentatywne glimpses o ukrytych funkcji, z czego jeden wymiar dla każdego z wejść.
Jeśli istnieje wiele wejść, wielowymiarowy charakter funkcji sprawia, że trudno jest działać i myśleć o niemożliwe do wizualizacji.
W związku z tym najlepszym przewodnikiem do wyborów jest prób i błędów, buttressed, jeśli to możliwe, przez odniesienie do wyborów, które również pracowały w podobnych problemów.
W związku z tym udane rozmieszczenie neuronowych-NET wymaga czasu i doświadczenia.
Neural-net ekspertów są artyści, nie są one jedynie podręcznik użytkowników.

11. Tworzenie wartości wejściowe i wyjściowe wartości odpowiedniej dla sieci neuronowych

W modelu matematycznego z Neuron ciało przedstawione w niniejszym dokumencie tworzy wartości wyjściowych przy użyciu "funkcji logistycznych sigmoid" (tj. ( 1 / (1 + Exp(-x)) )).
Dlatego produkty są ograniczone do zakresu od 0.0 do 1.0.
Tak, modelu matematycznego do sieci neuronowych przedstawione w niniejszym dokumencie mogą być bezpośrednio wykorzystywane do nauki i realizacji produkcji w zakresie od 0.0 do 1.0, takich jak wartość logiczna wyjść, wyjść do pracy ciągłej lub ograniczone do części tego zakresu.
Jednak w sieci mogą być również wykorzystywane do nauki i realizacji produkcji w każdym razie ograniczony zakres produktów są konwertowane do iz od 0.0 do 1.0.
Załóżmy, że ostatecznej wartości wyjściowe są ograniczone do zakresu od P do Q, i załóżmy Z stanowi arbitralne końcowy produkcja ogranicza się do wartości z zakresu P do Q, i załóżmy Y odpowiadające stanowi sieć neuronowa wyjście ograniczone do zakresu: 0.0 do 1.0.
Następujące formuły może być użyty do konwersji pomiędzy dwoma rodzajami produkcji wartości:
Y  = (Z - P)  /  (Q - P);          // Q > P; Q != P

Z  =   P  +  (Q - P) * Y;          // Q > P
Przeliczanie ostateczne wyjście na sieć neuronowa wyjścia jest niezbędne w trakcie szkolenia.
Konwersję sieć neuronowa wyjścia do ostatecznej produkcji jest niezbędne podczas normalnego symulacji.
Wejścia do sieci neuronowe nie są tak ograniczone, jak wyjść, ponieważ linki mają wartości masy, które mogą wzmocnić wkład w złagodzeniu lub wartości arbitralnie.
Niemniej jednak, wejście wartości daleko poza zakres od -1.0 do 1.0 może powodować problemy, ponieważ przed wagi mają szansę na dostosowanie się, skrajnych wartości najpierw przyjechać jako parametr do "logistyczne sigmoid funkcja" ( 1 / (1 + Exp(-x)) ).
Ekstremalne wartości tej funkcji pozwoli na wyjście z Neuron bardzo blisko 0.0 lub 1.0, gdy błędy i propagowanie wstecz za pośrednictwem sieci do tego neuron, błąd będzie ważona przez (Output * (1 - Output)), które będą bardzo małe.
Dlatego, przebudowę oryginalny wkład do wartości z zakresu 0.0 do 1.0 przed tych wartości do wejścia w sieć neuronowa jest chyba dobrym pomysłem.
Załóżmy, oryginalny wkład wartości są ograniczone do zakresu od A do B, i załóżmy W stanowi arbitralne oryginalny wkład ogranicza się do wartości z zakresu A do B, i załóżmy X stanowi sieć neuronowa naliczonego odpowiadającą wartości, które zdecydują się ograniczyć do od 0.0 do 1.0.
Następującego wzoru może być używany do konwertowania oryginalnych wartości wejściowych do wartości właściwe dla dostarczania do sieci neuronowych.
(Nie ma potrzeby konwertowania sieć neuronowa wejściowych wartości do wartości wejściowych w pierwotnym zakresie.)
X  = (W - A)  /  (B - A);          // B > A; B != A

12. Referencje

Następujące książki mogą być przydatne w zrozumieniu sieci neuronowych i ich zastosowań.
[1] Artificial Intelligence (3rd ed) (Patrick Henry Winston; Addison-Wesley; 1993)
Ta książka jest bardzo interesujące i przydatne.
Autor opisuje wiele fascynujących tematów, z przykładami, wystarczająco szczegółowo, aby umożliwić korzystanie z pojęciami w sytuacjach praktycznych.
Autor opisuje sieci neuronowe i uczenie się "na rozmnażanie" w znaczących szczegółów, w tym indeks matematycznych.
[2] Artificial Intelligence: A New Synthesis (Nils J Nilsson; Morgan Kaufmann; 1998)
Ta książka, tak jak odniesienia [1], jest fascynująca i praktyczne wprowadzenie do sztucznej inteligencji.
Jednak ta książka jest nieco bardziej zwięzła niż [1] odniesienia.
Myślę, że dana osoba będzie korzystać z obu [1] czytania i [2].
Chciałbym tylko polecam tę książkę, jeśli masz duże zainteresowanie we wszystkich Artificial Intelligence, mając na uwadze polecam odniesienia [1] nawet do tych którzy są szczególnie zainteresowani nauki o sieci neuronowe.
[3] Focus on AI (Prima Tech / Prima Publishing)
Część z gier serii rozwoju edytowany przez Andre LaMothe.
Ta książka jest przydatna dla programistów gier, a komputer jest wypełniona przykładami kodu wykazać, że sieci neuronowe, algorytmy genetyczne i logika rozmyta, wszystkie stosowane do gry zachowanie charakteru.
colinfahey.com
informacje kontaktowe
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية