Qualcuno può dirmi come dovrei costruire una rete neurale usando il metodo batch?
Ho letto che, in modalità batch, per tutti i campioni nel set di allenamento, calcoliamo i pesi di errore, delta e quindi delta per ciascun neurone nella rete e quindi invece di aggiornare immediatamente i pesi, li accumuliamo e quindi prima di iniziare nell'epoca successiva, aggiorniamo i pesi.
Ho anche letto da qualche parte che, il metodo batch è come il metodo online ma con la differenza che uno deve solo sommare gli errori per tutti i campioni nel set di addestramento e quindi prenderne la media e quindi utilizzarlo per aggiornare i pesi proprio come si fa nel metodo online (la differenza è proprio quella media) in questo modo:
for epoch=1 to numberOfEpochs
for all i samples in training set
calculate the errors in output layer
SumOfErrors += (d[i] - y[i])
end
errorAvg = SumOfErrors / number of Samples in training set
now update the output layer with this error
update all other previous layers
go to the next epoch
end
- Quali di questi sono veramente la forma corretta del metodo batch?
- Nel caso del primo, accumulare tutti i pesi delta non comporta un numero enorme?