|
TwojePC.pl © 2001 - 2026
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
Sieci neuronowe. Algorytm DELTA i uczenie neuronu , Koy 25/06/05 22:40 ma ktos moze jakies programiki w C++ obrazujace dzialanie tego algorymu?? Staram sie zrozumiec jego dzialanie i bardzo by mi sie przydaly jakies napisane algorytmy jak ten neuron sie uczy i losuje wagi
Jesli macie to prosze rzucie cos na
Z gory dzieki wszystkim za pomocKoy - no wagi sa losowe , Deus ex machine 25/06/05 22:56
na poczatku, pozniej w miare uczenia sobie koryguje. DELTA to siec z jednego neuronu i zalezy jaki wzor stosujesz, ja chyba stosowalem funkcje transportowa (czy jakos tak). wagi w zakrezie 0,1 do 0,5. Pozniej czy uczenie z nauczycielem, czy bez. Liczysz wynik na 1 synapsie i mowisz mu czy dobry czy zly, jesli dobry to nie modyfikujesz wagi na synapsie, jesli zly to modyfikujesz (tu jest wzor jako pochodna wzoru z funkcji wyniku) - ciezko tak wyjasnic, ale w ksiazce mialem. Soft pisalem w delphi, jakby co moge gdziesz poszukac.
moze tu Ci cos pomoze http://www.nrn.prv.pl/"Uti non Abuti" - witam , Koy 25/06/05 23:08
a znasz sie na C++ ???bo ja mam to w 80% napisane tzn. mam losowanie wag, etap testu i obliczenia i wzor tez tam jest podany. Tylko mi kurcze nie wyswietla tych obliczen na ekranie tylko ten etap testu. Wiec brakuje mi pare linijek kodu chyba i by bylo wszystko poprawnie. Jesli zansz sie na C++ i byl bys wstanie to wyswietlanie mi dorobic i w paru slowach wytlmaczycco sie ztym dzieje to bym Ci podeslal to co mam i oczywiscie z gory wilekie dzieki Apropo to jest nauka "z nauczycielem"Koy - to jest ten kod ktory napisalem do tego zadania , Koy 25/06/05 23:14
nieiwme czy na 100% jest w nim dobrze. Stworzylem go tylko z tego co zdolalem zapisac w zeszycie na wykladzie. I nie berdzo wiem co on liczy nawet:( no i tego wyswietlenie tych obliczen nie potrafie juz dodac:(. Pomomze ktos?? oto zrodlo:
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <alloc.h>
#include <iostream.h>
float wg1, wg2, wg3;
float wsp_ucz = 0.1;
float e;
int y;
int x1[] = {0,0,1,1};
int x2[] = {0,1,0,1};
int x3[] = {1,1,1,1};
int d[] = {0,1,1,1}; //wynik
int blad[4];
void main()
{
void randomize(void);
wg1=random(100);
wg1=wg1-50;
wg1=wg1/50;
wg2= random(100);
wg2= wg2-50;
wg2= wg2/50 ;
wg3= random(100);
wg3= wg3-50;
wg3= wg3/50;
cout<<"Wylosowano wagi.\n";
cout<<"Waga 1 = "<<wg1<<"\n";
cout<<"Waga 2 = "<<wg2<<"\n";
cout<<"Waga 3 = "<<wg3<<"\n";
for(int i=0;i<4;i++)
{
e = x1[i] * wg1 + x2[i] * wg2 + wg3; //wzor
cout<<"e="<<e<<"\n";
if (e<0) y=0; else y=1;
cout<<"y= "<<y<<"\n";
}
}
void oblicz()
{
do
{
for(int i=0;i<4;i++)
{
e = x1[i] * wg1 + x2[i] * wg2 + x3[i]* wg3; //wzor
if (e<0) y=0; else y=1; //zalozenia
cout<<"y= "<<y<<"\n";
blad[i] = d[i] - y;
wg1=wg1 + wsp_ucz * blad[i] * x1[i];
wg2=wg2 + wsp_ucz * blad[i] * x2[i];
wg3=wg3 + wsp_ucz * blad[i] * x3[i];
}
} while (blad[0]!=0 || blad[1]!=0 || blad[2]!=0 || blad[3]!=0);
cout<<"waga1 "<<wg1<<"\n";
cout<<"waga2 "<<wg2<<"\n";
cout<<"waga3 "<<wg3<<"\n";Koy
|
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2026, TwojePC.PL |
 |
|
|
|