Newsgroup: it.comp.ia
Titolo: Il "Simulated Annealing" aiuta le NN ??

Non ho capito bene in che modo il "Simulated Annealing" aiuta le NN,
chi lo sa?
----------------------------------------------------------------------------
-----------------------------------------------------
Simulated Annealing:
Annealing is actually a term from metallurgy. If a metal is heated to a very
high temperature, the atoms move about at high speeds. Yet, if they are
cooled very slowly, they settle into patterns and structures, rendering the
metal much stronger than before. This principle can be employed as an
optimization technique in computer science. More specifically, in Artificial
Intelligence, simulated annealing is used to help a neural network avoid
local minima in its energy function.
The Theory
Simulated annealing takes a variety of forms, but the method presented here
is one of the simplier ones. Simulated annealing basically involves
perturbing the independent variables (in a neural network, the weights) by a
random value, and keeping track of the value with the least error.
Tradotto  con Altavista:
Ricottura Simulata.
La ricottura è realmente un termine da metallurgia. Se un metallo è
riscaldato molto ad un a temperatura elevata, gli atomi si muovono circa
alle alte velocità. Tuttavia, se sono raffreddati molto lentamente, si
depositano nei modelli e nelle strutture, rendenti molto più fortemente
prima il metallo. Questo principio può essere impiegato come tecnica di
ottimizzazione in informatica. Più specificamente, in intelligenza
artificiale, la ricottura simulata è usata per aiutare una rete neurale per
evitare i minimi locali nella relativa funzione di energia.
La Teoria.
La ricottura simulata prende una varietà di forme, ma il metodo presentato
qui è uno di quei più simplier. La ricottura simulata coinvolge basicamente
perturbare le variabili indipendenti (in una rete neurale, nei pesi) da un
valore casuale e tenersi al corrente del valore con il meno errore.
----------------------------------------------------------------------------
-----------------------------------------------------
ciao

>
Ora tentero' di ricordarmi quello che avevo leggiucchiato in un libro sulle
reti neurali e di fornire un'interpretazione. Dunque, se la memoria non mi
inganna, direi che addestrare una rete neurale e' una sorta di problema di
ottimizzazione di una funzione a n variabili, dove n e' il numero di pesi.
In pratica, da un punto di partenza qualsiasi, bisogna esplorare la
topologia dell'iper-superficie (n+1)-dimensionale generata dalla funzione
alla ricerca di un minimo che sia sufficientemente... minimo! Sempre andando
a memoria: capita negli addestramenti che nell'esplorazione la rete neurale
si impantani in un minimo che sembra buono ma non lo e', in questo caso puo'
essere utile trasmettere degli scossoni (le perturbazioni nell'annealing)
per far uscire la rete da questa situazione e spostarla in un'altra zona in
cui potrebbe esserci un minimo piu' conveniente. Naturalmente, anche se
nell'articolo non e' specificato, occorre le variazioni non siano di
proporzioni tali da far deviare la rete dalla sua rotta di addestramento,
altrimenti sarebbe come cercare il minimo sparando completamente a caso.
Com'e' ovvio, non sono sicuro che tutto quello che ho detto sopra sia anche
solo lontanamente sensato :-)
Ciao,
     Stefano
--
 [spazio in affitto, per informazioni contattare 
iks...@infinito.it
]

Se a qualcuno interessa, "annealing" in
italiano si traduce "ricottura" ed è appunto
il procedimento di riscaldare un metallo e
farlo raffreddare lentamente. In questo
modo le sue particelle si dispongono
in modo da rendere il metallo un cristallo
"quasi" perfetto. Il Simulated Annealing o
Ricottura Simulata cerca proprio di
imitare questo processo fisico.
Salve
   Sandro

...

grazie a tutti per le vostre risposte,
ora penso di aver capito a cosa serva il Sim. Annealing...
ciao

 solo lontanamente sensato :-)
Da quanto ho letto il s.a. introduce una regola per l'accettazione
dell'errore prodotto dalle perturbazioni (nel mio caso si trattava di
algoritmi genetici ma la sostanza cambia poco). Se durante l'apprendimento
si accetta rigidamente solo il miglioramento si puo' finire in un minimo
locale senza possibilita' di uscirne. Se si accetta qualsiasi errore si puo'
come dici giustamente continuare a saltare da un punto all'altro. Il s.a.
introduce una "curva di accettazione" che e' molto tollerante all'inizio del
processo, e diviene via via piu' rigida con il passare del tempo. In
sostanza all'inizio l'errore della rete puo' anche aumentare (ed evitare un
eventuale minimo), e in seguito questo aumento viene sempre piu' rifiutato.
Se la soglia di accettazione viene abbassata abbastanza gradualmente (mi
pare si chiami criterio di Metropolis) c'e' una buona probabilita' di finire
in un buon minimo (o proprio nel minimo assoluto).
ciao
Claudio

Se a qualcuno interessa, "annealing"
Il "Simulated annealing" in italiano e` noto anche
come "tempra simulata"
Paolo

 ha scritto nel messaggio
news:9o4ons46q3iem4gh3...@4ax.com...

Non per fare il bastian contrario, ma se provate a chiedere
a qualcuno che capisce di metallurgia come ho fatto io
vi renderete conto che la tempra è praticamente il procedimento
contrario alla ricottura e consiste nel far raffreddare bruscamente
il metallo. Sono molto diverse anche le proprietà dello
stesso metallo se subisce uno o l'altro trattamento.
Salve
   Sandro

 stesso metallo se subisce uno o l'altro trattamento.
Ma non c'era scritto "tempra simulata"? Mi pare ovvio che la tempra 
simulata sia diversa dalla tempra. E, cmq, per far raffreddare un 
metallo, bisogna prima riscaldarlo. 8)
P.S.
Prima di scrivere ho telefonato, per documentarmi, alla mia amica 
Natasha Stefanenko, che e' un ingegnere metallurgico.
-- 
C++U
  Gio "FrOYd" Caturano / Zetha gameZ
 
http://www.dronez.com

il metallo. 
Vedo di informarmi meglio sulla traduzione, ma sono sicuro di aver
visto da piu` parti il termine tempra!
Paolo
-------------------------------------------
  Paolo Marotta
 
http://web.tiscalinet.it/paolo_marotta/
-------------------------------------------

 Natasha Stefanenko, che e' un ingegnere metallurgico.
Premesso che mi inchino di fronte all'esperienza di un qualsiasi
ingegnere metallurgico (e soprattutto la Stefanenko ;-) ) poiché io
studio statistica, mi ripeto perchè pare che mi sia spiegato male.
è ovvio che la tempra simulata è diversa dalla tempra reale
ma non è questo il punto in discussione. Si cercava la traduzione
adatta per "simulated annealing". Su "simulated" non ci sono
problemi. Per quanto riguarda "annealing" si traduce con ricottura
(sono prontissimo a ricevere smentite!).
Dunque il "simulated annealing" dovrebbe essere una metaeuristica
che si ispira al "funzionamento" della ricottura dei metalli, ovvero
una ricottura simulata.
La differenza tra la tempra e la ricottura è molto semplice.
Nella ricottura si riscalda un metallo e poi lo si lascia
raffreddare lentamente. Nella tempra si provoca un
brusco raffreddamento del metallo (la classica immagine
dei film medievali in cui un fabbro immerge la spada ancora
calda in acqua è un esempio).
I due processi conferiscono ai metalli proprietà molto diverse;
diciamo che la tempra rende un metallo più duro, la ricottura
più morbido (malleabile).
Tenete conto che nella frase precedente mi sono espresso
con termini assolutamente NON tecnici.
Salve
   Sandro