Share via


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

rxNeuralNet,

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))