maOptimizer: algoritmi di ottimizzazione
Specifica gli algoritmi di ottimizzazione per la rete neurale.
Utilizzo
adaDeltaSgd(decay = 0.95, conditioningConst = 1e-06)
sgd(learningRate = 0.001, momentum = 0, nag = FALSE, weightDecay = 0,
lRateRedRatio = 1, lRateRedFreq = 100, lRateRedErrorRatio = 0)
Arguments
decay
Specifica il tasso di decadimento applicato ai gradienti durante il calcolo dello step nell'algoritmo di ottimizzazione adattiva ADADELTA. Questo tasso viene usato per garantire che la velocità di apprendimento continui a progredire attribuendo pesi più piccoli ai gradienti remoti nel calcolo delle dimensioni dello step. Matematicamente, sostituisce il quadrato medio dei gradienti con una media del decadimento esponenziale dei gradienti al quadrato nel denominatore della regola di aggiornamento. Il valore assegnato deve essere compreso nell'intervallo (0,1).
conditioningConst
Specifica una costante di condizionamento per l'algoritmo di ottimizzazione adattiva ADADELTA. Questa costante viene usata per condizionare le dimensioni dello step nelle aree in cui la media di decadimento esponenziale dei gradienti al quadrato è ridotta. Il valore assegnato deve essere compreso nell'intervallo (0,1).
learningRate
Specifica le dimensioni dello step eseguito nella direzione del gradiente negativo per ogni iterazione del processo di apprendimento. Il valore predefinito è = 0.001
.
momentum
Specifica i pesi per ogni dimensione che controlla il contributo dello step precedente alla dimensione dello step successivo durante il training. Conseguentemente, la velocità learningRate
viene modificata in modo da accelerare il training. Il valore deve essere >= 0
e < 1
.
nag
Se TRUE
, viene usata la discesa accelerata del gradiente di Nesterov. Questo metodo riduce la complessità Oracle della discesa del gradiente ed è ottimale per l'ottimizzazione convessa liscia.
weightDecay
Specifica i pesi di ridimensionamento per le dimensioni dello step. Dopo ogni aggiornamento del peso, i pesi nella rete vengono ridimensionati da (1 - ``learningRate * weightDecay)
. Il valore deve essere >= 0
e < 1
.
lRateRedRatio
Specifica il rapporto di riduzione della velocità di apprendimento: il rapporto in base al quale la velocità di apprendimento viene ridotta durante il training. La riduzione della velocità di apprendimento può evitare valori minimi locali. Il valore deve essere > 0
e <= 1
.
- Un valore uguale a
1.0
non comporta alcuna riduzione. - Un valore uguale a
0.9
implica che la velocità di apprendimento è ridotta a 90 rispetto al valore corrente.
La riduzione può essere attivata periodicamente, in modo che venga applicata dopo un numero fisso di iterazioni, oppure quando vengono soddisfatti determinati criteri di errore relativi ad aumenti o riduzioni nella funzione di perdita. - Per attivare una riduzione periodica della velocità, specificare la velocità impostando il numero di iterazioni tra le riduzioni con l'argomento
lRateRedFreq
. - Per attivare una riduzione della velocità in base a un criterio di errore, specificare un numero in
lRateRedErrorRatio
.
lRateRedFreq
Imposta la frequenza di riduzione della velocità di apprendimento specificando il numero di iterazioni tra le riduzioni. Ad esempio, se viene specificato il valore 10
, la velocità di apprendimento viene ridotta una volta ogni 10 iterazioni.
lRateRedErrorRatio
Specifica il criterio di errore di riduzione della velocità di apprendimento. Se viene impostato su 0
, la velocità di apprendimento viene ridotta se la perdita tra le iterazioni aumenta. Se viene impostato su un valore frazionario maggiore di 0
, la velocità di apprendimento viene ridotta se la perdita diminuisce di meno di tale frazione del valore precedente.
Dettagli
Queste funzioni possono essere usate per l'argomento optimizer
in rxNeuralNet.
La funzione sgd
specifica la discesa del gradiente stocastico. maOptimizer
La funzione adaDeltaSgd
specifica la discesa del gradiente AdaDelta, descritta nell'articolo del 2012 "ADADELTA: An Adaptive Learning Rate Method" di Matthew D.Zeiler.
Valore
Stringa di caratteri contenente la specifica per l'algoritmo di ottimizzazione.
Autore/i
Microsoft Corporation Microsoft Technical Support
Riferimenti
ADADELTA: An Adaptive Learning Rate Method
Vedi anche
Esempi
myIris = iris
myIris$Setosa <- iris$Species == "setosa"
res1 <- rxNeuralNet(formula = Setosa~Sepal.Length + Sepal.Width + Petal.Width,
data = myIris,
optimizer = sgd(learningRate = .002))
res2 <- rxNeuralNet(formula = Setosa~Sepal.Length + Sepal.Width + Petal.Width,
data = myIris,
optimizer = adaDeltaSgd(decay = .9, conditioningConst = 1e-05))