Pagina 1 di 2

Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 1:22
da TommyR22
ciao a tutti, ho un problema con l'uso del tool di matlab delle reti neurali.
Devo identificare tramite rete neurale multistrato un sistema dinamico di questo tipo: y(k+1)=4y(k)(1-y(k))
il mio problema è che quando vado a d utilizzare nntool(gui grafica) devo indubbiamente mettere dei vettori di ingresso e uscita..cosa metto?! :roll:
graziee :)

Re: Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 11:11
da DirtyDeeds
1) Se hai già il sistema dinamico definito, che problema di identificazione è? :-M
2) Normalmente, in un problema di identificazione, i vettori di ingresso e uscita derivano da misurazioni fatte sul sistema: se è un esercizio, ti dovrebbero essere forniti con il testo.

Re: Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 15:27
da TommyR22
grazie della risposta!
allora il problema dice questo:
identificare con una rete neurale mlp il sistema dinamico y....;
poi ci sono vari punti tipo a)simulare il isstema a partire da diverse condizioni iniziali. b)costruire i pattern y(....) ecc ecc

adesso o sono io che non capisco bene cosa si deve fare, oppure il prof si è espresso male.andando a lavorare con nntool devo appunto inserire dei vettori di ingresso e uscita utilizzando una rete mlp con backprorpagation per poi allenarla, però sti vettori li prendo a cavolo? :) dal testo i vettori di ingresso di come ho capito li decido io,ma di uscita?? :cry:

grazie ancora!

Re: Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 16:05
da asdf
Perdonatemi se intervengo nella discussione, in quanto sono totalmente ignorante riguardo l'argomento in questione.
Lo faccio solo per segnalare a Foto UtenteTommyR22 che esiste su ElectroYou un articolo relativo alle reti neurali, di Foto Utentec1b8:
Reti Neurali

che gli suggerisco di leggere e che potrebbe essergli utile e che si aggiunge ovviamente ai preziosi consigli di Foto UtenteDirtyDeeds e di tutti gli utenti che ti risponderanno ;-) .

Ciao e buona prosecuzione di topic.
O_/

Re: Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 16:18
da TommyR22
grazie l'avevo già letta :D
non riesco a trovare un 'esempio' di rete neurale sul quale basarmi.. :?

Re: Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 18:20
da TommyR22
edit:
mi ha risposto il professore.Bene si è espresso male perché PRIMA di tutto devo simulare il sistema a partire da una condizione iniziale voluta.Quindi faccio così:

y(1)=5;
for k=1:99
y(k+1)=4y(k)(1-y(k));
end

adesso il prof mi dice che i pattern di ingresso e uscita sono y(k) e y(k+1), ma come faccio a vederli e a salvarli in una variabile che poi prenderò dal workspace in nntool?? O_/

Re: Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 18:36
da DirtyDeeds
Per esempio per l'ingresso:

Codice: Seleziona tutto
u = y(1:end-1)


e per l'uscita

Codice: Seleziona tutto
v = y(2:end)

Re: Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 18:48
da TommyR22
grazie tante! :) però potresti spiegarmi la sintassi?Se ho capito bene ad esempio per l'ingresso,u è uguale a y(k) dove k va da 1 a 99 sottraendo 1? :oops:

Se voglio costruire i pattern y(k+1)=f(y(k)), in pratica cosa dovrei mettere in target?x=u=v?

ultima cosa, se volessi disegnare il grafico del sistema dinamico, utilizzo la sintassi plot?? :lol:

grazie grazie! :)

Re: Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 19:46
da DirtyDeeds
Prima determini tutto il vettore degli y(k) con il programma che hai scritto tu, poi da y costruisci i vettori degli ingressi e delle uscite come ti ho detto io. Se non ho capito male, il tuo prof. ti ha detto di usare gli y(k) come ingresso e gli y(k+1) come uscite: questo significa che il vettore degli ingressi è costituito dai primi 98 valori di y, mentre il vettore delle uscite è costituito dagli ultimi 98 valori. Questi due vettori li ottieni come ti ho indicato prima.

Re: Rete neurale e matlab

MessaggioInviato: 27 dic 2011, 19:57
da DirtyDeeds
Aggiungo due considerazioni. Il programma che hai scritto tu contiene degli errori:

Codice: Seleziona tutto
y(1)=5;
for k=1:99
y(k+1)=4y(k)(1-y(k));
end


Ci va una virgola alla fine della linea con il for e mancano i segni di moltiplicazione:

Codice: Seleziona tutto
y(1)=5;
for k=1:99,
y(k+1)=4*y(k)*(1-y(k));
end


Poi, hai posto y(1)=5, ma non va bene perché quel sistema dinamico è definito per y\in [0,1] (il sistema in questione è la celeberrima mappa logistica). Per y(1) > 1 il sistema diverge rapidamente.