bonjour
je suis étudiante en master mécatronique en France et je travaille dans mon sujet de fin d'étude sur les neurones artificiels .j'ai trouvé des problèmes au niveau de programmation.
mon premier problème,je veux programmer une fonction quadratique,f(x)=x^2, d'une entrée, deux hiden layer et une sortie,on sait que les fonctions d'activations sont défini sur [0,1], sauf purelin définit sur R.
comment déclarer la fonction d'activation de sortie 'purelin' dans le pg script sur matlab?
voilà mon exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
% XOR
clc
clear
x1=[0 1 2 3 4 5 6];
yt=[0 1 4 9 16 25 36];
 
w12=0.5; w13=0.9;
w24=-1.2;w34=1.1;th2=0.8;th3=-0.1; th4=0.3;
a=0.1;
 
% Trainig uses sin (x)funktion y (X)=1/1exp (-x)
sig=@(v)  1/(1+e^(-v));
epoch=1;
e=1;
 
while abs (e)>=0.001
    for n=1:4
 
for n=1:4
    yh1=sig (x1 (n)*w12-th2);% y3
    yh2=sig (x1 (n)*w13-th3);% y4
    ya (n)=purelin (yh1*w24+yh2*w34-th4);% y5
    e=yt (n)-ya (n);% error
    % error gradient at neuron 4
    s4=ya (n)*(1-ya (n))*e;
    dw24=a*yh1*s4;
    dw34=a*yh2*s4;
    dth4=a*(-1)*s4;
    % error gradient at neuron 2
    s2=yh1*(1-yh1)*s4*w24;
    dw12=a*x1 (n)*s2;
    dth2=a*(-1)*s2;
    % error gradient at neuron 3
    s3=yh2*(1-yh2)*s4*w34;
    dw13=a*x1 (n)*s3;
    dth3=a*(-1)*s3;
    % adjustsent
    w12=w12+dw12
    w13=w13+dw13
    w24=w24+dw24;
    w34=w34+dw34;
    th2=th2+dth2;
    th3=th3+dth3;
    th4=th4+dth4;
    end 
    epoch=epoch+1
end
epoch
mon deuxième problème,quand je programme une fonction par exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
P=[-4 -2 0 2 4 ; -2 -1 0 1 2];
T=P.*P;
mynet=newff (P,T,[10 1]);
mynet.trainParam.epchs = 10000;
mynet.trainParam.goal = 1e-10;
mynet.trainParam.lr = 0.1;
net=train (mynet,P,T)
Y=sim (net,P)
plot (P,T,'+',P,Y,'o')
gensim (net)
Y"outpout" sur simulink est totalement différente (il donne une courbe constante) que Y"outpout" du pg (donne une courbe parabolique)pouvez m'expliquer cette différence?

dans l'attente de votre réponse, je vous souhaite uns bonne journée