Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Exemple de probleme ce se pot rezolva cu RN
O RN capabila sa invete orientarea unui segment, segmentul fiind preyentat pe 5X5 pixeli cu 4 orintari:
In privinta alegerii sabloanelor se recomanda sa se aleaga mai multe sabloane, nu doar unul singur.
Sabloanele se pot alege uniform sau neuniform.
Pentru fiecare clasa de iesire se va alege acelasi numar de sabloane.
Alegerea neuniforma = numar diferit de sabloane pentru forme diferite de iesire.
Alegerea uniforma se utilizeaza atunci cind in problema respectiva formele apara cu aceeasi probabilitate.
In privinta numarului de neuroni din stratul ascuns un numar prea mare implica un numar mare de ponderi cu 2 dezavantaje dureaza mai mult invatarea si s-a aratat ca prea multe ponderi conduce la generalizari slabe din partea retelei. Generalizarea se refera la capacitatea RN de a recunoaste alte forme apropiate de cele invatate.
In privinta numarului de neuroni de iesire putem sia colo sa alegem uneori intrre mai multe posibilitati: o RN care pe baza unor intrari clasifica o piesa in buna sau defecta ( RN folosita in diagnoza de defecte) putem sa o proiectam ca un neuron de iesire sau cu 2 neuroni de iesire.
In invatarea supervizata datele disponibile, in general, se impart in 2 categorii: cea mai mare parte din datele disponibile (80%) sunt folosite pentru invatare (pentru determinarea ponderilor) iar restul de date (20%) sunt folosite pentru validarea antrenarii, pentru antrenare.
Intrarile unei retele neuronale pot fi binare, analogice sau mixte. In general intrarile care sunt analogice trebuie preprocesate.
Exemplu de preprocesare: daca avem o intrare ce specifica virsta unui elev nu este indicat sa o folosim ca o intrare analogica ci una in binar.
< 20
> 20
categorii: > 18, (18,20), (20,25), > 25
Exemplu de aplicatie in care intrarile sunt analogice:
trebuie sa clasificam o curba prezentata retelei in 3 clase
pe RN vom da Y numerelor de puncte ce corespund unor puncte X egal departate.
Ca preprocesare pentru intrari ar fi aducerea domeniului de valori [0,10] in [0,1].
[a, b] [c, d]
Le aducem in [0,1] pentru a fi compatibile cu domeniul de iesire a unui neuron artificial.
ALGORITMUL BACK-PROPAGATION
propagare inainte (forward propagation)
propagare inapoi (back propagation)
La propagarea inainte se propaga intrarile sablonului curent. Plecand de la intrari se calculeaza iesirile din stratele ascunse si apoi iesirile din retea.
O retea 2 - 3 -1
Plecand de la intrari calculam iesirea Y5
Class PropagareInainte
}
Propagarea inainte in cazul unei RN ce are mai multi neuroni pe intrare. Ponderile nu mai pot fi memorate individual ci in matrici.
RN: 10 - 7 -5
Numarul de neuroni din stratul ascuns, cel de intrare si cel de iesire se citesc de la tastatura.
Class CalculIesire
Public static void main(string args[])
{
Int NNi=Integer.parseInt(JOptionPane.showInputDialog("m.n.m="))
Int NNH=.
Int NNO=.
Double x[]=newDouble[NNi];
Int i;
For(i=0;i<NNi;i++)
X[i]=Double.parseDouble(JoptionPane.showInputDialog("intrare="));
// citim ponderile
Double1[ ][ ]=newDouble[NNH][NNi]
Int j;
For(i=0;i<NNH;i++)
For(j=0;i<NNi;j++)
W1[i][j]=double.parse.double(JoptionPane.showInputDialog("w1="))
For(i=0;i<NNH;i++) {
//calculez y din stratul ascuns
Double(j0;j<Nni;j++)
a=a+x[j]*w1[i][j]
yh[i]=1/(1+exp(-a))
Copyright © 2024 - Toate drepturile rezervate