Politechnika Radomska1 , Politechnika Radomska


Politechnika Radomska

Wydział:

Nauczycielski

Kierunek:

Informatyka

Grupa:

L3

Przedmiot:

Techniczne zastosowanie sieci neuronowych.

Temat:

1-7

Prowadzący:

Mgr A. Hermanowicz

Wykonała:

Tuszyńska Katarzyna

Data:

27.03.2008

Ocena:

  1. Cel:

Celem zadania jest skonstruowanie sieci neuronowej MLP [1] bez uczenia o strukturze 2x5x3x1 (Rysunek nr 1). Sprawdzenie odpowiedzi sieci i jej granic decyzyjnych. Przeprowadzenie testów dla dwóch różnych funkcji aktywacji:

f(x) = 0x01 graphic
(1)

f(x) = 0x01 graphic
(2)

  1. Struktura sieci:

0x08 graphic

Rys. 1. Struktura sieci 2x5x3x1

  1. Funkcje aktywacji:

Funkcje aktywacji podane są w punkcie 1. (Równania (1) i (2)).

  1. Opis programu:

Rysunek nr 2 przedstawia interfejs graficzny programu. Dane do programu można wprowadzać na dwa sposoby:

W miejsce myślników po wciśnięciu przycisku „Wagi losowe” ukażą się losowe wagi.

0x08 graphic

Rys. 2. Interfejs graficzny programu

0x01 graphic

Rys. 3. Okno pojawiające się po wciśnięciu przycisku „Wprowadź dane”

0x08 graphic

Rys. 4. Wynik programu dla pierwszej z funkcji aktywacji przy podanych wagach

0x01 graphic

Rys. 5. Wynik programu dla drugiej z funkcji aktywacji przy podanych wagach

Rys. 4 i Rys. 5 przedstawiają wynik programu dla tych samych danych, ale przy zastosowaniu dwóch różnych funkcji aktywacji.

  1. Kod źródłowy:

public double f1(double n)

{

double w;

w=1/(2+Math.Exp(-n));

return w;

}

public double f2(double n)

{

double w;

w = (1 - Math.Exp(-n)) / (1 + Math.Exp(-n));

return w;

}

public double wy(double[] wej, double[] wa)

{

wyne = 0;

for (int i = 0; i <= wa.Length - 2; i++)

{

wyne = wyne + wa[i] * wej[i];

}

wyne = wyne + wa[wa.Length - 1];

return wyne;

}

public void wątek1()

{

int x;

int y;

double[] wej = new double[2];

double[] wej2 = new double[5];

double[] wej3 = new double[3];

double ks = 0;

Random los = new Random();

while (true)

{

x = los.Next(-100, 100);

wej[0] = x;

y = los.Next(-100, 100);

wej[1] = y;

if (radioButton1.Checked == true)

{

double ne1 = n.wy(wej, wa1);

wej2[0] = n.f1(ne1);

double ne2 = n.wy(wej, wa2);

wej2[1] = n.f1(ne2);

double ne3 = n.wy(wej, wa3);

wej2[2] = n.f1(ne3);

double ne4 = n.wy(wej, wa4);

wej2[3] = n.f1(ne4);

double ne5 = n.wy(wej, wa5);

wej2[4] = n.f1(ne5);

double ne6 = n.wy(wej2, wa6);

wej3[0] = n.f1(ne6);

double ne7 = n.wy(wej2, wa7);

wej3[1] = n.f1(ne7);

double ne8 = n.wy(wej2, wa8);

wej3[2] = n.f1(ne8);

double ne9 = n.wy(wej3, wa9);

ks = n.f1(ne9);

Graphics g = Graphics.FromImage(bmp);

Brush gr = new SolidBrush(Color.Green);

Pen z = new Pen(Color.Green, 1.0f);

Brush re = new SolidBrush(Color.Red);

Pen r = new Pen(Color.Red, 1.0f);

Brush bl = new SolidBrush(Color.Blue);

Pen b = new Pen(Color.Blue, 1.0f);

if (ks >0)

{

g.DrawEllipse(z, x + 100, 100 - y, 3, 3);

g.FillEllipse(gr, x + 100, 100 - y, 3, 3);

}

else if (ks < 0)

{

g.DrawEllipse(r, x + 100, 100 - y, 3, 3);

g.FillEllipse(re, x + 100, 100 - y, 3, 3);

}

else

{

g.DrawEllipse(b, x + 100, 100 - y, 3, 3);

g.FillEllipse(bl, x + 100, 100 - y, 3, 3);

}

pictureBox1.Image = bmp;

pictureBox1.Invalidate();

g.Dispose();

}

if (radioButton2.Checked == true)

{

double ne1 = n.wy(wej, wa1);

wej2[0] = n.f2(ne1);

double ne2 = n.wy(wej, wa2);

wej2[1] = n.f2(ne2);

double ne3 = n.wy(wej, wa3);

wej2[2] = n.f2(ne3);

double ne4 = n.wy(wej, wa4);

wej2[3] = n.f2(ne4);

double ne5 = n.wy(wej, wa5);

wej2[4] = n.f2(ne5);

double ne6 = n.wy(wej2, wa6);

wej3[0] = n.f2(ne6);

double ne7 = n.wy(wej2, wa7);

wej3[1] = n.f2(ne7);

double ne8 = n.wy(wej2, wa8);

wej3[2] = n.f2(ne8);

double ne9 = n.wy(wej3, wa9);

ks = n.f2(ne9);

Graphics g = Graphics.FromImage(bmp);

Brush gr = new SolidBrush(Color.Green);

Pen z = new Pen(Color.Green, 1.0f);

Brush re = new SolidBrush(Color.Red);

Pen r = new Pen(Color.Red, 1.0f);

Brush bl = new SolidBrush(Color.Blue);

Pen b = new Pen(Color.Blue, 1.0f);

if (ks > 0)

{

g.DrawEllipse(z, x + 100, 100 - y, 3, 3);

g.FillEllipse(gr, x + 100, 100 - y, 3, 3);

}

else if (ks < 0)

{

g.DrawEllipse(r, x + 100, 100 - y, 3, 3);

g.FillEllipse(re, x + 100, 100 - y, 3, 3);

}

else

{

g.DrawEllipse(b, x + 100, 100 - y, 3, 3);

g.FillEllipse(bl, x + 100, 100 - y, 3, 3);

}

pictureBox1.Image = bmp;

pictureBox1.Invalidate();

g.Dispose(); }

Thread.Sleep(100);

}

}

  1. Dane:

Dane wejściowe to wektory dwuwymiarowe, każda składowa wektora wejściowego zawiera się w przedziale od -1 do 1.

  1. Wnioski:

  • Bibliografia:

    1. Masters T. Sieci neuronowe w praktyce, WNT, Warszawa 1996.

    0x01 graphic

    0x01 graphic

    0x01 graphic



    Wyszukiwarka

    Podobne podstrony:
    Metrologia-lab-Mostek Wheatstona, WHEATS 2, POLITECHNIKA RADOMSKA
    Politechnika Radomska, Politechnika Radomska
    Metrologia-lab-Pomiary Parametrów Drgań Mechanicznych, drgania, Politechnika Radomska
    Wzmacniacz rezonansowy, Lab.Wzmacniacz rezonansowy, POLITECHNIKA RADOMSKA
    Metrologia-lab-Pomiary Parametrów Drgań Mechanicznych, Drgania mechaniczne PROTO, POLITECHNIKA RADOM
    Tranzystor w układach przełączających, uk.prz., POLITECHNIKA RADOMSKA
    Metrologia-lab-Pomiary Parametrów Drgań Mechanicznych, Drgania mechaniczne SPR, POLITECHNIKA RADOMSK
    PIERSC, Politechnika Radomska
    Metrologia-lab-Pomiary Kompensacyjne, POMKOM 1, POLITECHNIKA RADOMSKA
    BADANIE LICZNIKA INDUKCYJNEGO 1FAZOWEGO, licznik-radzio.spr, POLITECHNIKA RADOMSKA
    Metrologia-lab-Pomiar strumienia magnetycznego oraz indukcji magnetycznej, Strumień1SPR, POLITECHNIK
    METODYKA OPRACOWYWANIA WYNIKÓW POMIAROWYCH, MET0DYKA-spr., POLITECHNIKA RADOMSKA
    Metrologia-lab-Pomiary Indukcyjności i Pojemności, Mostki SPR, POLITECHNIKA RADOMSKA
    Metrologia-lab-Ocena błędów pomiaru pośredniego, OC BL S, POLITECHNIKA RADOMSKA
    Metrologia-lab-Pomiary Oscyloskopowe, OSCYL P, POLITECHNIKA RADOMSKA
    Wzmacniacz tranzystorowy, V, POLITECHNIKA RADOMSKA
    Metrologia-lab-Rozszerzenie Zakresu Pomiarowego, ROZSZE 1, POLITECHNIKA RADOMSKA
    Błąd Pośredni, OC BL S, POLITECHNIKA RADOMSKA
    pierścień2, Politechnika Radomska Wydział Transportu

    więcej podobnych podstron