Sieć Neuronowa
Propagacja Wsteczna

neural.neuron
Class Neuron

java.lang.Object
  |
  +--neural.neuron.Neuron
Direct Known Subclasses:
BiasedNeuron

public class Neuron
extends Object

Neuron.

Author:
Bartłomiej Starosta

Field Summary
protected  ActivationFunction actFun
          Funkcja aktywacji.
protected  double error
          Błąd tego neuronu.
protected  Slot[] inputs
          Tablica wejść.
protected  Slot output
          Wyjście.
protected static Random rand
          Generator liczb losowych dla wag.
protected  double sum
          Suma ważona wysgnałów wejściowych i wag.
protected  double[] weights
          Wagi.
 
Constructor Summary
Neuron(double[] w, ActivationFunction af)
          Konstruktor z wagami.
Neuron(int ins)
          Neuron z domyślną funkcją aktywacji UnipolarSigmoid.
Neuron(int ins, ActivationFunction af)
          Konstruktor neuronu do uczenia.
 
Method Summary
 void adjustWeights(double learningRate)
          Poprawianie wag w algorytmie propagacji wstecznej.
 void connect(Neuron n, int in)
          Łączy wyjście innego neuronu z podanym wejściem.
 void connect(Slot s, int in)
          Dołącza obiekt typu Slot do podanego wejścia.
 Neuron fire()
          Umieszcza na wyjściu wartość obliczoną na podstawie wejść.
(package private)  double getError(double out)
          Oblicza błąd neuronu ostatniej warstwy.
(package private)  double getError(int pos, Neuron[] next)
          Oblicza błąd neuronu dla warstw innych niż ostatnia.
private  double getErrorAndWeight(int pos)
          Oblicza iloczyn błędu neuronu i podanej wagi.
 Slot getSlot()
          Zwraca odniesienie do obiektu klasy Slot - wyjścia tego neuronu.
 String toString()
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

actFun

protected ActivationFunction actFun
Funkcja aktywacji.

error

protected double error
Błąd tego neuronu. Kiedy wartość błędu jest nieaktualna przypisuje się tej zmiennej wartość nieokreśloną.

inputs

protected Slot[] inputs
Tablica wejść. Każde z nich jest odniesieniem do obiektu klasy Slot, które trzeba dostarczyć podczas łączenia z innymi neuronami lub źródłami sygnałów wejściowych.

output

protected Slot output
Wyjście. Inicjowane podczas tworzenia obiektu.

rand

protected static Random rand
Generator liczb losowych dla wag.

sum

protected double sum
Suma ważona wysgnałów wejściowych i wag. Pojawia się na wyjściu sumatora. Potrzebna podczas uczenia.

weights

protected double[] weights
Wagi.
Constructor Detail

Neuron

public Neuron(double[] w,
              ActivationFunction af)
Konstruktor z wagami. Pobiera tablicę wag i funkcję aktywacji.
Parameters:
w - tablica wag
af - funkcja aktywacji

Neuron

public Neuron(int ins)
Neuron z domyślną funkcją aktywacji UnipolarSigmoid. Ustala losowe wagi.
Parameters:
ins - liczba wejść

Neuron

public Neuron(int ins,
              ActivationFunction af)
Konstruktor neuronu do uczenia. Pobiera liczbę wejść i funkcję aktywacji. Ustala losowe wagi.
Parameters:
ins - liczba wejść
af - funkcja aktywacji
Method Detail

adjustWeights

public void adjustWeights(double learningRate)
Poprawianie wag w algorytmie propagacji wstecznej.
Parameters:
learningRate - stała uczenia

connect

public void connect(Neuron n,
                    int in)
Łączy wyjście innego neuronu z podanym wejściem.
Parameters:
n - neuron, którego wyjście dołączamy
in - numer wejścia, do którego dołączamy neuron

connect

public void connect(Slot s,
                    int in)
Dołącza obiekt typu Slot do podanego wejścia.
Parameters:
s - połączenie
in - numer wejścia

fire

public Neuron fire()
Umieszcza na wyjściu wartość obliczoną na podstawie wejść.
Returns:
this

getError

double getError(double out)
Oblicza błąd neuronu ostatniej warstwy. Dotyczy algorytmu propagacji wstecznej.
Parameters:
out - oczekiwana wartość na wyjściu tego neuronu
Returns:
wyliczony błąd

getError

double getError(int pos,
                Neuron[] next)
Oblicza błąd neuronu dla warstw innych niż ostatnia. Dotyczy algorytmu propagacji wstecznej.
Parameters:
pos - pozycja tego neuronu w warstwie
next - tablica neuronów w następnej warstwie
Returns:
wyliczony błąd

getErrorAndWeight

private double getErrorAndWeight(int pos)
Oblicza iloczyn błędu neuronu i podanej wagi. Używane w algorytmie propagacji wstecznej.
Parameters:
pos - pozycja tego neuronu w warstwie
Returns:
błąd * waga[pos]

getSlot

public Slot getSlot()
Zwraca odniesienie do obiektu klasy Slot - wyjścia tego neuronu.
Returns:
wyjście tego perceptronu

toString

public String toString()
Overrides:
toString in class Object

Sieć Neuronowa
Propagacja Wsteczna

Materiały dydaktyczne do zajęć NAI
Bartłomiej Starosta, barstar(at)pjwstk(dot)edu(dot)pl
PJWSTK 2001/2002