Bagikan melalui


maOptimizer: Algoritma Pengoptimalan

Menentukan Algoritma Pengoptimalan untuk Neural Net.

Penggunaan

  adaDeltaSgd(decay = 0.95, conditioningConst = 1e-06)

  sgd(learningRate = 0.001, momentum = 0, nag = FALSE, weightDecay = 0,
    lRateRedRatio = 1, lRateRedFreq = 100, lRateRedErrorRatio = 0)

Argumen

decay

Menentukan laju pembusukan yang diterapkan pada gradien saat menghitung langkah dalam algoritma pengoptimalan adaptif ADADELTA. Tingkat ini digunakan untuk memastikan bahwa tingkat pembelajaran terus membuat kemajuan dengan memberikan bobot yang lebih kecil ke gradien jarak jauh dalam perhitungan ukuran langkah. Secara matematis, ini menggantikan persegi rata-rata gradien dengan rata-rata gradien kuadrat yang membusuk secara eksponensial dalam penyebut aturan pembaruan. Nilai yang ditetapkan harus dalam rentang (0,1).

conditioningConst

Menentukan konstanta pengkondisian untuk algoritma pengoptimalan adaptif ADADELTA yang digunakan untuk mengkondisikan ukuran langkah di wilayah di mana rata-rata gradien kuadrat yang membusuk secara eksponensial kecil. Nilai yang ditetapkan harus dalam rentang (0,1).

learningRate

Menentukan ukuran langkah yang diambil ke arah gradien negatif untuk setiap iterasi proses pembelajaran. Nilai defaultnya adalah = 0.001.

momentum

Menentukan bobot untuk setiap dimensi yang mengontrol kontribusi langkah sebelumnya ke ukuran langkah berikutnya selama pelatihan. Ini memodifikasi untuk mempercepat learningRate pelatihan. Nilainya harus >= 0 dan < 1.

nag

Jika TRUE, Penurunan Gradien Dipercepat Nesterov digunakan. Metode ini mengurangi kompleksitas oracle penurunan gradien dan optimal untuk pengoptimalan cembung yang lancar.

weightDecay

Menentukan bobot penskalaan untuk ukuran langkah. Setelah setiap pembaruan berat, bobot dalam jaringan diskalakan oleh (1 - ``learningRate * weightDecay). Nilainya harus >= 0 dan < 1.

lRateRedRatio

Menentukan rasio pengurangan tingkat pembelajaran: rasio di mana tingkat pembelajaran dikurangi selama pelatihan. Mengurangi tingkat pembelajaran dapat menghindari minima lokal. Nilainya harus > 0 dan <= 1.

  • Nilai 1.0 berarti tidak ada pengurangan.
  • Nilai 0.9 berarti tingkat pembelajaran dikurangi menjadi 90 nilainya saat ini.
    Pengurangan dapat dipicu baik secara berkala, terjadi setelah jumlah perulangan tetap, atau ketika kriteria kesalahan tertentu mengenai peningkatan atau penurunan fungsi kerugian terpenuhi.
  • Untuk memicu pengurangan laju berkala, tentukan frekuensi dengan mengatur jumlah iterasi antara pengurangan dengan lRateRedFreq argumen .
  • Untuk memicu pengurangan laju berdasarkan kriteria kesalahan, tentukan angka di lRateRedErrorRatio.

lRateRedFreq

Mengatur frekuensi pengurangan tingkat pembelajaran dengan menentukan jumlah perulangan antar pengurangan. Misalnya, jika 10 ditentukan, tingkat pembelajaran berkurang setiap 10 iterasi sekali.

lRateRedErrorRatio

Menentukan kriteria kesalahan pengurangan tingkat pembelajaran. Jika diatur ke 0, tingkat pembelajaran berkurang jika kerugian meningkat di antara perulangan. Jika diatur ke nilai pecahan yang lebih besar dari0, tingkat pembelajaran berkurang jika kerugian berkurang kurang dari pecahan nilai sebelumnya.

Detail

Fungsi-fungsi ini dapat digunakan untuk optimizer argumen di rxNeuralNet.

Fungsi ini sgd menentukan Stochastic Gradient Descent. maOptimizer

Fungsi ini adaDeltaSgd menentukan turunan gradien AdaDelta, yang dijelaskan dalam makalah 2012 "ADADELTA: Metode Laju Pembelajaran Adaptif" oleh Matthew D.Zeiler.

Nilai

String karakter yang berisi spesifikasi untuk algoritma pengoptimalan.

Penulis

Microsoft Corporation Microsoft Technical Support

Referensi

ADADELTA: An Adaptive Learning Rate Method

Lihat juga

rxNeuralNet,

Contoh


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